dsqlbase 0.1.0 → 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 +8 -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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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 +33 -7
- package/dist/schema.d.ts +0 -2
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -8
- package/dist/schema.js.map +0 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { DefinitionSchema } from "@dsqlbase/core";
|
|
2
|
+
import { TypedObject } from "@dsqlbase/core/utils";
|
|
3
|
+
import { AnyTable, ExecutableQuery, ExecutionContext, OperationResult, Schema } from "@dsqlbase/core/runtime";
|
|
4
|
+
import { FindOneArgs, QueryArgs, CreateArgs, UpdateArgs, DeleteArgs, QueryResultOf, ReturningResultOf } from "./base.js";
|
|
5
|
+
export declare class ModelClient<TTable extends AnyTable, TDefinition extends DefinitionSchema> implements TypedObject<Schema<TDefinition>> {
|
|
6
|
+
readonly __type: Schema<TDefinition>;
|
|
7
|
+
private readonly _ctx;
|
|
8
|
+
private readonly _table;
|
|
9
|
+
private readonly _normalizer;
|
|
10
|
+
constructor(ctx: ExecutionContext<TDefinition>, table: TTable);
|
|
11
|
+
/**
|
|
12
|
+
* Finds a single record matching the specified criteria.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const user = await dsql.users.findOne({
|
|
17
|
+
* where: { id: "123" },
|
|
18
|
+
* select: { id: true, name: true },
|
|
19
|
+
* join: {
|
|
20
|
+
* profile: {
|
|
21
|
+
* select: { bio: true }
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
* @notes
|
|
27
|
+
* * The `where` clause is required to ensure that the operation is deterministic and does not accidentally return an unintended record.
|
|
28
|
+
* * The `select` clause allows you to specify which fields to retrieve, if not provided, all fields will be selected by default.
|
|
29
|
+
*
|
|
30
|
+
* @param args
|
|
31
|
+
* @returns An executable query that can be awaited.
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
findOne<TArgs extends FindOneArgs<TTable, this["__type"]>>(args: TArgs): ExecutableQuery<OperationResult<"one", QueryResultOf<TTable, this["__type"], TArgs>>>;
|
|
35
|
+
/**
|
|
36
|
+
* Finds multiple records matching the specified criteria.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* const users = await dsql.users.findMany({
|
|
41
|
+
* where: { age: { gt: 18 } },
|
|
42
|
+
* orderBy: [{ age: "desc" }],
|
|
43
|
+
* limit: 10,
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
* @param args The query arguments, including filtering, ordering, pagination, and field selection options.
|
|
47
|
+
* @returns An executable query that can be awaited to retrieve the matching records.
|
|
48
|
+
*/
|
|
49
|
+
findMany<TArgs extends QueryArgs<TTable, this["__type"]>>(args: TArgs): ExecutableQuery<OperationResult<"many", QueryResultOf<TTable, this["__type"], TArgs>>>;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a new record in the database with the specified values.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const newUser = await dsql.users.create({
|
|
56
|
+
* data: {
|
|
57
|
+
* firstName: "John",
|
|
58
|
+
* lastName: "Doe",
|
|
59
|
+
* emailAddress: "john.doe@example.com"
|
|
60
|
+
* }
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
* @param args The arguments for creating a new record, including the data to be inserted.
|
|
64
|
+
* @returns An executable query that can be awaited to retrieve the newly created record.
|
|
65
|
+
*/
|
|
66
|
+
create<TArgs extends CreateArgs<TTable>>(args: TArgs): ExecutableQuery<OperationResult<"one", ReturningResultOf<TTable, TArgs>>>;
|
|
67
|
+
/**
|
|
68
|
+
* Updates records in the database matching the specified criteria with the provided values.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* const updatedUser = await dsql.users.update({
|
|
73
|
+
* where: { id: "123" },
|
|
74
|
+
* set: { emailAddress: "new.email@example.com" }
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
* @param args The arguments for updating records, including the criteria for selecting records and the values to be updated.
|
|
78
|
+
* @returns An executable query that can be awaited to retrieve the updated record.
|
|
79
|
+
*/
|
|
80
|
+
update<TArgs extends UpdateArgs<TTable>>(args: TArgs): ExecutableQuery<OperationResult<"one", ReturningResultOf<TTable, TArgs>>>;
|
|
81
|
+
/**
|
|
82
|
+
* Deletes records from the database matching the specified criteria.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* const deletedUser = await dsql.users.delete({
|
|
87
|
+
* where: { id: "123" }
|
|
88
|
+
* return: {
|
|
89
|
+
* id: true,
|
|
90
|
+
* name: true
|
|
91
|
+
* }
|
|
92
|
+
* });
|
|
93
|
+
* ```
|
|
94
|
+
* @notes
|
|
95
|
+
* * The `where` clause is required to ensure that the operation is deterministic and does not accidentally delete unintended records.
|
|
96
|
+
*
|
|
97
|
+
* @param args The arguments for deleting records, including the criteria for selecting records to delete.
|
|
98
|
+
* @returns An executable query that can be awaited to retrieve the deleted record.
|
|
99
|
+
*/
|
|
100
|
+
delete<TArgs extends DeleteArgs<TTable>>(args: TArgs): ExecutableQuery<OperationResult<"one", ReturningResultOf<TTable, TArgs>>>;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/model/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,MAAM,EACP,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAGnB,qBAAa,WAAW,CACtB,MAAM,SAAS,QAAQ,EACvB,WAAW,SAAS,gBAAgB,CACpC,YAAW,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,SAAiB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;gBAEjD,GAAG,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM;IAM7D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IAEI,OAAO,CAAC,KAAK,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC9D,IAAI,EAAE,KAAK,GACV,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAOxF;;;;;;;;;;;;;OAaG;IAEI,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC7D,IAAI,EAAE,KAAK,GACV,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAOzF;;;;;;;;;;;;;;;OAeG;IAEI,MAAM,CAAC,KAAK,SAAS,UAAU,CAAC,MAAM,CAAC,EAC5C,IAAI,EAAE,KAAK,GACV,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAO5E;;;;;;;;;;;;OAYG;IAEI,MAAM,CAAC,KAAK,SAAS,UAAU,CAAC,MAAM,CAAC,EAC5C,IAAI,EAAE,KAAK,GACV,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAO5E;;;;;;;;;;;;;;;;;;OAkBG;IAEI,MAAM,CAAC,KAAK,SAAS,UAAU,CAAC,MAAM,CAAC,EAC5C,IAAI,EAAE,KAAK,GACV,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;CAM7E"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { ExecutableQuery, } from "@dsqlbase/core/runtime";
|
|
2
|
+
import { RequestNormalizer } from "./normalizer.js";
|
|
3
|
+
export class ModelClient {
|
|
4
|
+
_ctx;
|
|
5
|
+
_table;
|
|
6
|
+
_normalizer;
|
|
7
|
+
constructor(ctx, table) {
|
|
8
|
+
this._ctx = ctx;
|
|
9
|
+
this._table = table;
|
|
10
|
+
this._normalizer = new RequestNormalizer(ctx);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Finds a single record matching the specified criteria.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const user = await dsql.users.findOne({
|
|
18
|
+
* where: { id: "123" },
|
|
19
|
+
* select: { id: true, name: true },
|
|
20
|
+
* join: {
|
|
21
|
+
* profile: {
|
|
22
|
+
* select: { bio: true }
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
* @notes
|
|
28
|
+
* * The `where` clause is required to ensure that the operation is deterministic and does not accidentally return an unintended record.
|
|
29
|
+
* * The `select` clause allows you to specify which fields to retrieve, if not provided, all fields will be selected by default.
|
|
30
|
+
*
|
|
31
|
+
* @param args
|
|
32
|
+
* @returns An executable query that can be awaited.
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
findOne(args) {
|
|
36
|
+
const request = this._normalizer.normalizeSelect(this._table, args, "one");
|
|
37
|
+
const operation = this._ctx.operations.createSelectOperation(this._table, request);
|
|
38
|
+
return new ExecutableQuery(operation, this._ctx.session);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Finds multiple records matching the specified criteria.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const users = await dsql.users.findMany({
|
|
46
|
+
* where: { age: { gt: 18 } },
|
|
47
|
+
* orderBy: [{ age: "desc" }],
|
|
48
|
+
* limit: 10,
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
* @param args The query arguments, including filtering, ordering, pagination, and field selection options.
|
|
52
|
+
* @returns An executable query that can be awaited to retrieve the matching records.
|
|
53
|
+
*/
|
|
54
|
+
findMany(args) {
|
|
55
|
+
const request = this._normalizer.normalizeSelect(this._table, args, "many");
|
|
56
|
+
const operation = this._ctx.operations.createSelectOperation(this._table, request);
|
|
57
|
+
return new ExecutableQuery(operation, this._ctx.session);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Creates a new record in the database with the specified values.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* const newUser = await dsql.users.create({
|
|
65
|
+
* data: {
|
|
66
|
+
* firstName: "John",
|
|
67
|
+
* lastName: "Doe",
|
|
68
|
+
* emailAddress: "john.doe@example.com"
|
|
69
|
+
* }
|
|
70
|
+
* });
|
|
71
|
+
* ```
|
|
72
|
+
* @param args The arguments for creating a new record, including the data to be inserted.
|
|
73
|
+
* @returns An executable query that can be awaited to retrieve the newly created record.
|
|
74
|
+
*/
|
|
75
|
+
create(args) {
|
|
76
|
+
const request = this._normalizer.normalizeInsert(this._table, args, "one");
|
|
77
|
+
const operation = this._ctx.operations.createInsertOperation(this._table, request);
|
|
78
|
+
return new ExecutableQuery(operation, this._ctx.session);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Updates records in the database matching the specified criteria with the provided values.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const updatedUser = await dsql.users.update({
|
|
86
|
+
* where: { id: "123" },
|
|
87
|
+
* set: { emailAddress: "new.email@example.com" }
|
|
88
|
+
* });
|
|
89
|
+
* ```
|
|
90
|
+
* @param args The arguments for updating records, including the criteria for selecting records and the values to be updated.
|
|
91
|
+
* @returns An executable query that can be awaited to retrieve the updated record.
|
|
92
|
+
*/
|
|
93
|
+
update(args) {
|
|
94
|
+
const request = this._normalizer.normalizeUpdate(this._table, args, "one");
|
|
95
|
+
const operation = this._ctx.operations.createUpdateOperation(this._table, request);
|
|
96
|
+
return new ExecutableQuery(operation, this._ctx.session);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Deletes records from the database matching the specified criteria.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* const deletedUser = await dsql.users.delete({
|
|
104
|
+
* where: { id: "123" }
|
|
105
|
+
* return: {
|
|
106
|
+
* id: true,
|
|
107
|
+
* name: true
|
|
108
|
+
* }
|
|
109
|
+
* });
|
|
110
|
+
* ```
|
|
111
|
+
* @notes
|
|
112
|
+
* * The `where` clause is required to ensure that the operation is deterministic and does not accidentally delete unintended records.
|
|
113
|
+
*
|
|
114
|
+
* @param args The arguments for deleting records, including the criteria for selecting records to delete.
|
|
115
|
+
* @returns An executable query that can be awaited to retrieve the deleted record.
|
|
116
|
+
*/
|
|
117
|
+
delete(args) {
|
|
118
|
+
const request = this._normalizer.normalizeDelete(this._table, args, "one");
|
|
119
|
+
const operation = this._ctx.operations.createDeleteOperation(this._table, request);
|
|
120
|
+
return new ExecutableQuery(operation, this._ctx.session);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/model/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,GAIhB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,OAAO,WAAW;IAML,IAAI,CAAgC;IACpC,MAAM,CAAS;IACf,WAAW,CAAiC;IAE7D,YAAY,GAAkC,EAAE,KAAa;QAC3D,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAc,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IAEI,OAAO,CACZ,IAAW;QAEX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnF,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;OAaG;IAEI,QAAQ,CACb,IAAW;QAEX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnF,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IAEI,MAAM,CACX,IAAW;QAEX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnF,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;OAYG;IAEI,MAAM,CACX,IAAW;QAEX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnF,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IAEI,MAAM,CACX,IAAW;QAEX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnF,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TypedObject } from "@dsqlbase/core/utils";
|
|
2
|
+
import { AnyTable, DefinitionSchema, DeleteOperationArgs, ExecutionContext, InsertOperationArgs, OperationMode, OperationRequest, Schema, SelectOperationArgs, UpdateOperationArgs } from "@dsqlbase/core";
|
|
3
|
+
import { CreateArgs, DeleteArgs, QueryArgs, UpdateArgs } from "./base.js";
|
|
4
|
+
export declare class RequestNormalizer<TDefinition extends DefinitionSchema> implements TypedObject<Schema<TDefinition>> {
|
|
5
|
+
readonly __type: Schema<TDefinition>;
|
|
6
|
+
private readonly _ctx;
|
|
7
|
+
constructor(context: ExecutionContext);
|
|
8
|
+
private _getWhereExpression;
|
|
9
|
+
private _getSelectionEntries;
|
|
10
|
+
private _getOrderByEntries;
|
|
11
|
+
private _getJoinEntries;
|
|
12
|
+
private _getMutationEntries;
|
|
13
|
+
private _getSelectArgs;
|
|
14
|
+
normalizeSelect<TTable extends AnyTable, TArgs extends QueryArgs<TTable, this["__type"]>, TMode extends OperationMode>(table: TTable, args: TArgs, mode: TMode): OperationRequest<SelectOperationArgs, TMode>;
|
|
15
|
+
normalizeInsert<TTable extends AnyTable, TArgs extends CreateArgs<TTable>, TMode extends OperationMode>(table: TTable, args: TArgs, mode: TMode): OperationRequest<InsertOperationArgs, TMode>;
|
|
16
|
+
normalizeUpdate<TTable extends AnyTable, TArgs extends UpdateArgs<TTable>, TMode extends OperationMode>(table: TTable, args: TArgs, mode: TMode): OperationRequest<UpdateOperationArgs, TMode>;
|
|
17
|
+
normalizeDelete<TTable extends AnyTable, TArgs extends DeleteArgs<TTable>, TMode extends OperationMode>(table: TTable, args: TArgs, mode: TMode): OperationRequest<DeleteOperationArgs, TMode>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../../src/client/model/normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAGhB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,mBAAmB,EAInB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,UAAU,EACV,UAAU,EAKV,SAAS,EACT,UAAU,EAGX,MAAM,WAAW,CAAC;AAEnB,qBAAa,iBAAiB,CAAC,WAAW,SAAS,gBAAgB,CAAE,YAAW,WAAW,CACzF,MAAM,CAAC,WAAW,CAAC,CACpB;IACC,SAAiB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAE5B,OAAO,EAAE,gBAAgB;IAIrC,OAAO,CAAC,mBAAmB;IAiI3B,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,cAAc;IAoBf,eAAe,CACpB,MAAM,SAAS,QAAQ,EACvB,KAAK,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/C,KAAK,SAAS,aAAa,EAC3B,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAOjF,eAAe,CACpB,MAAM,SAAS,QAAQ,EACvB,KAAK,SAAS,UAAU,CAAC,MAAM,CAAC,EAChC,KAAK,SAAS,aAAa,EAC3B,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAajF,eAAe,CACpB,MAAM,SAAS,QAAQ,EACvB,KAAK,SAAS,UAAU,CAAC,MAAM,CAAC,EAChC,KAAK,SAAS,aAAa,EAC3B,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAejF,eAAe,CACpB,MAAM,SAAS,QAAQ,EACvB,KAAK,SAAS,UAAU,CAAC,MAAM,CAAC,EAChC,KAAK,SAAS,aAAa,EAC3B,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,KAAK,CAAC;CAYzF"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { sql, } from "@dsqlbase/core";
|
|
2
|
+
import { isFilterType, } from "./base.js";
|
|
3
|
+
export class RequestNormalizer {
|
|
4
|
+
_ctx;
|
|
5
|
+
constructor(context) {
|
|
6
|
+
this._ctx = context;
|
|
7
|
+
}
|
|
8
|
+
_getWhereExpression(table, where) {
|
|
9
|
+
if (!where) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const expressions = [];
|
|
13
|
+
for (const [fieldName, condition] of Object.entries(where)) {
|
|
14
|
+
if (fieldName === "and" && Array.isArray(condition)) {
|
|
15
|
+
const exp = sql.and(condition
|
|
16
|
+
.map((expr) => this._getWhereExpression(table, expr))
|
|
17
|
+
.filter(Boolean));
|
|
18
|
+
expressions.push(sql.wrap(exp));
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (fieldName === "or" && Array.isArray(condition)) {
|
|
22
|
+
const exp = sql.or(condition
|
|
23
|
+
.map((expr) => this._getWhereExpression(table, expr))
|
|
24
|
+
.filter(Boolean));
|
|
25
|
+
expressions.push(sql.wrap(exp));
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (fieldName === "not" &&
|
|
29
|
+
typeof condition === "object" &&
|
|
30
|
+
condition !== null &&
|
|
31
|
+
!Array.isArray(condition)) {
|
|
32
|
+
const shouldWrapNot = Object.keys(condition).length > 1;
|
|
33
|
+
const expr = this._getWhereExpression(table, condition);
|
|
34
|
+
if (expr) {
|
|
35
|
+
expressions.push(shouldWrapNot ? sql.wrap(sql.not(expr)) : sql.not(expr));
|
|
36
|
+
}
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const column = table.getColumn(fieldName);
|
|
40
|
+
if (!column) {
|
|
41
|
+
throw new Error(`Invalid field "${fieldName}" in where clause for table "${table.name}".`);
|
|
42
|
+
}
|
|
43
|
+
if (isFilterType(condition, "eq")) {
|
|
44
|
+
expressions.push(sql.eq(column, condition.eq));
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (isFilterType(condition, "neq")) {
|
|
48
|
+
expressions.push(sql.ne(column, condition.neq));
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (isFilterType(condition, "gt")) {
|
|
52
|
+
expressions.push(sql.gt(column, condition.gt));
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (isFilterType(condition, "gte")) {
|
|
56
|
+
expressions.push(sql.gte(column, condition.gte));
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (isFilterType(condition, "lt")) {
|
|
60
|
+
expressions.push(sql.lt(column, condition.lt));
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (isFilterType(condition, "lte")) {
|
|
64
|
+
expressions.push(sql.lte(column, condition.lte));
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (isFilterType(condition, "in")) {
|
|
68
|
+
expressions.push(sql.in(column, condition.in));
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (isFilterType(condition, "between")) {
|
|
72
|
+
expressions.push(sql `${column} BETWEEN ${sql.param(condition.between[0])} AND ${sql.param(condition.between[1])}`);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (isFilterType(condition, "exists")) {
|
|
76
|
+
if (condition.exists) {
|
|
77
|
+
expressions.push(sql.isNotNull(column));
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
expressions.push(sql.isNull(column));
|
|
81
|
+
}
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (isFilterType(condition, "beginsWith")) {
|
|
85
|
+
expressions.push(sql.like(column, `${condition.beginsWith}%`));
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (isFilterType(condition, "endsWith")) {
|
|
89
|
+
expressions.push(sql.like(column, `%${condition.endsWith}`));
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (isFilterType(condition, "contains")) {
|
|
93
|
+
expressions.push(sql.like(column, `%${condition.contains}%`));
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
expressions.push(sql.eq(column, condition));
|
|
97
|
+
}
|
|
98
|
+
return sql.and(expressions);
|
|
99
|
+
}
|
|
100
|
+
_getSelectionEntries(table, selection) {
|
|
101
|
+
const entries = [];
|
|
102
|
+
if (!selection || typeof selection === "boolean") {
|
|
103
|
+
return entries;
|
|
104
|
+
}
|
|
105
|
+
for (const [fieldName, isSelected] of Object.entries(selection)) {
|
|
106
|
+
if (isSelected) {
|
|
107
|
+
const column = table.getColumn(fieldName);
|
|
108
|
+
if (!column) {
|
|
109
|
+
throw new Error(`Invalid field "${fieldName}" in selection for table "${table.name}".`);
|
|
110
|
+
}
|
|
111
|
+
entries.push([fieldName, column]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return entries;
|
|
115
|
+
}
|
|
116
|
+
_getOrderByEntries(table, orderBy) {
|
|
117
|
+
if (!orderBy) {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
const entries = [];
|
|
121
|
+
for (const [fieldName, direction] of Object.entries(orderBy)) {
|
|
122
|
+
const column = table.getColumn(fieldName);
|
|
123
|
+
if (!column) {
|
|
124
|
+
throw new Error(`Invalid field "${fieldName}" in orderBy for table "${table.name}".`);
|
|
125
|
+
}
|
|
126
|
+
if (direction === "asc") {
|
|
127
|
+
entries.push(sql `${column} ASC`);
|
|
128
|
+
}
|
|
129
|
+
else if (direction === "desc") {
|
|
130
|
+
entries.push(sql `${column} DESC`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return entries;
|
|
134
|
+
}
|
|
135
|
+
_getJoinEntries(table, join) {
|
|
136
|
+
const entries = [];
|
|
137
|
+
if (!join || Object.keys(join).length === 0) {
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
for (const [fieldName, query] of Object.entries(join)) {
|
|
141
|
+
if (query === null || query === undefined || (typeof query === "boolean" && !query)) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const targetTable = this._ctx.schema.getRelationTarget(table.name, fieldName);
|
|
145
|
+
if (!targetTable) {
|
|
146
|
+
throw new Error(`Relation "${fieldName}" in table "${table.name}" does not have a valid target table.`);
|
|
147
|
+
}
|
|
148
|
+
const params = this._getSelectArgs(targetTable, query === true ? {} : query);
|
|
149
|
+
entries.push([fieldName, params]);
|
|
150
|
+
}
|
|
151
|
+
return entries;
|
|
152
|
+
}
|
|
153
|
+
_getMutationEntries(table, values) {
|
|
154
|
+
const entries = [];
|
|
155
|
+
for (const [fieldName, value] of Object.entries(values)) {
|
|
156
|
+
const column = table.getColumn(fieldName);
|
|
157
|
+
if (!column) {
|
|
158
|
+
throw new Error(`Invalid field "${fieldName}" in update values for table "${table.name}".`);
|
|
159
|
+
}
|
|
160
|
+
entries.push([fieldName, value]);
|
|
161
|
+
}
|
|
162
|
+
return entries;
|
|
163
|
+
}
|
|
164
|
+
_getSelectArgs(table, args) {
|
|
165
|
+
const selection = this._getSelectionEntries(table, args.select);
|
|
166
|
+
const where = this._getWhereExpression(table, args.where);
|
|
167
|
+
const join = this._getJoinEntries(table, args.join);
|
|
168
|
+
const orderBy = this._getOrderByEntries(table, args.orderBy);
|
|
169
|
+
return {
|
|
170
|
+
select: selection,
|
|
171
|
+
where,
|
|
172
|
+
join,
|
|
173
|
+
orderBy,
|
|
174
|
+
distinct: args.distinct,
|
|
175
|
+
limit: args.limit,
|
|
176
|
+
offset: args.offset,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
normalizeSelect(table, args, mode) {
|
|
180
|
+
return {
|
|
181
|
+
mode,
|
|
182
|
+
args: this._getSelectArgs(table, args),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
normalizeInsert(table, args, mode) {
|
|
186
|
+
const values = this._getMutationEntries(table, args.data);
|
|
187
|
+
const returning = this._getSelectionEntries(table, args.return);
|
|
188
|
+
return {
|
|
189
|
+
mode,
|
|
190
|
+
args: {
|
|
191
|
+
data: [values],
|
|
192
|
+
return: returning,
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
normalizeUpdate(table, args, mode) {
|
|
197
|
+
const values = this._getMutationEntries(table, args.set);
|
|
198
|
+
const where = this._getWhereExpression(table, args.where);
|
|
199
|
+
const returning = this._getSelectionEntries(table, args.return);
|
|
200
|
+
return {
|
|
201
|
+
mode,
|
|
202
|
+
args: {
|
|
203
|
+
set: values,
|
|
204
|
+
where,
|
|
205
|
+
return: returning,
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
normalizeDelete(table, args, mode) {
|
|
210
|
+
const where = this._getWhereExpression(table, args.where);
|
|
211
|
+
const returning = this._getSelectionEntries(table, args.return);
|
|
212
|
+
return {
|
|
213
|
+
mode,
|
|
214
|
+
args: {
|
|
215
|
+
where,
|
|
216
|
+
return: returning,
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../../src/client/model/normalizer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { sql, SQLQuery } from "@dsqlbase/core";
|
|
2
2
|
export type { Session, SQLStatement } from "@dsqlbase/core";
|
|
3
|
-
export { createClient, type ClientOptions, type
|
|
3
|
+
export { createClient, type ClientOptions, type QueryClient } from "./client/index.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAwC,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Session, SQLStatement } from "@dsqlbase/core";
|
|
2
|
+
import { ClientBase } from "pg";
|
|
3
|
+
export declare class PGSession implements Session {
|
|
4
|
+
private _client;
|
|
5
|
+
constructor(client: ClientBase);
|
|
6
|
+
execute<T = unknown>(query: SQLStatement): Promise<T[]>;
|
|
7
|
+
}
|
|
8
|
+
export declare function createPgSession(client: ClientBase): PGSession;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,qBAAa,SAAU,YAAW,OAAO;IACvC,OAAO,CAAC,OAAO,CAAa;gBAEhB,MAAM,EAAE,UAAU;IAIxB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAI9D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAE7D"}
|
package/dist/pg/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class PGSession {
|
|
2
|
+
_client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this._client = client;
|
|
5
|
+
}
|
|
6
|
+
async execute(query) {
|
|
7
|
+
const result = await this._client.query(query.text, query.params);
|
|
8
|
+
return result.rows;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function createPgSession(client) {
|
|
12
|
+
return new PGSession(client);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pg/index.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,SAAS;IACZ,OAAO,CAAa;IAE5B,YAAY,MAAkB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,KAAmB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,IAAW,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Session, SQLStatement } from "@dsqlbase/core";
|
|
2
|
+
import { PGlite } from "@electric-sql/pglite";
|
|
3
|
+
export declare class PgLiteSession implements Session {
|
|
4
|
+
private _client;
|
|
5
|
+
constructor(client: PGlite);
|
|
6
|
+
execute<T = unknown>(query: SQLStatement): Promise<T[]>;
|
|
7
|
+
}
|
|
8
|
+
export declare function createPgLiteSession(client: PGlite): PgLiteSession;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pglite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM;IAIpB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAI9D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAEjE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class PgLiteSession {
|
|
2
|
+
_client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this._client = client;
|
|
5
|
+
}
|
|
6
|
+
async execute(query) {
|
|
7
|
+
const result = await this._client.query(query.text, query.params);
|
|
8
|
+
return result.rows;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function createPgLiteSession(client) {
|
|
12
|
+
return new PgLiteSession(client);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pglite/index.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IAChB,OAAO,CAAS;IAExB,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,KAAmB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,IAAW,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines an `array` **runtime data type** column.
|
|
4
|
+
* #### Important Notes
|
|
5
|
+
*
|
|
6
|
+
* The column data type will be `text` in the database, and queries will use `string_to_array('1,2', ',')` at query execution time to handle array data.
|
|
7
|
+
*
|
|
8
|
+
* This means that while you can store any array of strings in this column, it will be stored as text and not as a native array type.
|
|
9
|
+
*
|
|
10
|
+
* The encoding and decoding functions will handle the conversion between JavaScript arrays and comma-separated strings.
|
|
11
|
+
*
|
|
12
|
+
* @param name Column name in database
|
|
13
|
+
* @returns Serializable column definition for an array column.
|
|
14
|
+
*/
|
|
15
|
+
export declare function array<const TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<string[], string>>;
|
|
16
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AAEH,wBAAgB,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,2DAQ5D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines an `array` **runtime data type** column.
|
|
4
|
+
* #### Important Notes
|
|
5
|
+
*
|
|
6
|
+
* The column data type will be `text` in the database, and queries will use `string_to_array('1,2', ',')` at query execution time to handle array data.
|
|
7
|
+
*
|
|
8
|
+
* This means that while you can store any array of strings in this column, it will be stored as text and not as a native array type.
|
|
9
|
+
*
|
|
10
|
+
* The encoding and decoding functions will handle the conversion between JavaScript arrays and comma-separated strings.
|
|
11
|
+
*
|
|
12
|
+
* @param name Column name in database
|
|
13
|
+
* @returns Serializable column definition for an array column.
|
|
14
|
+
*/
|
|
15
|
+
export function array(name) {
|
|
16
|
+
return new ColumnDefinition(name, {
|
|
17
|
+
dataType: "text",
|
|
18
|
+
codec: {
|
|
19
|
+
encode: (value) => value.join(","),
|
|
20
|
+
decode: (value) => value.split(","),
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/schema/columns/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AAEH,MAAM,UAAU,KAAK,CAA6B,IAAW;IAC3D,OAAO,IAAI,gBAAgB,CAAwC,IAAI,EAAE;QACvE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;SACpC;KACF,CAAC,CAAC;AACL,CAAC"}
|