@dsqlbase/core 0.0.1 → 0.1.0
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 +3 -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
package/CHANGELOG.md
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# @dsqlbase/core
|
|
2
|
+
|
|
3
|
+
Core primitives for the dsqlbase toolkit — abstract schema model, runtime types, and the `sql` tagged-template builder.
|
|
4
|
+
|
|
5
|
+
> [!NOTE]
|
|
6
|
+
> This is an internal package within the [dsqlbase](https://github.com/slsdotdev/dsqlbase) monorepo. Most users should depend on [`dsqlbase`](https://www.npmjs.com/package/dsqlbase) instead — it re-exports the public surface. Depend on `@dsqlbase/core` directly only if you're building tooling that needs the underlying primitives.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install @dsqlbase/core
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
For typical application use, `npm install dsqlbase` instead — it re-exports `sql`, `Session`, `SQLStatement`, and `SQLQuery` directly.
|
|
15
|
+
|
|
16
|
+
## License
|
|
17
|
+
|
|
18
|
+
MIT.
|
|
@@ -40,7 +40,6 @@ export declare abstract class DefinitionNode<TName extends string = string, TCon
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
export declare class NodeRef<TNode extends DefinitionNode> extends SQLIdentifier implements TypedObject<TNode["__type"]> {
|
|
43
|
-
readonly target: TNode;
|
|
44
43
|
readonly kind: "REFERENCE";
|
|
45
44
|
readonly __type: TNode["__type"];
|
|
46
45
|
constructor(target: TNode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/definition/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;EAeN,CAAC;AAEZ,eAAO,MAAM,QAAQ;;;;EAIV,CAAC;AAEZ,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAW,CAAC,IAAI,EAAE,MAAM;IACvC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAOtD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE9D,8BAAsB,cAAc,CAClC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,YAAW,WAAW,CAAC,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAEjC,SAAiB,MAAM,EAAE,OAAO,CAAC;IAEjC,SAAgB,IAAI,EAAE,KAAK,CAAC;gBAEhB,IAAI,EAAE,KAAK;IAIhB,MAAM;;;;CAMd;AAED,qBAAa,OAAO,CAAC,KAAK,SAAS,cAAc,CAC/C,SAAQ,aACR,YAAW,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/definition/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;EAeN,CAAC;AAEZ,eAAO,MAAM,QAAQ;;;;EAIV,CAAC;AAEZ,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAW,CAAC,IAAI,EAAE,MAAM;IACvC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAOtD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE9D,8BAAsB,cAAc,CAClC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,YAAW,WAAW,CAAC,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAEjC,SAAiB,MAAM,EAAE,OAAO,CAAC;IAEjC,SAAgB,IAAI,EAAE,KAAK,CAAC;gBAEhB,IAAI,EAAE,KAAK;IAIhB,MAAM;;;;CAMd;AAED,qBAAa,OAAO,CAAC,KAAK,SAAS,cAAc,CAC/C,SAAQ,aACR,YAAW,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEvC,SAAgB,IAAI,cAAkB;IAEtC,SAAiB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE7B,MAAM,EAAE,KAAK;IAIzB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;CAGxB"}
|
package/dist/definition/base.js
CHANGED
|
@@ -41,14 +41,12 @@ export class DefinitionNode {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
export class NodeRef extends SQLIdentifier {
|
|
44
|
-
target;
|
|
45
44
|
kind = Kind.REFERENCE;
|
|
46
45
|
constructor(target) {
|
|
47
46
|
super(target.name);
|
|
48
|
-
this.target = target;
|
|
49
47
|
}
|
|
50
48
|
toJSON() {
|
|
51
|
-
return this.
|
|
49
|
+
return this.name;
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/definition/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;CACxC,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CAChB,CAAC,CAAC;AAUZ,MAAM,CAAC,MAAM,YAAY,GAAkC;IACzD,MAAM,CAAC,KAAK;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG;QACR,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC;AAIF,MAAM,OAAgB,cAAc;IAQlB,IAAI,CAAQ;IAE5B,YAAY,IAAW;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,OACX,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/definition/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;CACxC,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CAChB,CAAC,CAAC;AAUZ,MAAM,CAAC,MAAM,YAAY,GAAkC;IACzD,MAAM,CAAC,KAAK;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG;QACR,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC;AAIF,MAAM,OAAgB,cAAc;IAQlB,IAAI,CAAQ;IAE5B,YAAY,IAAW;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,OACX,SAAQ,aAAa;IAGL,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;IAItC,YAAY,MAAa;QACvB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { SQLIdentifier, SQLNode } from "../sql/nodes.js";
|
|
2
|
-
import { HasDefault, NotNull, PrimaryKey, TypedObject, Unique,
|
|
2
|
+
import { HasDefault, NotNull, PrimaryKey, TypedObject, Unique, ValueType } from "../utils/index.js";
|
|
3
3
|
import { ColumnCodec, DefinitionNode, NodeRef } from "./base.js";
|
|
4
4
|
import { AnyCheckConstraintDefinition } from "./constraint.js";
|
|
5
5
|
import { AnyDomainDefinition } from "./domain.js";
|
|
6
|
+
import { SequenceOptions } from "./sequence.js";
|
|
6
7
|
export type UpdateGuard<T extends TypedObject> = T["__type"] extends {
|
|
7
8
|
primaryKey: true;
|
|
8
9
|
} ? never : T;
|
|
10
|
+
export type ColumnGeneratedType = "ALWAYS" | "BY DEFAULT";
|
|
11
|
+
export interface ColumnGeneratedConfig {
|
|
12
|
+
type: "ALWAYS";
|
|
13
|
+
expression: SQLNode;
|
|
14
|
+
mode: "STORED";
|
|
15
|
+
}
|
|
16
|
+
export interface ColumnIdentityConfig {
|
|
17
|
+
type: ColumnGeneratedType;
|
|
18
|
+
options: SequenceOptions;
|
|
19
|
+
sequenceName?: string;
|
|
20
|
+
}
|
|
9
21
|
export interface ColumnConfig<TValueType = unknown, TRawType = unknown> {
|
|
10
22
|
dataType: string;
|
|
11
23
|
valueType: TValueType;
|
|
@@ -14,9 +26,12 @@ export interface ColumnConfig<TValueType = unknown, TRawType = unknown> {
|
|
|
14
26
|
primaryKey: boolean;
|
|
15
27
|
unique: boolean;
|
|
16
28
|
codec: ColumnCodec<TRawType, TValueType>;
|
|
17
|
-
|
|
29
|
+
defaultValue?: SQLNode;
|
|
30
|
+
domain?: NodeRef<AnyDomainDefinition>;
|
|
31
|
+
generated?: ColumnGeneratedConfig;
|
|
32
|
+
identity?: ColumnIdentityConfig;
|
|
18
33
|
}
|
|
19
|
-
export type AnyColumnDefinition = ColumnDefinition<
|
|
34
|
+
export type AnyColumnDefinition = ColumnDefinition<string, ColumnConfig>;
|
|
20
35
|
export declare class ColumnDefinition<TName extends string, TConfig extends ColumnConfig> extends DefinitionNode<TName, TConfig> {
|
|
21
36
|
readonly kind: "COLUMN";
|
|
22
37
|
protected _dataType: string;
|
|
@@ -24,8 +39,10 @@ export declare class ColumnDefinition<TName extends string, TConfig extends Colu
|
|
|
24
39
|
protected _primaryKey: boolean;
|
|
25
40
|
protected _unique: boolean;
|
|
26
41
|
protected _defaultValue?: SQLNode;
|
|
27
|
-
protected _domain?: NodeRef<
|
|
42
|
+
protected _domain?: NodeRef<AnyDomainDefinition>;
|
|
28
43
|
protected _check?: AnyCheckConstraintDefinition;
|
|
44
|
+
protected _generated?: ColumnGeneratedConfig;
|
|
45
|
+
protected _identity?: ColumnIdentityConfig;
|
|
29
46
|
protected _codec: ColumnCodec<this["__type"]["rawType"], this["__type"]["valueType"]>;
|
|
30
47
|
protected _onCreate?: () => this["__type"]["valueType"];
|
|
31
48
|
protected _onUpdate?: () => this["__type"]["valueType"];
|
|
@@ -52,7 +69,7 @@ export declare class ColumnDefinition<TName extends string, TConfig extends Colu
|
|
|
52
69
|
* @returns
|
|
53
70
|
*/
|
|
54
71
|
check(cb: (self: SQLIdentifier) => SQLNode, name?: string): this;
|
|
55
|
-
$type<T>():
|
|
72
|
+
$type<T>(): ValueType<this, T>;
|
|
56
73
|
$onCreate(cb: () => this["__type"]["valueType"]): this;
|
|
57
74
|
$onUpdate(cb: () => this["__type"]["valueType"]): UpdateGuard<this>;
|
|
58
75
|
toJSON(): {
|
|
@@ -64,11 +81,30 @@ export declare class ColumnDefinition<TName extends string, TConfig extends Colu
|
|
|
64
81
|
readonly unique: boolean;
|
|
65
82
|
readonly defaultValue: string | null;
|
|
66
83
|
readonly check: {
|
|
67
|
-
kind: "CHECK_CONSTRAINT";
|
|
68
|
-
name:
|
|
84
|
+
readonly kind: "CHECK_CONSTRAINT";
|
|
85
|
+
readonly name: string;
|
|
86
|
+
readonly expression: string;
|
|
87
|
+
} | null;
|
|
88
|
+
readonly domain: string | null;
|
|
89
|
+
readonly generated: {
|
|
90
|
+
type: "ALWAYS";
|
|
69
91
|
expression: string;
|
|
92
|
+
mode: "STORED";
|
|
93
|
+
} | null;
|
|
94
|
+
readonly identity: {
|
|
95
|
+
type: ColumnGeneratedType;
|
|
96
|
+
sequenceName: string | undefined;
|
|
97
|
+
options: {
|
|
98
|
+
dataType: string | undefined;
|
|
99
|
+
cache: number | undefined;
|
|
100
|
+
cycle: boolean | undefined;
|
|
101
|
+
increment: number | undefined;
|
|
102
|
+
minValue: number | undefined;
|
|
103
|
+
maxValue: number | undefined;
|
|
104
|
+
startValue: number | undefined;
|
|
105
|
+
ownedBy: string | undefined;
|
|
106
|
+
} | null;
|
|
70
107
|
} | null;
|
|
71
|
-
readonly domain: NonNullable<TConfig["domain"]["name"]> | null;
|
|
72
108
|
};
|
|
73
109
|
}
|
|
74
110
|
//# sourceMappingURL=column.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/definition/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAsB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/definition/column.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SQLIdentifier, SQLParam, SQLQuery } from "../sql/nodes.js";
|
|
2
|
-
import { defaultCodec, DefinitionNode, Kind
|
|
2
|
+
import { defaultCodec, DefinitionNode, Kind } from "./base.js";
|
|
3
3
|
import { CheckConstraintDefinition } from "./constraint.js";
|
|
4
4
|
export class ColumnDefinition extends DefinitionNode {
|
|
5
5
|
kind = Kind.COLUMN;
|
|
@@ -10,6 +10,8 @@ export class ColumnDefinition extends DefinitionNode {
|
|
|
10
10
|
_defaultValue;
|
|
11
11
|
_domain;
|
|
12
12
|
_check;
|
|
13
|
+
_generated;
|
|
14
|
+
_identity;
|
|
13
15
|
_codec;
|
|
14
16
|
_onCreate;
|
|
15
17
|
_onUpdate;
|
|
@@ -19,8 +21,11 @@ export class ColumnDefinition extends DefinitionNode {
|
|
|
19
21
|
this._notNull = config.notNull ?? false;
|
|
20
22
|
this._primaryKey = config.primaryKey ?? false;
|
|
21
23
|
this._unique = config.unique ?? false;
|
|
24
|
+
this._defaultValue = config.defaultValue;
|
|
22
25
|
this._codec = config.codec ?? defaultCodec;
|
|
23
|
-
this._domain = config.domain
|
|
26
|
+
this._domain = config.domain;
|
|
27
|
+
this._generated = config.generated;
|
|
28
|
+
this._identity = config.identity;
|
|
24
29
|
}
|
|
25
30
|
/**
|
|
26
31
|
* Marks the column as `NOT NULL`. This means that the column cannot contain null values.
|
|
@@ -88,6 +93,34 @@ export class ColumnDefinition extends DefinitionNode {
|
|
|
88
93
|
: null,
|
|
89
94
|
check: this._check?.toJSON() ?? null,
|
|
90
95
|
domain: this._domain?.toJSON() ?? null,
|
|
96
|
+
generated: this._generated
|
|
97
|
+
? {
|
|
98
|
+
type: this._generated.type,
|
|
99
|
+
expression: new SQLQuery(this._generated.expression).toQuery({ inlineParams: true })
|
|
100
|
+
.text,
|
|
101
|
+
mode: this._generated.mode,
|
|
102
|
+
}
|
|
103
|
+
: null,
|
|
104
|
+
identity: this._identity
|
|
105
|
+
? {
|
|
106
|
+
type: this._identity.type,
|
|
107
|
+
sequenceName: this._identity.sequenceName,
|
|
108
|
+
options: this._identity.options
|
|
109
|
+
? {
|
|
110
|
+
dataType: this._identity.options.dataType,
|
|
111
|
+
cache: this._identity.options.cache,
|
|
112
|
+
cycle: this._identity.options.cycle,
|
|
113
|
+
increment: this._identity.options.increment,
|
|
114
|
+
minValue: this._identity.options.minValue,
|
|
115
|
+
maxValue: this._identity.options.maxValue,
|
|
116
|
+
startValue: this._identity.options.startValue,
|
|
117
|
+
ownedBy: this._identity.options.ownedBy
|
|
118
|
+
? new SQLQuery(this._identity.options.ownedBy).toQuery().text
|
|
119
|
+
: undefined,
|
|
120
|
+
}
|
|
121
|
+
: null,
|
|
122
|
+
}
|
|
123
|
+
: null,
|
|
91
124
|
};
|
|
92
125
|
}
|
|
93
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/definition/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAW,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/definition/column.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export type JoinColumnNames<T extends ColumnRef[]> = T extends [
|
|
|
7
7
|
infer I extends ColumnRef,
|
|
8
8
|
...infer R extends ColumnRef[]
|
|
9
9
|
] ? R extends [] ? I["name"] : `${I["name"]}_${JoinColumnNames<R>}` : "";
|
|
10
|
-
export type InferConstraintName<TName extends string | undefined, TSource extends NodeRef<DefinitionNode>, TColumns extends ColumnRef[], TSuffix extends string> = TName extends string ? TName : `${TSource["
|
|
10
|
+
export type InferConstraintName<TName extends string | undefined, TSource extends NodeRef<DefinitionNode>, TColumns extends ColumnRef[], TSuffix extends string> = TName extends string ? TName : `${TSource["name"]}_${JoinColumnNames<TColumns>}_${TSuffix}`;
|
|
11
11
|
export interface CheckConstraintConfig {
|
|
12
12
|
expression: SQLQuery;
|
|
13
13
|
}
|
|
@@ -20,18 +20,18 @@ export interface PrimaryKeyConstraintConfig<TTable extends AnyTableDefinition> {
|
|
|
20
20
|
columns: ColumnRefs<TTable["columns"]>[keyof TTable["columns"]][];
|
|
21
21
|
}
|
|
22
22
|
export declare const extractConstrainName: <TName extends string, TSource extends DefinitionNode, TColumns extends ColumnRef[], TSuffix extends string>(name: TName | undefined, source: NodeRef<TSource>, columns: TColumns, suffix: TSuffix) => InferConstraintName<TName, NodeRef<TSource>, TColumns, TSuffix>;
|
|
23
|
-
export type AnyCheckConstraintDefinition = CheckConstraintDefinition<
|
|
24
|
-
export type AnyUniqueConstraintDefinition = UniqueConstraintDefinition<
|
|
25
|
-
export type AnyPrimaryKeyConstraintDefinition = PrimaryKeyConstraintDefinition<
|
|
23
|
+
export type AnyCheckConstraintDefinition = CheckConstraintDefinition<string>;
|
|
24
|
+
export type AnyUniqueConstraintDefinition = UniqueConstraintDefinition<string, any>;
|
|
25
|
+
export type AnyPrimaryKeyConstraintDefinition = PrimaryKeyConstraintDefinition<string, any>;
|
|
26
26
|
export type AnyConstraintDefinition = AnyCheckConstraintDefinition | AnyUniqueConstraintDefinition | AnyPrimaryKeyConstraintDefinition;
|
|
27
27
|
export declare class CheckConstraintDefinition<TName extends string> extends DefinitionNode<TName, CheckConstraintConfig> {
|
|
28
28
|
readonly kind: "CHECK_CONSTRAINT";
|
|
29
29
|
protected _expression: CheckConstraintConfig["expression"];
|
|
30
30
|
constructor(name: TName, config: CheckConstraintConfig);
|
|
31
31
|
toJSON(): {
|
|
32
|
-
kind: "CHECK_CONSTRAINT";
|
|
33
|
-
name: TName;
|
|
34
|
-
expression: string;
|
|
32
|
+
readonly kind: "CHECK_CONSTRAINT";
|
|
33
|
+
readonly name: TName;
|
|
34
|
+
readonly expression: string;
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
export declare class UniqueConstraintDefinition<TName extends string, TTable extends AnyTableDefinition> extends DefinitionNode<TName, UniqueConstraintConfig<TTable>> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/definition/constraint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAQ,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,KAAK,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAE9C,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,CAAC,SAAS;IAC7D,MAAM,CAAC,SAAS,SAAS;IACzB,GAAG,MAAM,CAAC,SAAS,SAAS,EAAE;CAC/B,GACG,CAAC,SAAS,EAAE,GACV,CAAC,CAAC,MAAM,CAAC,GACT,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,GACtC,EAAE,CAAC;AAEP,MAAM,MAAM,mBAAmB,CAC7B,KAAK,SAAS,MAAM,GAAG,SAAS,EAChC,OAAO,SAAS,OAAO,CAAC,cAAc,CAAC,EACvC,QAAQ,SAAS,SAAS,EAAE,EAC5B,OAAO,SAAS,MAAM,IACpB,KAAK,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/definition/constraint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/definition/constraint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAW,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/definition/constraint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,51 @@
|
|
|
1
|
-
import { SQLNode } from "../sql/nodes.js";
|
|
2
|
-
import { HasDefault, NotNull,
|
|
3
|
-
import { ColumnCodec, DefinitionNode } from "./base.js";
|
|
1
|
+
import { SQLNode, SQLQuery } from "../sql/nodes.js";
|
|
2
|
+
import { HasDefault, NotNull, WithDomain, ValueType } from "../utils/index.js";
|
|
3
|
+
import { ColumnCodec, DefinitionNode, NodeRef } from "./base.js";
|
|
4
|
+
import { ColumnConfig, ColumnDefinition } from "./column.js";
|
|
4
5
|
import { AnyCheckConstraintDefinition } from "./constraint.js";
|
|
5
|
-
|
|
6
|
+
import { AnyNamespaceDefinition } from "./namespace.js";
|
|
7
|
+
export interface DomainConfig<TValueType = unknown, TRawType = unknown, TNamespace extends AnyNamespaceDefinition = AnyNamespaceDefinition> {
|
|
8
|
+
namespace?: NodeRef<TNamespace>;
|
|
6
9
|
valueType: TValueType;
|
|
7
10
|
rawType: TRawType;
|
|
8
11
|
dataType: string;
|
|
9
12
|
notNull: boolean;
|
|
13
|
+
defaultValue?: SQLNode;
|
|
10
14
|
codec: ColumnCodec<TRawType, TValueType>;
|
|
11
15
|
}
|
|
12
|
-
export type AnyDomainDefinition = DomainDefinition<any, any>;
|
|
13
|
-
export declare class DomainDefinition<TName extends string,
|
|
16
|
+
export type AnyDomainDefinition = DomainDefinition<string, any, any, any>;
|
|
17
|
+
export declare class DomainDefinition<TName extends string, TValueType, TRawType, TNamespace extends AnyNamespaceDefinition> extends DefinitionNode<TName, DomainConfig<TValueType, TRawType, TNamespace>> {
|
|
14
18
|
readonly kind: "DOMAIN";
|
|
15
|
-
readonly __type:
|
|
16
|
-
protected
|
|
17
|
-
protected
|
|
18
|
-
protected
|
|
19
|
+
readonly __type: DomainConfig<TValueType, TRawType, TNamespace>;
|
|
20
|
+
protected _namespace?: NodeRef<TNamespace>;
|
|
21
|
+
protected _dataType: DomainConfig<TValueType, TRawType>["dataType"];
|
|
22
|
+
protected _notNull: DomainConfig<TValueType, TRawType>["notNull"];
|
|
23
|
+
protected _defaultValue?: DomainConfig<TValueType, TRawType>["defaultValue"];
|
|
19
24
|
protected _check?: AnyCheckConstraintDefinition;
|
|
20
25
|
protected _codec: ColumnCodec<this["__type"]["rawType"], this["__type"]["valueType"]>;
|
|
21
|
-
constructor(name: TName, config
|
|
26
|
+
constructor(name: TName, config?: Partial<DomainConfig<TValueType, TRawType, TNamespace>>);
|
|
22
27
|
notNull(): NotNull<this>;
|
|
23
28
|
default(value: this["__type"]["valueType"]): HasDefault<this>;
|
|
24
|
-
check<T extends string>(cb: (value: SQLNode) =>
|
|
25
|
-
$type<T>():
|
|
29
|
+
check<T extends string>(cb: (value: SQLNode) => SQLQuery, name?: T): this;
|
|
30
|
+
$type<T>(): ValueType<this, T>;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new column with the the domain as its data type. The column inherits the properties of the domain, such as `NOT NULL` and `DEFAULT` values.
|
|
33
|
+
*
|
|
34
|
+
* @param name The name of the column.
|
|
35
|
+
* @returns A new column definition with the domain applied.
|
|
36
|
+
*/
|
|
37
|
+
column<TColumnName extends string>(name: TColumnName): WithDomain<ColumnDefinition<TColumnName, ColumnConfig<this["__type"]["valueType"], this["__type"]["rawType"]>>, this>;
|
|
26
38
|
toJSON(): {
|
|
27
39
|
readonly kind: "DOMAIN";
|
|
28
40
|
readonly name: TName;
|
|
29
|
-
readonly
|
|
30
|
-
readonly
|
|
41
|
+
readonly namespace: string;
|
|
42
|
+
readonly dataType: string;
|
|
43
|
+
readonly notNull: boolean;
|
|
31
44
|
readonly defaultValue: string | undefined;
|
|
32
45
|
readonly check: {
|
|
33
|
-
kind: "CHECK_CONSTRAINT";
|
|
34
|
-
name:
|
|
35
|
-
expression: string;
|
|
46
|
+
readonly kind: "CHECK_CONSTRAINT";
|
|
47
|
+
readonly name: string;
|
|
48
|
+
readonly expression: string;
|
|
36
49
|
} | undefined;
|
|
37
50
|
};
|
|
38
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/definition/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/definition/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,QAAQ,EAAU,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAgB,cAAc,EAAQ,OAAO,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAA6B,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,WAAW,YAAY,CAC3B,UAAU,GAAG,OAAO,EACpB,QAAQ,GAAG,OAAO,EAClB,UAAU,SAAS,sBAAsB,GAAG,sBAAsB;IAElE,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAC1C;AAGD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,qBAAa,gBAAgB,CAC3B,KAAK,SAAS,MAAM,EACpB,UAAU,EACV,QAAQ,EACR,UAAU,SAAS,sBAAsB,CACzC,SAAQ,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7E,QAAQ,CAAC,IAAI,WAAe;IAE5B,SAAiB,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAExE,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAClE,SAAS,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC;IAC7E,SAAS,CAAC,MAAM,CAAC,EAAE,4BAA4B,CAAC;IAEhD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBAE1E,IAAI,EAAE,KAAK,EAAE,MAAM,GAAE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAM;IAYtF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;IAK7D,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IASzE,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAIrC;;;;;OAKG;IAEI,MAAM,CAAC,WAAW,SAAS,MAAM,EACtC,IAAI,EAAE,WAAW,GAChB,UAAU,CACX,gBAAgB,CACd,WAAW,EACX,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CACrE,EACD,IAAI,CACL;IAgBD,MAAM;;;;;;;;;;;;;CAaP"}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import { SQLParam, SQLQuery, SQLRaw } from "../sql/nodes.js";
|
|
2
|
-
import { defaultCodec, DefinitionNode, Kind } from "./base.js";
|
|
2
|
+
import { defaultCodec, DefinitionNode, Kind, NodeRef } from "./base.js";
|
|
3
|
+
import { ColumnDefinition } from "./column.js";
|
|
3
4
|
import { CheckConstraintDefinition } from "./constraint.js";
|
|
4
5
|
export class DomainDefinition extends DefinitionNode {
|
|
5
6
|
kind = Kind.DOMAIN;
|
|
7
|
+
_namespace;
|
|
6
8
|
_dataType;
|
|
7
9
|
_notNull;
|
|
8
10
|
_defaultValue;
|
|
9
11
|
_check;
|
|
10
12
|
_codec;
|
|
11
|
-
constructor(name, config) {
|
|
13
|
+
constructor(name, config = {}) {
|
|
12
14
|
super(name);
|
|
13
15
|
this._dataType = config.dataType ?? "text";
|
|
14
16
|
this._notNull = config.notNull ?? false;
|
|
15
|
-
this.
|
|
17
|
+
this._defaultValue = config.defaultValue;
|
|
18
|
+
this._namespace = config.namespace;
|
|
19
|
+
this._codec =
|
|
20
|
+
config.codec ??
|
|
21
|
+
defaultCodec;
|
|
16
22
|
}
|
|
17
23
|
notNull() {
|
|
18
24
|
this._notNull = true;
|
|
@@ -23,7 +29,7 @@ export class DomainDefinition extends DefinitionNode {
|
|
|
23
29
|
return this;
|
|
24
30
|
}
|
|
25
31
|
check(cb, name) {
|
|
26
|
-
const expression =
|
|
32
|
+
const expression = cb(new SQLRaw("VALUE"));
|
|
27
33
|
this._check = new CheckConstraintDefinition(name ?? `${this.name}_check`, {
|
|
28
34
|
expression,
|
|
29
35
|
});
|
|
@@ -32,10 +38,26 @@ export class DomainDefinition extends DefinitionNode {
|
|
|
32
38
|
$type() {
|
|
33
39
|
return this;
|
|
34
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new column with the the domain as its data type. The column inherits the properties of the domain, such as `NOT NULL` and `DEFAULT` values.
|
|
43
|
+
*
|
|
44
|
+
* @param name The name of the column.
|
|
45
|
+
* @returns A new column definition with the domain applied.
|
|
46
|
+
*/
|
|
47
|
+
column(name) {
|
|
48
|
+
return new ColumnDefinition(name, {
|
|
49
|
+
dataType: this.name,
|
|
50
|
+
notNull: this._notNull,
|
|
51
|
+
defaultValue: this._defaultValue,
|
|
52
|
+
codec: this._codec,
|
|
53
|
+
domain: new NodeRef(this),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
35
56
|
toJSON() {
|
|
36
57
|
return {
|
|
37
58
|
kind: this.kind,
|
|
38
59
|
name: this.name,
|
|
60
|
+
namespace: this._namespace?.name ?? "public",
|
|
39
61
|
dataType: this._dataType,
|
|
40
62
|
notNull: this._notNull,
|
|
41
63
|
defaultValue: this._defaultValue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/definition/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAe,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/definition/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAe,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAgC,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAoB1F,MAAM,OAAO,gBAKX,SAAQ,cAAqE;IACpE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAIlB,UAAU,CAAuB;IACjC,SAAS,CAAiD;IAC1D,QAAQ,CAAgD;IACxD,aAAa,CAAsD;IACnE,MAAM,CAAgC;IAEtC,MAAM,CAAsE;IAEtF,YAAY,IAAW,EAAE,SAAkE,EAAE;QAC3F,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM;YACT,MAAM,CAAC,KAAK;gBACX,YAAoF,CAAC;IAC1F,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAqB,CAAC;IAC/B,CAAC;IAEM,OAAO,CAAC,KAAkC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,IAAwB,CAAC;IAClC,CAAC;IAEM,KAAK,CAAmB,EAAgC,EAAE,IAAQ;QACvE,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAyB,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,QAAQ,EAAE;YACxE,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK;QACV,OAAO,IAA0B,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IAEI,MAAM,CACX,IAAiB;QAQjB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,MAAM,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;SAC1B,CAMA,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,QAAQ;YAC5C,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,YAAY,EAAE,IAAI,CAAC,aAAa;gBAC9B,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;gBACvE,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;SACpB,CAAC;IACb,CAAC;CACF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { DefinitionNode, NodeRef, Kind, Relation, defaultCodec, type NodeKind, type RelationType, type ColumnCodec, type DefinitionSchema, } from "./base.js";
|
|
2
|
-
export { ColumnDefinition, type ColumnConfig, type AnyColumnDefinition, type UpdateGuard, } from "./column.js";
|
|
2
|
+
export { ColumnDefinition, type ColumnConfig, type AnyColumnDefinition, type UpdateGuard, type ColumnGeneratedConfig, type ColumnGeneratedType, type ColumnIdentityConfig, } from "./column.js";
|
|
3
3
|
export { DomainDefinition, type DomainConfig, type AnyDomainDefinition } from "./domain.js";
|
|
4
4
|
export { IndexDefinition, IndexColumnDefinition, type IndexConfig, type AnyIndexDefinition, type ColumnConfigRefs, type ColumnConfigType, } from "./indexes.js";
|
|
5
5
|
export { NamespaceDefinition, type AnyNamespaceDefinition } from "./namespace.js";
|
|
6
|
-
export { SequenceDefinition } from "./sequence.js";
|
|
6
|
+
export { SequenceDefinition, type SequenceConfig, type AnySequenceDefinition } from "./sequence.js";
|
|
7
7
|
export { TableDefinition, type TableConfig, type AnyTableDefinition, type ColumnRefs, } from "./table.js";
|
|
8
8
|
export { ViewDefinition } from "./view.js";
|
|
9
9
|
export { CheckConstraintDefinition, PrimaryKeyConstraintDefinition, UniqueConstraintDefinition, type AnyConstraintDefinition, type AnyCheckConstraintDefinition, type AnyUniqueConstraintDefinition, type AnyPrimaryKeyConstraintDefinition, type CheckConstraintConfig, type UniqueConstraintConfig, type PrimaryKeyConstraintConfig, } from "./constraint.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,GAKb,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,GAKb,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,GAOjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAA+C,MAAM,aAAa,CAAC;AAC5F,OAAO,EACL,eAAe,EACf,qBAAqB,GAKtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAA+B,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAmD,MAAM,eAAe,CAAC;AACpG,OAAO,EACL,eAAe,GAIhB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,GAQ3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,GAMpB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { WithNamespace } from "../utils/index.js";
|
|
2
1
|
import { DefinitionNode } from "./base.js";
|
|
3
2
|
import { AnyColumnDefinition } from "./column.js";
|
|
3
|
+
import { DomainDefinition } from "./domain.js";
|
|
4
|
+
import { SequenceDefinition } from "./sequence.js";
|
|
4
5
|
import { TableDefinition } from "./table.js";
|
|
5
6
|
export type AnyNamespaceDefinition = NamespaceDefinition<any>;
|
|
6
7
|
export declare class NamespaceDefinition<TName extends string> extends DefinitionNode<TName> {
|
|
7
8
|
readonly kind: "SCHEMA";
|
|
8
|
-
table<TName extends string, TColumns extends Record<string, AnyColumnDefinition>>(name: TName, columns: TColumns):
|
|
9
|
+
table<TName extends string, TColumns extends Record<string, AnyColumnDefinition>>(name: TName, columns: TColumns): TableDefinition<TName, TColumns, this>;
|
|
10
|
+
domain<TName extends string>(name: TName): DomainDefinition<TName, unknown, unknown, this>;
|
|
11
|
+
sequence<TName extends string>(name: TName): SequenceDefinition<TName, this>;
|
|
9
12
|
toJSON(): {
|
|
10
13
|
readonly kind: "SCHEMA";
|
|
11
14
|
readonly name: TName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/definition/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/definition/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAE9D,qBAAa,mBAAmB,CAAC,KAAK,SAAS,MAAM,CAAE,SAAQ,cAAc,CAAC,KAAK,CAAC;IAClF,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,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC;IAIlC,MAAM,CAAC,KAAK,SAAS,MAAM,EAChC,IAAI,EAAE,KAAK,GACV,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;IAI3C,QAAQ,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC;IAI5E,MAAM;;;;CAMd"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
import { DefinitionNode, Kind } from "./base.js";
|
|
1
|
+
import { DefinitionNode, Kind, NodeRef } from "./base.js";
|
|
2
|
+
import { DomainDefinition } from "./domain.js";
|
|
3
|
+
import { SequenceDefinition } from "./sequence.js";
|
|
2
4
|
import { TableDefinition } from "./table.js";
|
|
3
5
|
export class NamespaceDefinition extends DefinitionNode {
|
|
4
6
|
kind = Kind.SCHEMA;
|
|
5
7
|
table(name, columns) {
|
|
6
|
-
return new TableDefinition(name, { columns,
|
|
8
|
+
return new TableDefinition(name, { columns, namespace: new NodeRef(this) });
|
|
9
|
+
}
|
|
10
|
+
domain(name) {
|
|
11
|
+
return new DomainDefinition(name, { namespace: new NodeRef(this) });
|
|
12
|
+
}
|
|
13
|
+
sequence(name) {
|
|
14
|
+
return new SequenceDefinition(name, { namespace: new NodeRef(this) });
|
|
7
15
|
}
|
|
8
16
|
toJSON() {
|
|
9
17
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/definition/namespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/definition/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7C,MAAM,OAAO,mBAA0C,SAAQ,cAAqB;IAClE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAE5B,KAAK,CACV,IAAW,EACX,OAAiB;QAEjB,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEM,MAAM,CACX,IAAW;QAEX,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAEM,QAAQ,CAAuB,IAAW;QAC/C,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SACP,CAAC;IACb,CAAC;CACF"}
|