@dsqlbase/core 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 +5 -0
- package/README.md +18 -0
- package/dist/definition/base.d.ts +0 -1
- package/dist/definition/base.d.ts.map +1 -1
- package/dist/definition/base.js +1 -3
- package/dist/definition/base.js.map +1 -1
- package/dist/definition/column.d.ts +44 -8
- package/dist/definition/column.d.ts.map +1 -1
- package/dist/definition/column.js +35 -2
- package/dist/definition/column.js.map +1 -1
- package/dist/definition/constraint.d.ts +7 -7
- package/dist/definition/constraint.d.ts.map +1 -1
- package/dist/definition/constraint.js.map +1 -1
- package/dist/definition/domain.d.ts +31 -18
- package/dist/definition/domain.d.ts.map +1 -1
- package/dist/definition/domain.js +26 -4
- package/dist/definition/domain.js.map +1 -1
- package/dist/definition/index.d.ts +2 -2
- package/dist/definition/index.d.ts.map +1 -1
- package/dist/definition/index.js.map +1 -1
- package/dist/definition/namespace.d.ts +5 -2
- package/dist/definition/namespace.d.ts.map +1 -1
- package/dist/definition/namespace.js +10 -2
- package/dist/definition/namespace.js.map +1 -1
- package/dist/definition/sequence.d.ts +31 -18
- package/dist/definition/sequence.d.ts.map +1 -1
- package/dist/definition/sequence.js +31 -25
- package/dist/definition/sequence.js.map +1 -1
- package/dist/definition/table.d.ts +10 -13
- package/dist/definition/table.d.ts.map +1 -1
- package/dist/definition/table.js +2 -2
- package/dist/definition/table.js.map +1 -1
- 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/runtime/base.d.ts +1 -1
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/column.d.ts +5 -1
- package/dist/runtime/column.d.ts.map +1 -1
- package/dist/runtime/column.js +37 -1
- package/dist/runtime/column.js.map +1 -1
- package/dist/runtime/operation.d.ts +4 -4
- package/dist/runtime/operation.d.ts.map +1 -1
- package/dist/runtime/operation.js +41 -41
- package/dist/runtime/operation.js.map +1 -1
- package/dist/runtime/registry.d.ts +2 -2
- package/dist/runtime/registry.d.ts.map +1 -1
- package/dist/runtime/registry.js.map +1 -1
- package/dist/runtime/table.d.ts +1 -0
- package/dist/runtime/table.d.ts.map +1 -1
- package/dist/runtime/table.js +3 -0
- package/dist/runtime/table.js.map +1 -1
- package/dist/sql/tag.d.ts +22 -0
- package/dist/sql/tag.d.ts.map +1 -1
- package/dist/sql/tag.js +75 -1
- package/dist/sql/tag.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/types.d.ts +13 -1
- package/dist/utils/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/client/base.d.ts +0 -9
- package/dist/client/base.d.ts.map +0 -1
- package/dist/client/base.js +0 -13
- package/dist/client/base.js.map +0 -1
- package/dist/client/database.d.ts +0 -5
- package/dist/client/database.d.ts.map +0 -1
- package/dist/client/database.js +0 -8
- package/dist/client/database.js.map +0 -1
- package/dist/client/model.d.ts +0 -19
- package/dist/client/model.d.ts.map +0 -1
- package/dist/client/model.js +0 -12
- package/dist/client/model.js.map +0 -1
- package/dist/definition/schema.d.ts +0 -14
- package/dist/definition/schema.d.ts.map +0 -1
- package/dist/definition/schema.js +0 -15
- package/dist/definition/schema.js.map +0 -1
- package/dist/driver/codec.d.ts +0 -13
- package/dist/driver/codec.d.ts.map +0 -1
- package/dist/driver/codec.js +0 -15
- package/dist/driver/codec.js.map +0 -1
- package/dist/driver/index.d.ts +0 -3
- package/dist/driver/index.d.ts.map +0 -1
- package/dist/driver/index.js +0 -2
- package/dist/driver/index.js.map +0 -1
- package/dist/driver/session.d.ts +0 -23
- package/dist/driver/session.d.ts.map +0 -1
- package/dist/driver/session.js +0 -2
- package/dist/driver/session.js.map +0 -1
- package/dist/execution/column.d.ts +0 -17
- package/dist/execution/column.d.ts.map +0 -1
- package/dist/execution/column.js +0 -23
- package/dist/execution/column.js.map +0 -1
- package/dist/execution/context.d.ts +0 -19
- package/dist/execution/context.d.ts.map +0 -1
- package/dist/execution/context.js +0 -14
- package/dist/execution/context.js.map +0 -1
- package/dist/execution/dialect.d.ts +0 -75
- package/dist/execution/dialect.d.ts.map +0 -1
- package/dist/execution/dialect.js +0 -123
- package/dist/execution/dialect.js.map +0 -1
- package/dist/execution/index.d.ts +0 -8
- package/dist/execution/index.d.ts.map +0 -1
- package/dist/execution/index.js +0 -7
- package/dist/execution/index.js.map +0 -1
- package/dist/execution/operation.d.ts +0 -140
- package/dist/execution/operation.d.ts.map +0 -1
- package/dist/execution/operation.js +0 -303
- package/dist/execution/operation.js.map +0 -1
- package/dist/execution/schema.d.ts +0 -38
- package/dist/execution/schema.d.ts.map +0 -1
- package/dist/execution/schema.js +0 -104
- package/dist/execution/schema.js.map +0 -1
- package/dist/execution/table.d.ts +0 -107
- package/dist/execution/table.d.ts.map +0 -1
- package/dist/execution/table.js +0 -46
- package/dist/execution/table.js.map +0 -1
- package/dist/execution/thenable.d.ts +0 -7
- package/dist/execution/thenable.d.ts.map +0 -1
- package/dist/execution/thenable.js +0 -12
- package/dist/execution/thenable.js.map +0 -1
- package/dist/execution/types.d.ts +0 -42
- package/dist/execution/types.d.ts.map +0 -1
- package/dist/execution/types.js +0 -2
- package/dist/execution/types.js.map +0 -1
- package/dist/runtime/dialect.d.ts +0 -42
- package/dist/runtime/dialect.d.ts.map +0 -1
- package/dist/runtime/dialect.js +0 -2
- package/dist/runtime/dialect.js.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/object.d.ts +0 -29
- package/dist/types/object.d.ts.map +0 -1
- package/dist/types/object.js +0 -2
- package/dist/types/object.js.map +0 -1
- package/dist/types/prettify.d.ts +0 -5
- package/dist/types/prettify.d.ts.map +0 -1
- package/dist/types/prettify.js +0 -3
- package/dist/types/prettify.js.map +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { WithSchema } from "../utils/index.js";
|
|
2
|
-
import { DefinitionNode } from "./base.js";
|
|
3
|
-
import { AnyColumnDefinition } from "./column.js";
|
|
4
|
-
import { TableDefinition } from "./table.js";
|
|
5
|
-
export type AnySchemaDefinition = SchemaDefinition<any>;
|
|
6
|
-
export declare class SchemaDefinition<TName extends string> extends DefinitionNode<TName> {
|
|
7
|
-
readonly kind: "SCHEMA";
|
|
8
|
-
table<TName extends string, TColumns extends Record<string, AnyColumnDefinition>>(name: TName, columns: TColumns): WithSchema<TableDefinition<TName, TColumns, this>, this>;
|
|
9
|
-
toJSON(): {
|
|
10
|
-
readonly kind: "SCHEMA";
|
|
11
|
-
readonly name: TName;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/definition/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAQ,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAExD,qBAAa,gBAAgB,CAAC,KAAK,SAAS,MAAM,CAAE,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC/E,SAAgB,IAAI,WAAe;IAE5B,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACrF,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,QAAQ,GAChB,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAOpD,MAAM;;;;CAMd"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DefinitionNode, Kind } from "./base.js";
|
|
2
|
-
import { TableDefinition } from "./table.js";
|
|
3
|
-
export class SchemaDefinition extends DefinitionNode {
|
|
4
|
-
kind = Kind.SCHEMA;
|
|
5
|
-
table(name, columns) {
|
|
6
|
-
return new TableDefinition(name, { columns, schema: this });
|
|
7
|
-
}
|
|
8
|
-
toJSON() {
|
|
9
|
-
return {
|
|
10
|
-
kind: this.kind,
|
|
11
|
-
name: this.name,
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/definition/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7C,MAAM,OAAO,gBAAuC,SAAQ,cAAqB;IAC/D,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAE5B,KAAK,CACV,IAAW,EACX,OAAiB;QAEjB,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAGzD,CAAC;IACJ,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SACP,CAAC;IACb,CAAC;CACF"}
|
package/dist/driver/codec.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { SQLNode } from "../sql/index.js";
|
|
2
|
-
export interface ValueEncoder<TIn, TOut = TIn> {
|
|
3
|
-
encode(value: TIn): TOut | SQLNode;
|
|
4
|
-
}
|
|
5
|
-
export interface ValueDecoder<TIn, TOut = TIn> {
|
|
6
|
-
decode(value: TIn): TOut;
|
|
7
|
-
}
|
|
8
|
-
export interface ValueCodec<TIn, TOut = TIn> extends ValueEncoder<TIn, TOut>, ValueDecoder<TOut, TIn> {
|
|
9
|
-
}
|
|
10
|
-
export declare const DEFAULT_ENCODER: ValueEncoder<unknown>;
|
|
11
|
-
export declare const DEFAULT_DECODER: ValueDecoder<unknown>;
|
|
12
|
-
export declare const DEFAULT_CODEC: ValueCodec<unknown>;
|
|
13
|
-
//# sourceMappingURL=codec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/driver/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG;IAC3C,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG;IAC3C,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CACzC,SAAQ,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;CAAG;AAE7D,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,OAAO,CAIjD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,OAAO,CAIjD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,OAAO,CAG7C,CAAC"}
|
package/dist/driver/codec.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_ENCODER = {
|
|
2
|
-
encode(value) {
|
|
3
|
-
return value;
|
|
4
|
-
},
|
|
5
|
-
};
|
|
6
|
-
export const DEFAULT_DECODER = {
|
|
7
|
-
decode(value) {
|
|
8
|
-
return value;
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
export const DEFAULT_CODEC = {
|
|
12
|
-
...DEFAULT_ENCODER,
|
|
13
|
-
...DEFAULT_DECODER,
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=codec.js.map
|
package/dist/driver/codec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/driver/codec.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,MAAM,CAAC,KAAc;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,MAAM,CAAC,KAAc;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD,GAAG,eAAe;IAClB,GAAG,eAAe;CACnB,CAAC"}
|
package/dist/driver/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/driver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/driver/index.js
DELETED
package/dist/driver/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/driver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,GAIhB,MAAM,YAAY,CAAC"}
|
package/dist/driver/session.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { SQLStatement } from "../sql/nodes.js";
|
|
2
|
-
/**
|
|
3
|
-
* Defines the Session interface for executing SQL queries and managing transactions.
|
|
4
|
-
*
|
|
5
|
-
* This interface abstracts the underlying driver connection and provides methods
|
|
6
|
-
* for executing queries and handling transactions.
|
|
7
|
-
*/
|
|
8
|
-
export interface Session {
|
|
9
|
-
execute<T = unknown>(query: SQLStatement): Promise<T[]>;
|
|
10
|
-
beginTransaction?(): Promise<TransactionSession>;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Defines the TransactionSession interface, which extends the Session interface with
|
|
14
|
-
* additional methods for committing and rolling back transactions.
|
|
15
|
-
*
|
|
16
|
-
* This interface is used when a transaction is active, allowing the caller to
|
|
17
|
-
* manage the transaction lifecycle explicitly.
|
|
18
|
-
*/
|
|
19
|
-
export interface TransactionSession extends Session {
|
|
20
|
-
commit(): Promise<void>;
|
|
21
|
-
rollback(): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/driver/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;GAKG;AAEH,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACxD,gBAAgB,CAAC,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
|
package/dist/driver/session.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/driver/session.ts"],"names":[],"mappings":""}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { TypedObject } from "../types/object.js";
|
|
2
|
-
import { ColumnConfig, ColumnDefinition } from "../definition/column.js";
|
|
3
|
-
import { SQLContext, SQLNode, SQLStatement } from "../sql/index.js";
|
|
4
|
-
import { AnyTable } from "./table.js";
|
|
5
|
-
export type AnyColumn = Column<AnyTable, string, ColumnConfig>;
|
|
6
|
-
export declare class Column<TTable extends AnyTable, TName extends string, TConfig extends ColumnConfig> implements SQLNode, TypedObject<TConfig> {
|
|
7
|
-
readonly __type: TConfig;
|
|
8
|
-
readonly table: TTable;
|
|
9
|
-
readonly name: TName;
|
|
10
|
-
readonly notNull: TConfig["notNull"];
|
|
11
|
-
readonly primaryKey: TConfig["primaryKey"];
|
|
12
|
-
readonly unique: TConfig["unique"];
|
|
13
|
-
constructor(table: TTable, definition: ColumnDefinition<TName, TConfig>);
|
|
14
|
-
resolve(value: unknown): TConfig["valueType"];
|
|
15
|
-
toSQL(ctx: SQLContext): SQLStatement;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=column.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/execution/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAO,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAE/D,qBAAa,MAAM,CAAC,MAAM,SAAS,QAAQ,EAAE,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,YAAY,CAC7F,YAAW,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;IAExC,SAAiB,MAAM,EAAE,OAAO,CAAC;IAEjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAEvB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IAQhE,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAKpD,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY;CAGrC"}
|
package/dist/execution/column.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { sql } from "../sql/index.js";
|
|
2
|
-
export class Column {
|
|
3
|
-
table;
|
|
4
|
-
name;
|
|
5
|
-
notNull;
|
|
6
|
-
primaryKey;
|
|
7
|
-
unique;
|
|
8
|
-
constructor(table, definition) {
|
|
9
|
-
this.table = table;
|
|
10
|
-
this.name = definition.name;
|
|
11
|
-
this.notNull = definition["_notNull"];
|
|
12
|
-
this.primaryKey = definition["_primaryKey"];
|
|
13
|
-
this.unique = definition["_unique"];
|
|
14
|
-
}
|
|
15
|
-
resolve(value) {
|
|
16
|
-
// In a real implementation, this would include type checking and conversion logic
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
toSQL(ctx) {
|
|
20
|
-
return sql.join([sql.identifier(this.table.name), sql.identifier(this.name)], ".").toSQL(ctx);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=column.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/execution/column.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqC,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAKzE,MAAM,OAAO,MAAM;IAKR,KAAK,CAAS;IACd,IAAI,CAAQ;IACZ,OAAO,CAAqB;IAC5B,UAAU,CAAwB;IAClC,MAAM,CAAoB;IAEnC,YAAY,KAAa,EAAE,UAA4C;QACrE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAEM,OAAO,CAAC,KAAc;QAC3B,kFAAkF;QAClF,OAAO,KAA6B,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,GAAe;QACnB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC;CACF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { QueryDialect } from "./dialect.js";
|
|
2
|
-
import { OperationFactory } from "./operation.js";
|
|
3
|
-
import { SchemaRegistry } from "./schema.js";
|
|
4
|
-
import { Session } from "../driver/session.js";
|
|
5
|
-
import { DefinitionNode } from "../definition/base.js";
|
|
6
|
-
import { Schema } from "./types.js";
|
|
7
|
-
export interface ExecutionContextOptions<TSchema extends Record<string, DefinitionNode> = Record<string, DefinitionNode>> {
|
|
8
|
-
session: Session;
|
|
9
|
-
dialect: QueryDialect;
|
|
10
|
-
schema: SchemaRegistry<TSchema>;
|
|
11
|
-
}
|
|
12
|
-
export declare class ExecutionContext<TSchema extends Record<string, DefinitionNode> = Record<string, DefinitionNode>> {
|
|
13
|
-
readonly dialect: QueryDialect;
|
|
14
|
-
readonly operations: OperationFactory<Schema<TSchema>>;
|
|
15
|
-
readonly schema: SchemaRegistry<TSchema>;
|
|
16
|
-
readonly session: Session;
|
|
17
|
-
constructor(options: ExecutionContextOptions<TSchema>);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/execution/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,WAAW,uBAAuB,CACtC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAE/E,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,qBAAa,gBAAgB,CAC3B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAE/E,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC;CAMtD"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { OperationFactory } from "./operation.js";
|
|
2
|
-
export class ExecutionContext {
|
|
3
|
-
dialect;
|
|
4
|
-
operations;
|
|
5
|
-
schema;
|
|
6
|
-
session;
|
|
7
|
-
constructor(options) {
|
|
8
|
-
this.session = options.session;
|
|
9
|
-
this.dialect = options.dialect;
|
|
10
|
-
this.schema = options.schema;
|
|
11
|
-
this.operations = new OperationFactory(this);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/execution/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAclD,MAAM,OAAO,gBAAgB;IAGlB,OAAO,CAAe;IACtB,UAAU,CAAoC;IAC9C,MAAM,CAA0B;IAChC,OAAO,CAAU;IAE1B,YAAY,OAAyC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAkB,IAAI,CAAC,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { SQLIdentifier, SQLNode, SQLQuery } from "../sql/nodes.js";
|
|
2
|
-
export interface JoinParams {
|
|
3
|
-
alias: string;
|
|
4
|
-
type: "one" | "many";
|
|
5
|
-
from: SQLNode;
|
|
6
|
-
to: SQLNode;
|
|
7
|
-
params: SelectParams;
|
|
8
|
-
}
|
|
9
|
-
export interface SelectParams {
|
|
10
|
-
table: SQLIdentifier;
|
|
11
|
-
select: SQLNode[];
|
|
12
|
-
where?: SQLNode;
|
|
13
|
-
order?: SQLNode[];
|
|
14
|
-
limit?: number;
|
|
15
|
-
offset?: number;
|
|
16
|
-
distinct?: boolean;
|
|
17
|
-
join?: JoinParams[];
|
|
18
|
-
}
|
|
19
|
-
export interface InsertParams {
|
|
20
|
-
table: SQLIdentifier;
|
|
21
|
-
columns: SQLNode[];
|
|
22
|
-
values: SQLNode[][];
|
|
23
|
-
return?: SQLNode[];
|
|
24
|
-
}
|
|
25
|
-
export interface UpdateParams {
|
|
26
|
-
table: SQLIdentifier;
|
|
27
|
-
set: [column: SQLNode, value: SQLNode][];
|
|
28
|
-
where?: SQLNode;
|
|
29
|
-
return?: SQLNode[];
|
|
30
|
-
}
|
|
31
|
-
export interface DeleteParams {
|
|
32
|
-
table: SQLIdentifier;
|
|
33
|
-
where?: SQLNode;
|
|
34
|
-
return?: SQLNode[];
|
|
35
|
-
}
|
|
36
|
-
export declare class QueryDialect {
|
|
37
|
-
private _getSelection;
|
|
38
|
-
/**
|
|
39
|
-
* @example
|
|
40
|
-
* Given a `tasks` table with a relation to an `assignee` in the `users` table, the following join definition:
|
|
41
|
-
* ```ts
|
|
42
|
-
* const join: JoinParams = {
|
|
43
|
-
* alias: "assignee",
|
|
44
|
-
* type: "one",
|
|
45
|
-
* from: sql`${tasks.assigneeId}`,
|
|
46
|
-
* to: sql`${users.id}`,
|
|
47
|
-
* params: {
|
|
48
|
-
* table: users,
|
|
49
|
-
* select: [users.id, users.name, users.email],
|
|
50
|
-
* where: sql`${users.id} = ${tasks.assigneeId}`,
|
|
51
|
-
* },
|
|
52
|
-
* }
|
|
53
|
-
* ```
|
|
54
|
-
* would produce the following SQL:
|
|
55
|
-
*
|
|
56
|
-
* ```sql
|
|
57
|
-
* SELECT "id", "title", "description", "__rel_assignee"."data" AS "assignee" FROM "tasks"
|
|
58
|
-
* LEFT JOIN LATERAL (
|
|
59
|
-
* SELECT row_to_json("__t".*) AS "data"
|
|
60
|
-
* FROM (
|
|
61
|
-
* SELECT "id", "name", "email"
|
|
62
|
-
* FROM "users"
|
|
63
|
-
* WHERE "users"."id" = "tasks"."assignee_id"
|
|
64
|
-
* ) AS "__t"
|
|
65
|
-
* ) AS "__rel_assignee"
|
|
66
|
-
* ON true
|
|
67
|
-
* ```
|
|
68
|
-
**/
|
|
69
|
-
private _buildLateralJoin;
|
|
70
|
-
buildSelectQuery(params: SelectParams): SQLQuery;
|
|
71
|
-
buildInsertQuery(params: InsertParams): SQLQuery;
|
|
72
|
-
buildUpdateQuery(params: UpdateParams): SQLQuery<unknown>;
|
|
73
|
-
buildDeleteQuery(params: DeleteParams): SQLQuery<unknown>;
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=dialect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/execution/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGnE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa;IAiBrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8BI;IACJ,OAAO,CAAC,iBAAiB;IAmBzB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ;IAsChD,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ;IAehD,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAmBrC,gBAAgB,CAAC,MAAM,EAAE,YAAY;CAetC"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { sql } from "../sql/tag.js";
|
|
2
|
-
export class QueryDialect {
|
|
3
|
-
_getSelection(columns, joinFields) {
|
|
4
|
-
const selection = [...columns];
|
|
5
|
-
if (columns.length === 0 && joinFields.length === 0) {
|
|
6
|
-
return sql `*`;
|
|
7
|
-
}
|
|
8
|
-
for (const field of joinFields) {
|
|
9
|
-
const alias = sql.identifier(`__join_${field}`);
|
|
10
|
-
const node = sql `${alias}.${sql.identifier("data")} AS ${sql.identifier(field)}`;
|
|
11
|
-
selection.push(node);
|
|
12
|
-
}
|
|
13
|
-
return sql.join(selection, ", ");
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @example
|
|
17
|
-
* Given a `tasks` table with a relation to an `assignee` in the `users` table, the following join definition:
|
|
18
|
-
* ```ts
|
|
19
|
-
* const join: JoinParams = {
|
|
20
|
-
* alias: "assignee",
|
|
21
|
-
* type: "one",
|
|
22
|
-
* from: sql`${tasks.assigneeId}`,
|
|
23
|
-
* to: sql`${users.id}`,
|
|
24
|
-
* params: {
|
|
25
|
-
* table: users,
|
|
26
|
-
* select: [users.id, users.name, users.email],
|
|
27
|
-
* where: sql`${users.id} = ${tasks.assigneeId}`,
|
|
28
|
-
* },
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
* would produce the following SQL:
|
|
32
|
-
*
|
|
33
|
-
* ```sql
|
|
34
|
-
* SELECT "id", "title", "description", "__rel_assignee"."data" AS "assignee" FROM "tasks"
|
|
35
|
-
* LEFT JOIN LATERAL (
|
|
36
|
-
* SELECT row_to_json("__t".*) AS "data"
|
|
37
|
-
* FROM (
|
|
38
|
-
* SELECT "id", "name", "email"
|
|
39
|
-
* FROM "users"
|
|
40
|
-
* WHERE "users"."id" = "tasks"."assignee_id"
|
|
41
|
-
* ) AS "__t"
|
|
42
|
-
* ) AS "__rel_assignee"
|
|
43
|
-
* ON true
|
|
44
|
-
* ```
|
|
45
|
-
**/
|
|
46
|
-
_buildLateralJoin(join) {
|
|
47
|
-
const alias = sql.identifier(`__join_${join.alias}`);
|
|
48
|
-
const innerAlias = sql.identifier(`__t`);
|
|
49
|
-
const innerQuery = this.buildSelectQuery(join.params);
|
|
50
|
-
const subquery = sql `SELECT`;
|
|
51
|
-
if (join.type === "many") {
|
|
52
|
-
subquery.append(sql ` COALESCE(json_agg(row_to_json(${innerAlias}.*)), '[]'::json)`);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
subquery.append(sql ` row_to_json(${innerAlias}.*)`);
|
|
56
|
-
}
|
|
57
|
-
subquery.append(sql ` AS ${sql.identifier("data")} FROM (${innerQuery}) AS ${innerAlias}`);
|
|
58
|
-
return sql `LEFT JOIN LATERAL (${subquery}) AS ${alias} ON true`;
|
|
59
|
-
}
|
|
60
|
-
buildSelectQuery(params) {
|
|
61
|
-
const { table, select, distinct, where, order, limit, offset, join } = params;
|
|
62
|
-
const query = sql `SELECT`;
|
|
63
|
-
if (distinct) {
|
|
64
|
-
query.append(sql ` DISTINCT`);
|
|
65
|
-
}
|
|
66
|
-
const selection = this._getSelection(select, join?.map(({ alias }) => alias) ?? []);
|
|
67
|
-
query.append(sql ` ${selection} FROM ${table}`);
|
|
68
|
-
if (join) {
|
|
69
|
-
for (const joinEntry of join) {
|
|
70
|
-
const joinNode = this._buildLateralJoin(joinEntry);
|
|
71
|
-
query.append(sql ` ${joinNode}`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (where) {
|
|
75
|
-
query.append(sql ` WHERE ${where}`);
|
|
76
|
-
}
|
|
77
|
-
if (order && order.length > 0) {
|
|
78
|
-
query.append(sql ` ORDER BY ${sql.join(order, ", ")}`);
|
|
79
|
-
}
|
|
80
|
-
if (limit !== undefined) {
|
|
81
|
-
query.append(sql ` LIMIT ${sql.param(limit)}`);
|
|
82
|
-
}
|
|
83
|
-
if (offset !== undefined) {
|
|
84
|
-
query.append(sql ` OFFSET ${sql.param(offset)}`);
|
|
85
|
-
}
|
|
86
|
-
return query;
|
|
87
|
-
}
|
|
88
|
-
buildInsertQuery(params) {
|
|
89
|
-
const { table, columns, values, return: returning } = params;
|
|
90
|
-
const query = sql `INSERT INTO ${table} (${sql.join(columns, ", ")})`;
|
|
91
|
-
const rows = values.map((row) => sql.wrap(sql.join(row, ", ")));
|
|
92
|
-
query.append(sql ` VALUES ${sql.join(rows, ", ")}`);
|
|
93
|
-
if (returning) {
|
|
94
|
-
query.append(sql ` RETURNING ${sql.join(returning, ", ")}`);
|
|
95
|
-
}
|
|
96
|
-
return query;
|
|
97
|
-
}
|
|
98
|
-
buildUpdateQuery(params) {
|
|
99
|
-
const { table, set, where, return: returning } = params;
|
|
100
|
-
const query = sql `UPDATE ${table}`;
|
|
101
|
-
const sets = set.map(([col, val]) => sql `${col} = ${val}`);
|
|
102
|
-
query.append(sql ` SET ${sql.join(sets, ", ")}`);
|
|
103
|
-
if (where) {
|
|
104
|
-
query.append(sql ` WHERE ${where}`);
|
|
105
|
-
}
|
|
106
|
-
if (returning) {
|
|
107
|
-
query.append(sql ` RETURNING ${sql.join(returning, ", ")}`);
|
|
108
|
-
}
|
|
109
|
-
return query;
|
|
110
|
-
}
|
|
111
|
-
buildDeleteQuery(params) {
|
|
112
|
-
const { table, where, return: returning } = params;
|
|
113
|
-
const query = sql `DELETE FROM ${table}`;
|
|
114
|
-
if (where) {
|
|
115
|
-
query.append(sql ` WHERE ${where}`);
|
|
116
|
-
}
|
|
117
|
-
if (returning) {
|
|
118
|
-
query.append(sql ` RETURNING ${sql.join(returning, ", ")}`);
|
|
119
|
-
}
|
|
120
|
-
return query;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=dialect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/execution/dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { Column, type AnyColumn } from "./column.js";
|
|
2
|
-
export { ExecutionContext, type ExecutionContextOptions } from "./context.js";
|
|
3
|
-
export { QueryDialect, type InsertParams, type SelectParams, type DeleteParams, type UpdateParams, type JoinParams, } from "./dialect.js";
|
|
4
|
-
export { OperationFactory, type DeleteArgs, type DeleteOperation, type FieldSelection, type InsertArgs, type InsertOperation, type Operation, type SelectArgs, type SelectOperation, type UpdateArgs, type UpdateOperation, type FilterCondition, type InsertRecordOf, type UpdateRecordOf, type OperationType, type OrderDirection, type ColumnSelectionOf, type ColumnValueOf, type OperationResult, type SelectResult, type JoinExpressionOf, type OperationMode, type OrderByExpressionOf, type RelationTargetTable, type SelectionOf, type WhereExpressionOf, } from "./operation.js";
|
|
5
|
-
export { SchemaRegistry, type TableNameOf, type FieldRelationOf, type RelationDefinitionsOf, type TableRelationsFields, } from "./schema.js";
|
|
6
|
-
export { Table, type AnyTable, type ColumnNamesOf, type ColumsOf, type RecordOf, type SchemaNameOf, type WithRelations, } from "./table.js";
|
|
7
|
-
export type { Schema, TableByName, AnySchema, CreateParams, CreateRecordOf, RelationNameOf, SchemaRelations, SchemaRelationsOf, SchemaTables, SelectColumnsOf, TableRelations, } from "./types.js";
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,MAAM,EACN,WAAW,EACX,SAAS,EACT,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/execution/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { Column } from "./column.js";
|
|
2
|
-
export { ExecutionContext } from "./context.js";
|
|
3
|
-
export { QueryDialect, } from "./dialect.js";
|
|
4
|
-
export { OperationFactory, } from "./operation.js";
|
|
5
|
-
export { SchemaRegistry, } from "./schema.js";
|
|
6
|
-
export { Table, } from "./table.js";
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAgC,MAAM,cAAc,CAAC;AAC9E,OAAO,EACL,YAAY,GAMb,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,GA0BjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,GAKf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,GAON,MAAM,YAAY,CAAC"}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { AnyColumnDefinition } from "../definition/column.js";
|
|
2
|
-
import { AnyTableRelations, Relation } from "../definition/relations.js";
|
|
3
|
-
import { AnyTableDefinition, TableDefinition } from "../definition/table.js";
|
|
4
|
-
import { SQLStatement } from "../sql/nodes.js";
|
|
5
|
-
import { TypedObject } from "../types/object.js";
|
|
6
|
-
import { Prettify } from "../types/prettify.js";
|
|
7
|
-
import { AnyColumn } from "./column.js";
|
|
8
|
-
import { ExecutionContext } from "./context.js";
|
|
9
|
-
import { AnyTable, Table } from "./table.js";
|
|
10
|
-
import { AnySchema, SchemaRelationsOf } from "./types.js";
|
|
11
|
-
export type OrderDirection = "asc" | "desc";
|
|
12
|
-
export type FieldResolver = [string, AnyColumn | FieldResolver[]];
|
|
13
|
-
export interface FieldSelection {
|
|
14
|
-
columns: AnyColumn[];
|
|
15
|
-
resolvers: FieldResolver[];
|
|
16
|
-
}
|
|
17
|
-
export interface FilterCondition<Value = unknown> {
|
|
18
|
-
eq?: Value;
|
|
19
|
-
ne?: Value;
|
|
20
|
-
gt?: Value;
|
|
21
|
-
gte?: Value;
|
|
22
|
-
lt?: Value;
|
|
23
|
-
lte?: Value;
|
|
24
|
-
in?: Value[];
|
|
25
|
-
notIn?: Value[];
|
|
26
|
-
between?: [Value, Value];
|
|
27
|
-
like?: string;
|
|
28
|
-
notLike?: string;
|
|
29
|
-
iLike?: string;
|
|
30
|
-
notILike?: string;
|
|
31
|
-
isNull?: boolean;
|
|
32
|
-
isNotNull?: boolean;
|
|
33
|
-
}
|
|
34
|
-
export type WhereExpressionOf<T extends AnyTable> = {
|
|
35
|
-
[K in keyof T["__type"]["columns"]]?: T["__type"]["columns"][K] extends AnyColumnDefinition ? FilterCondition : never;
|
|
36
|
-
} | {
|
|
37
|
-
and?: WhereExpressionOf<T>[];
|
|
38
|
-
} | {
|
|
39
|
-
or?: WhereExpressionOf<T>[];
|
|
40
|
-
} | {
|
|
41
|
-
not?: WhereExpressionOf<T>;
|
|
42
|
-
};
|
|
43
|
-
export type ColumnSelectionOf<T extends AnyTable> = {
|
|
44
|
-
[K in keyof T["__type"]["columns"]]?: T["__type"]["columns"][K] extends AnyColumnDefinition ? boolean : never;
|
|
45
|
-
};
|
|
46
|
-
export type OrderByExpressionOf<T extends AnyTable> = {
|
|
47
|
-
[K in keyof T["__type"]["columns"]]?: T["__type"]["columns"][K] extends AnyColumnDefinition ? OrderDirection : never;
|
|
48
|
-
};
|
|
49
|
-
export type InsertRecordOf<TTable extends AnyTable> = Prettify<{
|
|
50
|
-
[K in keyof TTable["columns"]]: TTable["columns"][K] extends AnyColumn ? string | null | undefined : never;
|
|
51
|
-
}>;
|
|
52
|
-
export type UpdateRecordOf<TTable extends AnyTable> = Prettify<{
|
|
53
|
-
[K in keyof TTable["columns"]]?: TTable["columns"][K] extends AnyColumn ? TTable["columns"][K]["primaryKey"] extends true ? never : string | null | undefined : never;
|
|
54
|
-
}>;
|
|
55
|
-
export type JoinExpressionOf<T extends AnyTable, S extends AnySchema> = T["__type"]["relations"] extends AnyTableRelations ? {
|
|
56
|
-
[K in keyof T["__type"]["relations"]]?: T["__type"]["relations"][K] extends Relation<AnyTableDefinition, TableDefinition<infer TargetName, infer TargetConfig>> ? SelectArgs<Table<TargetName, TargetConfig, SchemaRelationsOf<S, TargetName>>, S> | boolean : never;
|
|
57
|
-
} : never;
|
|
58
|
-
export interface SelectArgs<T extends AnyTable, TSchema extends AnySchema = AnySchema> {
|
|
59
|
-
select: ColumnSelectionOf<T>;
|
|
60
|
-
where?: WhereExpressionOf<T>;
|
|
61
|
-
orderBy?: OrderByExpressionOf<T>;
|
|
62
|
-
join?: JoinExpressionOf<T, TSchema>;
|
|
63
|
-
distinct?: boolean;
|
|
64
|
-
limit?: number;
|
|
65
|
-
offset?: number;
|
|
66
|
-
}
|
|
67
|
-
export type ColumnValueOf<T extends AnyColumnDefinition> = T["__type"]["notNull"] extends true ? T["__type"]["valueType"] : T["__type"]["valueType"] | null;
|
|
68
|
-
export type RecordOf<T extends AnyTable> = {
|
|
69
|
-
[K in keyof T["__type"]["columns"]]: ColumnValueOf<T["__type"]["columns"][K]>;
|
|
70
|
-
};
|
|
71
|
-
export type SelectionOf<TTable extends AnyTable, TSchema extends AnySchema, TArgs extends SelectArgs<TTable, TSchema>> = keyof TArgs["select"] extends never ? RecordOf<TTable> : {
|
|
72
|
-
[K in keyof TArgs["select"]]: TArgs["select"][K] extends true ? K extends keyof TTable["__type"]["columns"] ? TTable["__type"]["columns"][K] extends AnyColumnDefinition ? ColumnValueOf<TTable["__type"]["columns"][K]> : never : never : never;
|
|
73
|
-
};
|
|
74
|
-
export type RelationTargetTable<TShema extends AnySchema, TRelation extends string> = TShema["relations"] extends Record<TRelation, infer R> ? R extends AnyTableRelations ? R : never : never;
|
|
75
|
-
export type SelectResult<TTable extends AnyTable, TSchema extends AnySchema, TArgs extends SelectArgs<TTable, TSchema>> = Prettify<SelectionOf<TTable, TSchema, TArgs> & {
|
|
76
|
-
[K in keyof TArgs["join"]]: TArgs["join"][K] extends JoinExpressionOf<TTable, TSchema>[K] ? K extends keyof TTable["__type"]["relations"] ? TTable["__type"]["relations"][K]["target"] extends TableDefinition<infer TargetName, infer TargetConfig> ? TArgs["join"][K] extends boolean ? OperationResult<TTable["__type"]["relations"][K]["type"] extends "has_many" ? "many" : "one", SelectResult<Table<TargetName, TargetConfig, SchemaRelationsOf<TSchema, TargetName>>, TSchema, {
|
|
77
|
-
select: object;
|
|
78
|
-
}>> : TArgs["join"][K] extends SelectArgs<Table<TargetName, TargetConfig, SchemaRelationsOf<TSchema, TargetName>>, TSchema> ? OperationResult<TTable["__type"]["relations"][K]["type"] extends "has_many" ? "many" : "one", SelectResult<Table<TargetName, TargetConfig, SchemaRelationsOf<TSchema, TargetName>>, TSchema, TArgs["join"][K]>> : never : never : never : never;
|
|
79
|
-
}>;
|
|
80
|
-
export interface InsertArgs<T extends AnyTable = AnyTable> {
|
|
81
|
-
data: InsertRecordOf<T> | InsertRecordOf<T>[];
|
|
82
|
-
return?: ColumnSelectionOf<T>;
|
|
83
|
-
}
|
|
84
|
-
export interface UpdateArgs<T extends AnyTable = AnyTable> {
|
|
85
|
-
set: UpdateRecordOf<T>;
|
|
86
|
-
where: WhereExpressionOf<T>;
|
|
87
|
-
return?: ColumnSelectionOf<T>;
|
|
88
|
-
}
|
|
89
|
-
export interface DeleteArgs<T extends AnyTable = AnyTable> {
|
|
90
|
-
where: WhereExpressionOf<T>;
|
|
91
|
-
return?: ColumnSelectionOf<T>;
|
|
92
|
-
}
|
|
93
|
-
export type OperationType = "select" | "insert" | "update" | "delete";
|
|
94
|
-
export type OperationMode = "one" | "many";
|
|
95
|
-
export interface Operation<TTable extends AnyTable, TArgs extends object, TReturn = unknown> {
|
|
96
|
-
type: OperationType;
|
|
97
|
-
table: TTable;
|
|
98
|
-
name: string;
|
|
99
|
-
mode: OperationMode;
|
|
100
|
-
args: TArgs;
|
|
101
|
-
query: SQLStatement;
|
|
102
|
-
resolve: (rows: unknown[]) => TReturn;
|
|
103
|
-
}
|
|
104
|
-
interface OperationOptions<TArgs extends object, TMode extends OperationMode = OperationMode> {
|
|
105
|
-
name?: string;
|
|
106
|
-
mode: TMode;
|
|
107
|
-
args: TArgs;
|
|
108
|
-
}
|
|
109
|
-
export type OperationResult<TMode extends OperationMode, TReturn> = TMode extends "one" ? TReturn | null : TReturn[];
|
|
110
|
-
export interface SelectOperation<TTable extends AnyTable, TArgs extends SelectArgs<TTable> = SelectArgs<TTable>, TReturn = unknown> extends Operation<TTable, TArgs, TReturn> {
|
|
111
|
-
type: "select";
|
|
112
|
-
}
|
|
113
|
-
export interface InsertOperation<TTable extends AnyTable, TArgs extends InsertArgs = InsertArgs, TReturn = unknown> extends Operation<TTable, TArgs, TReturn> {
|
|
114
|
-
type: "insert";
|
|
115
|
-
}
|
|
116
|
-
export interface UpdateOperation<TTable extends AnyTable, TArgs extends UpdateArgs = UpdateArgs, TReturn = unknown> extends Operation<TTable, TArgs, TReturn> {
|
|
117
|
-
type: "update";
|
|
118
|
-
}
|
|
119
|
-
export interface DeleteOperation<TTable extends AnyTable, TArgs extends DeleteArgs = DeleteArgs, TReturn = unknown> extends Operation<TTable, TArgs, TReturn> {
|
|
120
|
-
type: "delete";
|
|
121
|
-
}
|
|
122
|
-
export declare class OperationFactory<TSchema extends AnySchema = AnySchema> implements TypedObject<TSchema> {
|
|
123
|
-
readonly __type: TSchema;
|
|
124
|
-
private readonly _ctx;
|
|
125
|
-
constructor(ctx: ExecutionContext);
|
|
126
|
-
private _resolveFields;
|
|
127
|
-
private _resolveWhereExpression;
|
|
128
|
-
private _resolveOrderExpression;
|
|
129
|
-
private _resolveInsertEntries;
|
|
130
|
-
private _resolveUpdateEntries;
|
|
131
|
-
private _resolveSelectParams;
|
|
132
|
-
private _resolveJoinEntries;
|
|
133
|
-
_createResultResolver<TTable extends AnyTable, TArgs extends SelectArgs<TTable, this["__type"]>, TMode extends OperationMode>(resolvers: FieldResolver[], mode: TMode): (rows: unknown[]) => OperationResult<TMode, SelectResult<TTable, this["__type"], TArgs>>;
|
|
134
|
-
createSelect<TTable extends AnyTable, TArgs extends SelectArgs<TTable, this["__type"]>, TMode extends OperationMode>(table: TTable, config: OperationOptions<TArgs, TMode>): SelectOperation<TTable, SelectArgs<TTable>, OperationResult<TMode, SelectResult<TTable, this["__type"], TArgs>>>;
|
|
135
|
-
createInsert<TTable extends AnyTable>(table: TTable, config: OperationOptions<InsertArgs<TTable>>): Prettify<InsertOperation<TTable, InsertArgs<TTable>, unknown>>;
|
|
136
|
-
createUpdate<TTable extends AnyTable>(table: TTable, config: OperationOptions<UpdateArgs<TTable>>): UpdateOperation<TTable, UpdateArgs<TTable>, unknown>;
|
|
137
|
-
createDelete<TTable extends AnyTable>(table: TTable, config: OperationOptions<DeleteArgs<TTable>>): DeleteOperation<TTable, DeleteArgs<TTable>, unknown>;
|
|
138
|
-
}
|
|
139
|
-
export {};
|
|
140
|
-
//# sourceMappingURL=operation.d.ts.map
|