dsqlbase 0.0.1 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +86 -0
- package/dist/client/create.d.ts +73 -0
- package/dist/client/create.d.ts.map +1 -0
- package/dist/client/create.js +82 -0
- package/dist/client/create.js.map +1 -0
- package/dist/client/database/base.d.ts +8 -0
- package/dist/client/database/base.d.ts.map +1 -0
- package/dist/client/database/base.js +13 -0
- package/dist/client/database/base.js.map +1 -0
- package/dist/client/database/client.d.ts +5 -0
- package/dist/client/database/client.d.ts.map +1 -0
- package/dist/client/database/client.js +4 -0
- package/dist/client/database/client.js.map +1 -0
- package/dist/client/database/index.d.ts +9 -0
- package/dist/client/database/index.d.ts.map +1 -0
- package/dist/client/database/index.js +3 -0
- package/dist/client/database/index.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/model/base.d.ts +330 -0
- package/dist/client/model/base.d.ts.map +1 -0
- package/dist/client/model/base.js +7 -0
- package/dist/client/model/base.js.map +1 -0
- package/dist/client/model/client.d.ts +102 -0
- package/dist/client/model/client.d.ts.map +1 -0
- package/dist/client/model/client.js +123 -0
- package/dist/client/model/client.js.map +1 -0
- package/dist/client/model/normalizer.d.ts +19 -0
- package/dist/client/model/normalizer.d.ts.map +1 -0
- package/dist/client/model/normalizer.js +221 -0
- package/dist/client/model/normalizer.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/pg/index.d.ts +9 -0
- package/dist/pg/index.d.ts.map +1 -0
- package/dist/pg/index.js +14 -0
- package/dist/pg/index.js.map +1 -0
- package/dist/pglite/index.d.ts +9 -0
- package/dist/pglite/index.d.ts.map +1 -0
- package/dist/pglite/index.js +14 -0
- package/dist/pglite/index.js.map +1 -0
- package/dist/schema/columns/array.d.ts +16 -0
- package/dist/schema/columns/array.d.ts.map +1 -0
- package/dist/schema/columns/array.js +24 -0
- package/dist/schema/columns/array.js.map +1 -0
- package/dist/schema/columns/bigint.d.ts +11 -0
- package/dist/schema/columns/bigint.d.ts.map +1 -0
- package/dist/schema/columns/bigint.js +19 -0
- package/dist/schema/columns/bigint.js.map +1 -0
- package/dist/schema/columns/boolean.d.ts +10 -0
- package/dist/schema/columns/boolean.d.ts.map +1 -0
- package/dist/schema/columns/boolean.js +18 -0
- package/dist/schema/columns/boolean.js.map +1 -0
- package/dist/schema/columns/bytea.d.ts +8 -0
- package/dist/schema/columns/bytea.d.ts.map +1 -0
- package/dist/schema/columns/bytea.js +16 -0
- package/dist/schema/columns/bytea.js.map +1 -0
- package/dist/schema/columns/char.d.ts +10 -0
- package/dist/schema/columns/char.d.ts.map +1 -0
- package/dist/schema/columns/char.js +18 -0
- package/dist/schema/columns/char.js.map +1 -0
- package/dist/schema/columns/date.d.ts +23 -0
- package/dist/schema/columns/date.d.ts.map +1 -0
- package/dist/schema/columns/date.js +29 -0
- package/dist/schema/columns/date.js.map +1 -0
- package/dist/schema/columns/double.d.ts +13 -0
- package/dist/schema/columns/double.d.ts.map +1 -0
- package/dist/schema/columns/double.js +21 -0
- package/dist/schema/columns/double.js.map +1 -0
- package/dist/schema/columns/identity.d.ts +56 -0
- package/dist/schema/columns/identity.d.ts.map +1 -0
- package/dist/schema/columns/identity.js +65 -0
- package/dist/schema/columns/identity.js.map +1 -0
- package/dist/schema/columns/int.d.ts +11 -0
- package/dist/schema/columns/int.d.ts.map +1 -0
- package/dist/schema/columns/int.js +19 -0
- package/dist/schema/columns/int.js.map +1 -0
- package/dist/schema/columns/interval.d.ts +23 -0
- package/dist/schema/columns/interval.d.ts.map +1 -0
- package/dist/schema/columns/interval.js +40 -0
- package/dist/schema/columns/interval.js.map +1 -0
- package/dist/schema/columns/json.d.ts +9 -0
- package/dist/schema/columns/json.d.ts.map +1 -0
- package/dist/schema/columns/json.js +18 -0
- package/dist/schema/columns/json.js.map +1 -0
- package/dist/schema/columns/numeric.d.ts +11 -0
- package/dist/schema/columns/numeric.d.ts.map +1 -0
- package/dist/schema/columns/numeric.js +19 -0
- package/dist/schema/columns/numeric.js.map +1 -0
- package/dist/schema/columns/real.d.ts +13 -0
- package/dist/schema/columns/real.d.ts.map +1 -0
- package/dist/schema/columns/real.js +21 -0
- package/dist/schema/columns/real.js.map +1 -0
- package/dist/schema/columns/smallint.d.ts +11 -0
- package/dist/schema/columns/smallint.d.ts.map +1 -0
- package/dist/schema/columns/smallint.js +19 -0
- package/dist/schema/columns/smallint.js.map +1 -0
- package/dist/schema/columns/text.d.ts +9 -0
- package/dist/schema/columns/text.d.ts.map +1 -0
- package/dist/schema/columns/text.js +17 -0
- package/dist/schema/columns/text.js.map +1 -0
- package/dist/schema/columns/time.d.ts +20 -0
- package/dist/schema/columns/time.d.ts.map +1 -0
- package/dist/schema/columns/time.js +19 -0
- package/dist/schema/columns/time.js.map +1 -0
- package/dist/schema/columns/timestamp.d.ts +40 -0
- package/dist/schema/columns/timestamp.d.ts.map +1 -0
- package/dist/schema/columns/timestamp.js +48 -0
- package/dist/schema/columns/timestamp.js.map +1 -0
- package/dist/schema/columns/uuid.d.ts +17 -0
- package/dist/schema/columns/uuid.d.ts.map +1 -0
- package/dist/schema/columns/uuid.js +27 -0
- package/dist/schema/columns/uuid.js.map +1 -0
- package/dist/schema/columns/varchar.d.ts +9 -0
- package/dist/schema/columns/varchar.d.ts.map +1 -0
- package/dist/schema/columns/varchar.js +17 -0
- package/dist/schema/columns/varchar.js.map +1 -0
- package/dist/schema/domain.d.ts +19 -0
- package/dist/schema/domain.d.ts.map +1 -0
- package/dist/schema/domain.js +37 -0
- package/dist/schema/domain.js.map +1 -0
- package/dist/schema/index.d.ts +27 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +25 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/namespace.d.ts +22 -0
- package/dist/schema/namespace.d.ts.map +1 -0
- package/dist/schema/namespace.js +24 -0
- package/dist/schema/namespace.js.map +1 -0
- package/dist/schema/relations.d.ts +12 -0
- package/dist/schema/relations.d.ts.map +1 -0
- package/dist/schema/relations.js +29 -0
- package/dist/schema/relations.js.map +1 -0
- package/dist/schema/sequence.d.ts +14 -0
- package/dist/schema/sequence.d.ts.map +1 -0
- package/dist/schema/sequence.js +16 -0
- package/dist/schema/sequence.js.map +1 -0
- package/dist/schema/table.d.ts +20 -0
- package/dist/schema/table.d.ts.map +1 -0
- package/dist/schema/table.js +22 -0
- package/dist/schema/table.js.map +1 -0
- package/dist/schema/utils/date.d.ts +33 -0
- package/dist/schema/utils/date.d.ts.map +1 -0
- package/dist/schema/utils/date.js +62 -0
- package/dist/schema/utils/date.js.map +1 -0
- package/dist/schema/utils/duration.d.ts +66 -0
- package/dist/schema/utils/duration.d.ts.map +1 -0
- package/dist/schema/utils/duration.js +167 -0
- package/dist/schema/utils/duration.js.map +1 -0
- package/dist/schema/utils/json.d.ts +2 -0
- package/dist/schema/utils/json.d.ts.map +1 -0
- package/dist/schema/utils/json.js +12 -0
- package/dist/schema/utils/json.js.map +1 -0
- package/package.json +34 -5
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# dsqlbase
|
|
2
|
+
|
|
3
|
+
## 0.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 57c5e9e: connector session factories
|
|
8
|
+
- 4f4ecdd: internal packages restructure
|
|
9
|
+
- @dsqlbase/core@0.1.1
|
|
10
|
+
|
|
11
|
+
## 0.1.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 66d5d93: **Query client and schema migration runner:**
|
|
16
|
+
|
|
17
|
+
Added:
|
|
18
|
+
- schema objects definition support for `namespace`, `table`, `domain`, and `sequence`;
|
|
19
|
+
- schema migrations runner via introspection -> reconcile;
|
|
20
|
+
- model client with crud operations factories for `create`, `findOne`, `findMany`, `update`, `delete`;
|
|
21
|
+
- sql tag with filter expressions, `sql.in, sql.eq, ...`;
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- @dsqlbase/client@0.1.0
|
|
26
|
+
- @dsqlbase/core@0.1.0
|
|
27
|
+
- @dsqlbase/schema@0.1.0
|
package/README.md
CHANGED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h3><strong>dsqlbase</strong></h3>
|
|
3
|
+
<p>Schema, query, and migration toolkit for AWS Aurora DSQL.</p>
|
|
4
|
+
</div>
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> [!CAUTION]
|
|
9
|
+
> dsqlbase is in early-stage development and not suited for production environments.
|
|
10
|
+
> Features may change at any time, without prior notice.
|
|
11
|
+
|
|
12
|
+
dsqlbase is an ORM and migration toolkit purpose-built for [Aurora DSQL](https://aws.amazon.com/rds/aurora/dsql/). It treats DSQL's distributed-database constraints (no foreign keys, no in-place column changes, async-only index builds, etc.) as first-class — refusing unsupported DDL up front and emitting DSQL-shaped SQL by default. See the [project README](https://github.com/slsdotdev/dsqlbase#readme) for the longer motivation.
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install dsqlbase
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Quickstart
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
// schema.ts
|
|
24
|
+
import { table, uuid, text, datetime, relations, hasMany, belongsTo } from "dsqlbase/schema";
|
|
25
|
+
|
|
26
|
+
export const teams = table("teams", {
|
|
27
|
+
id: uuid("id").primaryKey().defaultRandom(),
|
|
28
|
+
name: text("name").notNull(),
|
|
29
|
+
createdAt: datetime("created_at").notNull().defaultNow(),
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const projects = table("projects", {
|
|
33
|
+
id: uuid("id").primaryKey().defaultRandom(),
|
|
34
|
+
teamId: uuid("team_id").notNull(),
|
|
35
|
+
name: text("name").notNull(),
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
export const teamRelations = relations(teams, {
|
|
39
|
+
projects: hasMany(projects, {
|
|
40
|
+
from: [teams.columns.id],
|
|
41
|
+
to: [projects.columns.teamId],
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
export const projectRelations = relations(projects, {
|
|
46
|
+
team: belongsTo(teams, {
|
|
47
|
+
from: [projects.columns.teamId],
|
|
48
|
+
to: [teams.columns.id],
|
|
49
|
+
}),
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
// client.ts
|
|
55
|
+
import { createClient, type Session, type SQLStatement } from "dsqlbase";
|
|
56
|
+
import * as schema from "./schema";
|
|
57
|
+
import { Pool } from "pg";
|
|
58
|
+
|
|
59
|
+
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
|
|
60
|
+
|
|
61
|
+
const session: Session = {
|
|
62
|
+
async execute<T = unknown>(query: SQLStatement): Promise<T[]> {
|
|
63
|
+
const result = await pool.query(query.text, [...query.params]);
|
|
64
|
+
return result.rows as T[];
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export const dsql = createClient({ schema, session });
|
|
69
|
+
|
|
70
|
+
// Use it
|
|
71
|
+
const recent = await dsql.projects.findMany({
|
|
72
|
+
orderBy: { name: "asc" },
|
|
73
|
+
limit: 10,
|
|
74
|
+
join: { team: true },
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Links
|
|
79
|
+
|
|
80
|
+
- [Repository & full docs](https://github.com/slsdotdev/dsqlbase#readme)
|
|
81
|
+
- [Issues](https://github.com/slsdotdev/dsqlbase/issues)
|
|
82
|
+
- [Contributing](https://github.com/slsdotdev/dsqlbase/blob/main/CONTRIBUTING.md)
|
|
83
|
+
|
|
84
|
+
## License
|
|
85
|
+
|
|
86
|
+
MIT.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { DefinitionSchema, Session } from "@dsqlbase/core";
|
|
2
|
+
import { QueryClient } from "./database/index.js";
|
|
3
|
+
export interface ClientOptions<TSchema extends DefinitionSchema> {
|
|
4
|
+
/**
|
|
5
|
+
* Definition schema for the database, including relations configuration.
|
|
6
|
+
*/
|
|
7
|
+
schema: TSchema;
|
|
8
|
+
/**
|
|
9
|
+
* Session object for managing database connections and transactions.
|
|
10
|
+
*/
|
|
11
|
+
session: Session;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new client instance for interacting with the database using the provided schema definition.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* // schema.ts
|
|
19
|
+
* import { table, text, uuid } from "@dsqlbase/schema";
|
|
20
|
+
*
|
|
21
|
+
* export const users = table("users", {
|
|
22
|
+
* id: uuid("id").primaryKey().defaultRandom(),
|
|
23
|
+
* firstName: text("first_name").notNull(),
|
|
24
|
+
* lastName: text("last_name").notNull(),
|
|
25
|
+
* emailAddress: text("email_address").notNull().unique(),
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* export const posts = table("posts", {
|
|
29
|
+
* id: uuid("id").primaryKey().defaultRandom(),
|
|
30
|
+
* title: text("title").notNull(),
|
|
31
|
+
* description: text("description"),
|
|
32
|
+
* content: text("content").notNull(),
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* export const userRelations = relations(users, {
|
|
36
|
+
* posts: hasMany(posts, {
|
|
37
|
+
* from: [users.columns.id],
|
|
38
|
+
* to: [posts.columns.userId],
|
|
39
|
+
* }),
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* export const postRelations = relations(posts, {
|
|
43
|
+
* owner: belongsTo(users, {
|
|
44
|
+
* from: [posts.columns.userId],
|
|
45
|
+
* to: [users.columns.id],
|
|
46
|
+
* }),
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* // client.ts
|
|
50
|
+
* import { createClient } from "dsqlbase";
|
|
51
|
+
* import * as schema from "./schema";
|
|
52
|
+
*
|
|
53
|
+
* export const dsql = createClient({ schema });
|
|
54
|
+
*
|
|
55
|
+
* // Example usage
|
|
56
|
+
* import { dsql } from "./client";
|
|
57
|
+
*
|
|
58
|
+
* const newUser = await dsql.users.create({
|
|
59
|
+
* data: {
|
|
60
|
+
* firstName: "John",
|
|
61
|
+
* lastName: "Doe",
|
|
62
|
+
* emailAddress: "john.doe@example.com",
|
|
63
|
+
* },
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
* @param options - Configuration options for the client, including the schema definition.
|
|
67
|
+
* @returns A new instance of the DSQL client configured with the provided schema.
|
|
68
|
+
* @throws Will throw an error if the schema definition is invalid or if there are issues initializing the client.
|
|
69
|
+
* @see {@link ClientOptions} for more details on the configuration options.
|
|
70
|
+
* @see {@link ModelClient} for information on the methods available for interacting with the database tables.
|
|
71
|
+
*/
|
|
72
|
+
export declare function createClient<TSchema extends DefinitionSchema>(options: ClientOptions<TSchema>): QueryClient<TSchema>;
|
|
73
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/client/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAIhB,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAkB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,gBAAgB;IAC7D;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,wBAAgB,YAAY,CAAC,OAAO,SAAS,gBAAgB,EAC3D,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAC9B,WAAW,CAAC,OAAO,CAAC,CAuBtB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ExecutionContext, QueryBuilder, SchemaRegistry, } from "@dsqlbase/core";
|
|
2
|
+
import { ModelClient } from "./model/client.js";
|
|
3
|
+
import { DatabaseClient } from "./database/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a new client instance for interacting with the database using the provided schema definition.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* // schema.ts
|
|
10
|
+
* import { table, text, uuid } from "@dsqlbase/schema";
|
|
11
|
+
*
|
|
12
|
+
* export const users = table("users", {
|
|
13
|
+
* id: uuid("id").primaryKey().defaultRandom(),
|
|
14
|
+
* firstName: text("first_name").notNull(),
|
|
15
|
+
* lastName: text("last_name").notNull(),
|
|
16
|
+
* emailAddress: text("email_address").notNull().unique(),
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* export const posts = table("posts", {
|
|
20
|
+
* id: uuid("id").primaryKey().defaultRandom(),
|
|
21
|
+
* title: text("title").notNull(),
|
|
22
|
+
* description: text("description"),
|
|
23
|
+
* content: text("content").notNull(),
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* export const userRelations = relations(users, {
|
|
27
|
+
* posts: hasMany(posts, {
|
|
28
|
+
* from: [users.columns.id],
|
|
29
|
+
* to: [posts.columns.userId],
|
|
30
|
+
* }),
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* export const postRelations = relations(posts, {
|
|
34
|
+
* owner: belongsTo(users, {
|
|
35
|
+
* from: [posts.columns.userId],
|
|
36
|
+
* to: [users.columns.id],
|
|
37
|
+
* }),
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // client.ts
|
|
41
|
+
* import { createClient } from "dsqlbase";
|
|
42
|
+
* import * as schema from "./schema";
|
|
43
|
+
*
|
|
44
|
+
* export const dsql = createClient({ schema });
|
|
45
|
+
*
|
|
46
|
+
* // Example usage
|
|
47
|
+
* import { dsql } from "./client";
|
|
48
|
+
*
|
|
49
|
+
* const newUser = await dsql.users.create({
|
|
50
|
+
* data: {
|
|
51
|
+
* firstName: "John",
|
|
52
|
+
* lastName: "Doe",
|
|
53
|
+
* emailAddress: "john.doe@example.com",
|
|
54
|
+
* },
|
|
55
|
+
* });
|
|
56
|
+
* ```
|
|
57
|
+
* @param options - Configuration options for the client, including the schema definition.
|
|
58
|
+
* @returns A new instance of the DSQL client configured with the provided schema.
|
|
59
|
+
* @throws Will throw an error if the schema definition is invalid or if there are issues initializing the client.
|
|
60
|
+
* @see {@link ClientOptions} for more details on the configuration options.
|
|
61
|
+
* @see {@link ModelClient} for information on the methods available for interacting with the database tables.
|
|
62
|
+
*/
|
|
63
|
+
export function createClient(options) {
|
|
64
|
+
const schema = new SchemaRegistry(options.schema);
|
|
65
|
+
const dialect = new QueryBuilder();
|
|
66
|
+
const context = new ExecutionContext({
|
|
67
|
+
schema,
|
|
68
|
+
dialect,
|
|
69
|
+
session: options.session,
|
|
70
|
+
});
|
|
71
|
+
const dbClient = new DatabaseClient(context);
|
|
72
|
+
for (const [tableName, table] of Object.entries(schema.getTables())) {
|
|
73
|
+
const modelClient = new ModelClient(context, table);
|
|
74
|
+
Object.defineProperty(dbClient, tableName, {
|
|
75
|
+
value: modelClient,
|
|
76
|
+
writable: false,
|
|
77
|
+
enumerable: true,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return dbClient;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/client/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,YAAY,EACZ,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAclE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,MAAM,UAAU,YAAY,CAC1B,OAA+B;IAE/B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACnC,MAAM;QACN,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAE7C,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAW,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEpD,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE;YACzC,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAgC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DefinitionSchema, ExecutionContext, SQLQuery, SQLStatement } from "@dsqlbase/core";
|
|
2
|
+
export declare abstract class BaseClient<T extends DefinitionSchema> {
|
|
3
|
+
private readonly _ctx;
|
|
4
|
+
constructor(ctx: ExecutionContext<T>);
|
|
5
|
+
$query<T = unknown>(sql: SQLQuery): Promise<T[]>;
|
|
6
|
+
$execute<T = unknown>(query: SQLStatement): Promise<T[]>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/client/database/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5F,8BAAsB,UAAU,CAAC,CAAC,SAAS,gBAAgB;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAE/B,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAI9B,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIhD,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAG/D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class BaseClient {
|
|
2
|
+
_ctx;
|
|
3
|
+
constructor(ctx) {
|
|
4
|
+
this._ctx = ctx;
|
|
5
|
+
}
|
|
6
|
+
async $query(sql) {
|
|
7
|
+
return this.$execute(sql.toQuery());
|
|
8
|
+
}
|
|
9
|
+
async $execute(query) {
|
|
10
|
+
return this._ctx.session.execute(query);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/client/database/base.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,UAAU;IACb,IAAI,CAAsB;IAE3C,YAAY,GAAwB;QAClC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAc,GAAa;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAc,KAAmB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/database/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,cAAc,CAAC,WAAW,SAAS,gBAAgB,CAAE,SAAQ,UAAU,CAAC,WAAW,CAAC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/database/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,OAAO,cAAqD,SAAQ,UAAuB;CAAG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AnyTable, DefinitionSchema, RuntimeTables, Schema } from "@dsqlbase/core";
|
|
2
|
+
import { ModelClient } from "../model/client.js";
|
|
3
|
+
import { DatabaseClient } from "./client.js";
|
|
4
|
+
export type Models<T extends DefinitionSchema> = {
|
|
5
|
+
readonly [K in keyof RuntimeTables<Schema<T>>]: RuntimeTables<Schema<T>>[K] extends infer TTable ? TTable extends AnyTable ? ModelClient<TTable, T> : never : never;
|
|
6
|
+
};
|
|
7
|
+
export type QueryClient<T extends DefinitionSchema> = DatabaseClient<T> & Models<T>;
|
|
8
|
+
export { DatabaseClient };
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAC/C,QAAQ,EAAE,CAAC,IAAI,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,GAC5F,MAAM,SAAS,QAAQ,GACrB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GACtB,KAAK,GACP,KAAK;CACV,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/database/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type * from "./model/base.js";
|
|
2
|
+
export { isFilterType } from "./model/base.js";
|
|
3
|
+
export { ModelClient } from "./model/client.js";
|
|
4
|
+
export { DatabaseClient, type QueryClient, type Models } from "./database/index.js";
|
|
5
|
+
export { createClient, type ClientOptions } from "./create.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,iBAAiB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAiC,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC"}
|