@hedystia/db 2.0.0 → 2.0.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/dist/_virtual/_rolldown/runtime.cjs +13 -0
- package/dist/_virtual/_rolldown/runtime.mjs +17 -0
- package/dist/cache/manager.cjs +137 -0
- package/dist/cache/manager.cjs.map +1 -0
- package/dist/cache/manager.d.cts +72 -0
- package/dist/cache/manager.d.mts +72 -0
- package/dist/cache/manager.mjs +140 -0
- package/dist/cache/manager.mjs.map +1 -0
- package/dist/cache/memory-store.cjs +122 -0
- package/dist/cache/memory-store.cjs.map +1 -0
- package/dist/cache/memory-store.mjs +122 -0
- package/dist/cache/memory-store.mjs.map +1 -0
- package/dist/cli/commands/migration.cjs +22 -0
- package/dist/cli/commands/migration.cjs.map +1 -0
- package/dist/cli/commands/migration.mjs +32 -0
- package/dist/cli/commands/migration.mjs.map +1 -0
- package/dist/cli/commands/schema.cjs +21 -0
- package/dist/cli/commands/schema.cjs.map +1 -0
- package/dist/cli/commands/schema.mjs +30 -0
- package/dist/cli/commands/schema.mjs.map +1 -0
- package/dist/cli.cjs +50 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +57 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/constants.cjs +16 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.mjs +16 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/core/database.cjs +158 -0
- package/dist/core/database.cjs.map +1 -0
- package/dist/core/database.d.cts +74 -0
- package/dist/core/database.d.mts +74 -0
- package/dist/core/database.mjs +159 -0
- package/dist/core/database.mjs.map +1 -0
- package/dist/core/repository.cjs +362 -0
- package/dist/core/repository.cjs.map +1 -0
- package/dist/core/repository.d.cts +100 -0
- package/dist/core/repository.d.mts +100 -0
- package/dist/core/repository.mjs +362 -0
- package/dist/core/repository.mjs.map +1 -0
- package/dist/drivers/driver.cjs +11 -0
- package/dist/drivers/driver.cjs.map +1 -0
- package/dist/drivers/driver.mjs +11 -0
- package/dist/drivers/driver.mjs.map +1 -0
- package/dist/drivers/file.cjs +336 -0
- package/dist/drivers/file.cjs.map +1 -0
- package/dist/drivers/file.mjs +337 -0
- package/dist/drivers/file.mjs.map +1 -0
- package/dist/drivers/index.cjs +28 -0
- package/dist/drivers/index.cjs.map +1 -0
- package/dist/drivers/index.d.cts +14 -0
- package/dist/drivers/index.d.mts +14 -0
- package/dist/drivers/index.mjs +28 -0
- package/dist/drivers/index.mjs.map +1 -0
- package/dist/drivers/mysql.cjs +272 -0
- package/dist/drivers/mysql.cjs.map +1 -0
- package/dist/drivers/mysql.mjs +272 -0
- package/dist/drivers/mysql.mjs.map +1 -0
- package/dist/drivers/sql-compiler.cjs +284 -0
- package/dist/drivers/sql-compiler.cjs.map +1 -0
- package/dist/drivers/sql-compiler.d.cts +66 -0
- package/dist/drivers/sql-compiler.d.mts +66 -0
- package/dist/drivers/sql-compiler.mjs +276 -0
- package/dist/drivers/sql-compiler.mjs.map +1 -0
- package/dist/drivers/sqlite.cjs +262 -0
- package/dist/drivers/sqlite.cjs.map +1 -0
- package/dist/drivers/sqlite.mjs +262 -0
- package/dist/drivers/sqlite.mjs.map +1 -0
- package/dist/errors.cjs +74 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +46 -0
- package/dist/errors.d.mts +46 -0
- package/dist/errors.mjs +68 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/index.cjs +55 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +15 -0
- package/dist/index.d.mts +15 -0
- package/dist/index.mjs +21 -0
- package/dist/index.mjs.map +1 -0
- package/dist/migrations/definition.cjs +20 -0
- package/dist/migrations/definition.cjs.map +1 -0
- package/dist/migrations/definition.d.cts +18 -0
- package/dist/migrations/definition.d.mts +18 -0
- package/dist/migrations/definition.mjs +23 -0
- package/dist/migrations/definition.mjs.map +1 -0
- package/dist/migrations/index.mjs +12 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/migrations/templates.cjs +39 -0
- package/dist/migrations/templates.cjs.map +1 -0
- package/dist/migrations/templates.d.cts +16 -0
- package/dist/migrations/templates.d.mts +16 -0
- package/dist/migrations/templates.mjs +41 -0
- package/dist/migrations/templates.mjs.map +1 -0
- package/dist/schema/column.cjs +129 -0
- package/dist/schema/column.cjs.map +1 -0
- package/dist/schema/column.d.cts +96 -0
- package/dist/schema/column.d.mts +96 -0
- package/dist/schema/column.mjs +129 -0
- package/dist/schema/column.mjs.map +1 -0
- package/dist/schema/columns/index.cjs +110 -0
- package/dist/schema/columns/index.cjs.map +1 -0
- package/dist/schema/columns/index.d.cts +91 -0
- package/dist/schema/columns/index.d.mts +91 -0
- package/dist/schema/columns/index.mjs +104 -0
- package/dist/schema/columns/index.mjs.map +1 -0
- package/dist/schema/registry.cjs +101 -0
- package/dist/schema/registry.cjs.map +1 -0
- package/dist/schema/registry.d.cts +52 -0
- package/dist/schema/registry.d.mts +52 -0
- package/dist/schema/registry.mjs +101 -0
- package/dist/schema/registry.mjs.map +1 -0
- package/dist/schema/table.cjs +36 -0
- package/dist/schema/table.cjs.map +1 -0
- package/dist/schema/table.d.cts +17 -0
- package/dist/schema/table.d.mts +17 -0
- package/dist/schema/table.mjs +36 -0
- package/dist/schema/table.mjs.map +1 -0
- package/dist/sync/synchronizer.cjs +43 -0
- package/dist/sync/synchronizer.cjs.map +1 -0
- package/dist/sync/synchronizer.d.cts +22 -0
- package/dist/sync/synchronizer.d.mts +22 -0
- package/dist/sync/synchronizer.mjs +43 -0
- package/dist/sync/synchronizer.mjs.map +1 -0
- package/dist/types.d.cts +227 -0
- package/dist/types.d.mts +227 -0
- package/dist/utils/fs.cjs +24 -0
- package/dist/utils/fs.cjs.map +1 -0
- package/dist/utils/fs.mjs +26 -0
- package/dist/utils/fs.mjs.map +1 -0
- package/dist/utils/index.mjs +14 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/naming.cjs +13 -0
- package/dist/utils/naming.cjs.map +1 -0
- package/dist/utils/naming.mjs +16 -0
- package/dist/utils/naming.mjs.map +1 -0
- package/dist/utils/stable-stringify.cjs +19 -0
- package/dist/utils/stable-stringify.cjs.map +1 -0
- package/dist/utils/stable-stringify.mjs +22 -0
- package/dist/utils/stable-stringify.mjs.map +1 -0
- package/package.json +64 -27
- package/readme.md +86 -106
- package/index.d.ts +0 -65
- package/index.js +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
//#region src/schema/column.ts
|
|
2
|
+
/**
|
|
3
|
+
* Base column builder with chainable methods for defining column properties
|
|
4
|
+
* @template T - The TypeScript type this column resolves to
|
|
5
|
+
* @template TN - The table name this column belongs to (set by table())
|
|
6
|
+
* @template CN - The column name (set by table())
|
|
7
|
+
* @template Ref - The deferred reference metadata (set by references())
|
|
8
|
+
*/
|
|
9
|
+
var ColumnBuilder = class {
|
|
10
|
+
_type;
|
|
11
|
+
_primaryKey = false;
|
|
12
|
+
_autoIncrement = false;
|
|
13
|
+
_notNull = false;
|
|
14
|
+
_unique = false;
|
|
15
|
+
_defaultValue = void 0;
|
|
16
|
+
_length;
|
|
17
|
+
_precision;
|
|
18
|
+
_scale;
|
|
19
|
+
_references;
|
|
20
|
+
constructor(type, length, precision, scale) {
|
|
21
|
+
this._type = type;
|
|
22
|
+
this._length = length;
|
|
23
|
+
this._precision = precision;
|
|
24
|
+
this._scale = scale;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Mark this column as a primary key
|
|
28
|
+
* @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
|
|
29
|
+
*/
|
|
30
|
+
primaryKey() {
|
|
31
|
+
this._primaryKey = true;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Mark this column as auto-incrementing
|
|
36
|
+
* @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
|
|
37
|
+
*/
|
|
38
|
+
autoIncrement() {
|
|
39
|
+
this._autoIncrement = true;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Mark this column as NOT NULL
|
|
44
|
+
* @returns {ColumnBuilder<NonNullable<T>, TN, CN, Ref>} The column builder for chaining
|
|
45
|
+
*/
|
|
46
|
+
notNull() {
|
|
47
|
+
this._notNull = true;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Mark this column as nullable
|
|
52
|
+
* @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining
|
|
53
|
+
*/
|
|
54
|
+
nullable() {
|
|
55
|
+
this._notNull = false;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Set a default value for this column
|
|
60
|
+
* @param {T} value - The default value
|
|
61
|
+
* @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
|
|
62
|
+
*/
|
|
63
|
+
default(value) {
|
|
64
|
+
this._defaultValue = value;
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Mark this column as having a unique constraint
|
|
69
|
+
* @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
|
|
70
|
+
*/
|
|
71
|
+
unique() {
|
|
72
|
+
this._unique = true;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Add a foreign key reference to another table's column
|
|
77
|
+
* @param {() => ColumnBuilder<any>} ref - A function returning the referenced column
|
|
78
|
+
* @param {object} [options] - Reference options
|
|
79
|
+
* @param {ReferenceAction} [options.onDelete] - Action on delete
|
|
80
|
+
* @param {ReferenceAction} [options.onUpdate] - Action on update
|
|
81
|
+
* @param {string} [options.relationName] - Name for the relation
|
|
82
|
+
* @returns {ColumnBuilder<T>} The column builder for chaining
|
|
83
|
+
*/
|
|
84
|
+
references(ref, options) {
|
|
85
|
+
this._references = {
|
|
86
|
+
resolve: () => {
|
|
87
|
+
const col = ref();
|
|
88
|
+
return {
|
|
89
|
+
table: col.__tableName ?? "",
|
|
90
|
+
column: col.__columnName ?? ""
|
|
91
|
+
};
|
|
92
|
+
},
|
|
93
|
+
onDelete: options?.onDelete,
|
|
94
|
+
onUpdate: options?.onUpdate,
|
|
95
|
+
relationName: options?.relationName
|
|
96
|
+
};
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build the column metadata from the builder configuration
|
|
101
|
+
* @param {string} name - The column name
|
|
102
|
+
* @returns {ColumnMetadata} The built column metadata
|
|
103
|
+
*/
|
|
104
|
+
__build(name) {
|
|
105
|
+
return {
|
|
106
|
+
name,
|
|
107
|
+
type: this._type,
|
|
108
|
+
primaryKey: this._primaryKey,
|
|
109
|
+
autoIncrement: this._autoIncrement,
|
|
110
|
+
notNull: this._notNull || this._primaryKey,
|
|
111
|
+
unique: this._unique || this._primaryKey,
|
|
112
|
+
defaultValue: this._defaultValue,
|
|
113
|
+
length: this._length,
|
|
114
|
+
precision: this._precision,
|
|
115
|
+
scale: this._scale
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get deferred reference data if this column has a foreign key reference
|
|
120
|
+
* @returns {object | null} The deferred reference data or null
|
|
121
|
+
*/
|
|
122
|
+
__getDeferredRef() {
|
|
123
|
+
return this._references ?? null;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
//#endregion
|
|
127
|
+
export { ColumnBuilder };
|
|
128
|
+
|
|
129
|
+
//# sourceMappingURL=column.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.mjs","names":[],"sources":["../../src/schema/column.ts"],"sourcesContent":["import type {\n ColumnDataType,\n ColumnMetadata,\n DeferredRefMeta,\n ReferenceAction,\n} from \"../types\";\n\n/**\n * Base column builder with chainable methods for defining column properties\n * @template T - The TypeScript type this column resolves to\n * @template TN - The table name this column belongs to (set by table())\n * @template CN - The column name (set by table())\n * @template Ref - The deferred reference metadata (set by references())\n */\nexport class ColumnBuilder<\n T = unknown,\n TN extends string = string,\n CN extends string = string,\n Ref extends DeferredRefMeta = never,\n> {\n declare readonly __type: T;\n declare readonly __tableName: TN;\n declare readonly __columnName: CN;\n declare readonly __ref: Ref;\n private _type: ColumnDataType;\n private _primaryKey = false;\n private _autoIncrement = false;\n private _notNull = false;\n private _unique = false;\n private _defaultValue: unknown = undefined;\n private _length?: number;\n private _precision?: number;\n private _scale?: number;\n private _references?: {\n resolve: () => { table: string; column: string };\n onDelete?: ReferenceAction;\n onUpdate?: ReferenceAction;\n relationName?: string;\n };\n\n constructor(type: ColumnDataType, length?: number, precision?: number, scale?: number) {\n this._type = type;\n this._length = length;\n this._precision = precision;\n this._scale = scale;\n }\n\n /**\n * Mark this column as a primary key\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n primaryKey(): ColumnBuilder<T, TN, CN, Ref> {\n this._primaryKey = true;\n return this;\n }\n\n /**\n * Mark this column as auto-incrementing\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n autoIncrement(): ColumnBuilder<T, TN, CN, Ref> {\n this._autoIncrement = true;\n return this;\n }\n\n /**\n * Mark this column as NOT NULL\n * @returns {ColumnBuilder<NonNullable<T>, TN, CN, Ref>} The column builder for chaining\n */\n notNull(): ColumnBuilder<NonNullable<T>, TN, CN, Ref> {\n this._notNull = true;\n return this as unknown as ColumnBuilder<NonNullable<T>, TN, CN, Ref>;\n }\n\n /**\n * Mark this column as nullable\n * @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining\n */\n nullable(): ColumnBuilder<T | null, TN, CN, Ref> {\n this._notNull = false;\n return this as unknown as ColumnBuilder<T | null, TN, CN, Ref>;\n }\n\n /**\n * Set a default value for this column\n * @param {T} value - The default value\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n default(value: T): ColumnBuilder<T, TN, CN, Ref> {\n this._defaultValue = value;\n return this;\n }\n\n /**\n * Mark this column as having a unique constraint\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n unique(): ColumnBuilder<T, TN, CN, Ref> {\n this._unique = true;\n return this;\n }\n\n /**\n * Add a foreign key reference to another table's column\n * @param {() => ColumnBuilder<any>} ref - A function returning the referenced column\n * @param {object} [options] - Reference options\n * @param {ReferenceAction} [options.onDelete] - Action on delete\n * @param {ReferenceAction} [options.onUpdate] - Action on update\n * @param {string} [options.relationName] - Name for the relation\n * @returns {ColumnBuilder<T>} The column builder for chaining\n */\n references<\n R extends ColumnBuilder<any, string, string, any>,\n O extends {\n onDelete?: ReferenceAction;\n onUpdate?: ReferenceAction;\n relationName?: string;\n } = never,\n >(\n ref: () => R,\n options?: O,\n ): ColumnBuilder<\n T,\n TN,\n CN,\n DeferredRefMeta<\n CN,\n R[\"__tableName\"],\n R[\"__columnName\"],\n O extends { relationName: infer N extends string } ? N : undefined\n >\n > {\n this._references = {\n resolve: () => {\n const col = ref();\n return {\n table: (col as any).__tableName ?? \"\",\n column: (col as any).__columnName ?? \"\",\n };\n },\n onDelete: options?.onDelete,\n onUpdate: options?.onUpdate,\n relationName: options?.relationName,\n };\n return this as any;\n }\n\n /**\n * Build the column metadata from the builder configuration\n * @param {string} name - The column name\n * @returns {ColumnMetadata} The built column metadata\n */\n __build(name: string): ColumnMetadata {\n return {\n name,\n type: this._type,\n primaryKey: this._primaryKey,\n autoIncrement: this._autoIncrement,\n notNull: this._notNull || this._primaryKey,\n unique: this._unique || this._primaryKey,\n defaultValue: this._defaultValue,\n length: this._length,\n precision: this._precision,\n scale: this._scale,\n };\n }\n\n /**\n * Get deferred reference data if this column has a foreign key reference\n * @returns {object | null} The deferred reference data or null\n */\n __getDeferredRef(): {\n resolve: () => { table: string; column: string };\n onDelete?: ReferenceAction;\n onUpdate?: ReferenceAction;\n relationName?: string;\n } | null {\n return this._references ?? null;\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAa,gBAAb,MAKE;CAKA;CACA,cAAsB;CACtB,iBAAyB;CACzB,WAAmB;CACnB,UAAkB;CAClB,gBAAiC,KAAA;CACjC;CACA;CACA;CACA;CAOA,YAAY,MAAsB,QAAiB,WAAoB,OAAgB;AACrF,OAAK,QAAQ;AACb,OAAK,UAAU;AACf,OAAK,aAAa;AAClB,OAAK,SAAS;;;;;;CAOhB,aAA4C;AAC1C,OAAK,cAAc;AACnB,SAAO;;;;;;CAOT,gBAA+C;AAC7C,OAAK,iBAAiB;AACtB,SAAO;;;;;;CAOT,UAAsD;AACpD,OAAK,WAAW;AAChB,SAAO;;;;;;CAOT,WAAiD;AAC/C,OAAK,WAAW;AAChB,SAAO;;;;;;;CAQT,QAAQ,OAAyC;AAC/C,OAAK,gBAAgB;AACrB,SAAO;;;;;;CAOT,SAAwC;AACtC,OAAK,UAAU;AACf,SAAO;;;;;;;;;;;CAYT,WAQE,KACA,SAWA;AACA,OAAK,cAAc;GACjB,eAAe;IACb,MAAM,MAAM,KAAK;AACjB,WAAO;KACL,OAAQ,IAAY,eAAe;KACnC,QAAS,IAAY,gBAAgB;KACtC;;GAEH,UAAU,SAAS;GACnB,UAAU,SAAS;GACnB,cAAc,SAAS;GACxB;AACD,SAAO;;;;;;;CAQT,QAAQ,MAA8B;AACpC,SAAO;GACL;GACA,MAAM,KAAK;GACX,YAAY,KAAK;GACjB,eAAe,KAAK;GACpB,SAAS,KAAK,YAAY,KAAK;GAC/B,QAAQ,KAAK,WAAW,KAAK;GAC7B,cAAc,KAAK;GACnB,QAAQ,KAAK;GACb,WAAW,KAAK;GAChB,OAAO,KAAK;GACb;;;;;;CAOH,mBAKS;AACP,SAAO,KAAK,eAAe"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_column = require("../column.cjs");
|
|
3
|
+
//#region src/schema/columns/index.ts
|
|
4
|
+
var columns_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
5
|
+
bigint: () => bigint,
|
|
6
|
+
blob: () => blob,
|
|
7
|
+
boolean: () => boolean,
|
|
8
|
+
char: () => char,
|
|
9
|
+
d: () => d,
|
|
10
|
+
datetime: () => datetime,
|
|
11
|
+
decimal: () => decimal,
|
|
12
|
+
float: () => float,
|
|
13
|
+
integer: () => integer,
|
|
14
|
+
json: () => json,
|
|
15
|
+
text: () => text,
|
|
16
|
+
timestamp: () => timestamp,
|
|
17
|
+
varchar: () => varchar
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Create an INTEGER column
|
|
21
|
+
* @returns {ColumnBuilder<number>} Column builder for integer type
|
|
22
|
+
*/
|
|
23
|
+
const integer = () => new require_column.ColumnBuilder("integer");
|
|
24
|
+
/**
|
|
25
|
+
* Create a BIGINT column
|
|
26
|
+
* @returns {ColumnBuilder<number>} Column builder for bigint type
|
|
27
|
+
*/
|
|
28
|
+
const bigint = () => new require_column.ColumnBuilder("bigint");
|
|
29
|
+
/**
|
|
30
|
+
* Create a VARCHAR column with specified length
|
|
31
|
+
* @param {number} [length=255] - Maximum character length
|
|
32
|
+
* @returns {ColumnBuilder<string>} Column builder for varchar type
|
|
33
|
+
*/
|
|
34
|
+
const varchar = (length = 255) => new require_column.ColumnBuilder("varchar", length);
|
|
35
|
+
/**
|
|
36
|
+
* Create a CHAR column with specified length
|
|
37
|
+
* @param {number} [length=1] - Fixed character length
|
|
38
|
+
* @returns {ColumnBuilder<string>} Column builder for char type
|
|
39
|
+
*/
|
|
40
|
+
const char = (length = 1) => new require_column.ColumnBuilder("char", length);
|
|
41
|
+
/**
|
|
42
|
+
* Create a TEXT column
|
|
43
|
+
* @returns {ColumnBuilder<string>} Column builder for text type
|
|
44
|
+
*/
|
|
45
|
+
const text = () => new require_column.ColumnBuilder("text");
|
|
46
|
+
/**
|
|
47
|
+
* Create a BOOLEAN column
|
|
48
|
+
* @returns {ColumnBuilder<boolean>} Column builder for boolean type
|
|
49
|
+
*/
|
|
50
|
+
const boolean = () => new require_column.ColumnBuilder("boolean");
|
|
51
|
+
/**
|
|
52
|
+
* Create a JSON column
|
|
53
|
+
* @returns {ColumnBuilder<unknown>} Column builder for json type
|
|
54
|
+
*/
|
|
55
|
+
const json = () => new require_column.ColumnBuilder("json");
|
|
56
|
+
/**
|
|
57
|
+
* Create a DATETIME column
|
|
58
|
+
* @returns {ColumnBuilder<Date>} Column builder for datetime type
|
|
59
|
+
*/
|
|
60
|
+
const datetime = () => new require_column.ColumnBuilder("datetime");
|
|
61
|
+
/**
|
|
62
|
+
* Create a TIMESTAMP column
|
|
63
|
+
* @returns {ColumnBuilder<Date>} Column builder for timestamp type
|
|
64
|
+
*/
|
|
65
|
+
const timestamp = () => new require_column.ColumnBuilder("timestamp");
|
|
66
|
+
/**
|
|
67
|
+
* Create a DECIMAL column with precision and scale
|
|
68
|
+
* @param {number} [precision=10] - Total number of digits
|
|
69
|
+
* @param {number} [scale=2] - Number of decimal digits
|
|
70
|
+
* @returns {ColumnBuilder<number>} Column builder for decimal type
|
|
71
|
+
*/
|
|
72
|
+
const decimal = (precision = 10, scale = 2) => new require_column.ColumnBuilder("decimal", void 0, precision, scale);
|
|
73
|
+
/**
|
|
74
|
+
* Create a FLOAT column
|
|
75
|
+
* @returns {ColumnBuilder<number>} Column builder for float type
|
|
76
|
+
*/
|
|
77
|
+
const float = () => new require_column.ColumnBuilder("float");
|
|
78
|
+
/**
|
|
79
|
+
* Create a BLOB column
|
|
80
|
+
* @returns {ColumnBuilder<Buffer>} Column builder for blob type
|
|
81
|
+
*/
|
|
82
|
+
const blob = () => new require_column.ColumnBuilder("blob");
|
|
83
|
+
/**
|
|
84
|
+
* Column type helpers object for schema definitions
|
|
85
|
+
* @returns {typeof d} Column type helpers
|
|
86
|
+
*/
|
|
87
|
+
const d = {
|
|
88
|
+
integer,
|
|
89
|
+
bigint,
|
|
90
|
+
varchar,
|
|
91
|
+
char,
|
|
92
|
+
text,
|
|
93
|
+
boolean,
|
|
94
|
+
json,
|
|
95
|
+
datetime,
|
|
96
|
+
timestamp,
|
|
97
|
+
decimal,
|
|
98
|
+
float,
|
|
99
|
+
blob
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
Object.defineProperty(exports, "columns_exports", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function() {
|
|
105
|
+
return columns_exports;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
exports.d = d;
|
|
109
|
+
|
|
110
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["ColumnBuilder"],"sources":["../../../src/schema/columns/index.ts"],"sourcesContent":["import { ColumnBuilder } from \"../column\";\n\n/**\n * Create an INTEGER column\n * @returns {ColumnBuilder<number>} Column builder for integer type\n */\nexport const integer = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"integer\");\n\n/**\n * Create a BIGINT column\n * @returns {ColumnBuilder<number>} Column builder for bigint type\n */\nexport const bigint = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"bigint\");\n\n/**\n * Create a VARCHAR column with specified length\n * @param {number} [length=255] - Maximum character length\n * @returns {ColumnBuilder<string>} Column builder for varchar type\n */\nexport const varchar = (length = 255): ColumnBuilder<string> =>\n new ColumnBuilder<string>(\"varchar\", length);\n\n/**\n * Create a CHAR column with specified length\n * @param {number} [length=1] - Fixed character length\n * @returns {ColumnBuilder<string>} Column builder for char type\n */\nexport const char = (length = 1): ColumnBuilder<string> =>\n new ColumnBuilder<string>(\"char\", length);\n\n/**\n * Create a TEXT column\n * @returns {ColumnBuilder<string>} Column builder for text type\n */\nexport const text = (): ColumnBuilder<string> => new ColumnBuilder<string>(\"text\");\n\n/**\n * Create a BOOLEAN column\n * @returns {ColumnBuilder<boolean>} Column builder for boolean type\n */\nexport const boolean = (): ColumnBuilder<boolean> => new ColumnBuilder<boolean>(\"boolean\");\n\n/**\n * Create a JSON column\n * @returns {ColumnBuilder<unknown>} Column builder for json type\n */\nexport const json = (): ColumnBuilder<unknown> => new ColumnBuilder<unknown>(\"json\");\n\n/**\n * Create a DATETIME column\n * @returns {ColumnBuilder<Date>} Column builder for datetime type\n */\nexport const datetime = (): ColumnBuilder<Date> => new ColumnBuilder<Date>(\"datetime\");\n\n/**\n * Create a TIMESTAMP column\n * @returns {ColumnBuilder<Date>} Column builder for timestamp type\n */\nexport const timestamp = (): ColumnBuilder<Date> => new ColumnBuilder<Date>(\"timestamp\");\n\n/**\n * Create a DECIMAL column with precision and scale\n * @param {number} [precision=10] - Total number of digits\n * @param {number} [scale=2] - Number of decimal digits\n * @returns {ColumnBuilder<number>} Column builder for decimal type\n */\nexport const decimal = (precision = 10, scale = 2): ColumnBuilder<number> =>\n new ColumnBuilder<number>(\"decimal\", undefined, precision, scale);\n\n/**\n * Create a FLOAT column\n * @returns {ColumnBuilder<number>} Column builder for float type\n */\nexport const float = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"float\");\n\n/**\n * Create a BLOB column\n * @returns {ColumnBuilder<Buffer>} Column builder for blob type\n */\nexport const blob = (): ColumnBuilder<Buffer> => new ColumnBuilder<Buffer>(\"blob\");\n\n/**\n * Column type helpers object for schema definitions\n * @returns {typeof d} Column type helpers\n */\nexport const d = {\n integer,\n bigint,\n varchar,\n char,\n text,\n boolean,\n json,\n datetime,\n timestamp,\n decimal,\n float,\n blob,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAMA,MAAa,gBAAuC,IAAIA,eAAAA,cAAsB,UAAU;;;;;AAMxF,MAAa,eAAsC,IAAIA,eAAAA,cAAsB,SAAS;;;;;;AAOtF,MAAa,WAAW,SAAS,QAC/B,IAAIA,eAAAA,cAAsB,WAAW,OAAO;;;;;;AAO9C,MAAa,QAAQ,SAAS,MAC5B,IAAIA,eAAAA,cAAsB,QAAQ,OAAO;;;;;AAM3C,MAAa,aAAoC,IAAIA,eAAAA,cAAsB,OAAO;;;;;AAMlF,MAAa,gBAAwC,IAAIA,eAAAA,cAAuB,UAAU;;;;;AAM1F,MAAa,aAAqC,IAAIA,eAAAA,cAAuB,OAAO;;;;;AAMpF,MAAa,iBAAsC,IAAIA,eAAAA,cAAoB,WAAW;;;;;AAMtF,MAAa,kBAAuC,IAAIA,eAAAA,cAAoB,YAAY;;;;;;;AAQxF,MAAa,WAAW,YAAY,IAAI,QAAQ,MAC9C,IAAIA,eAAAA,cAAsB,WAAW,KAAA,GAAW,WAAW,MAAM;;;;;AAMnE,MAAa,cAAqC,IAAIA,eAAAA,cAAsB,QAAQ;;;;;AAMpF,MAAa,aAAoC,IAAIA,eAAAA,cAAsB,OAAO;;;;;AAMlF,MAAa,IAAI;CACf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ColumnBuilder } from "../column.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/schema/columns/index.d.ts
|
|
4
|
+
declare namespace index_d_exports {
|
|
5
|
+
export { bigint, blob, boolean, char, d, datetime, decimal, float, integer, json, text, timestamp, varchar };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Create an INTEGER column
|
|
9
|
+
* @returns {ColumnBuilder<number>} Column builder for integer type
|
|
10
|
+
*/
|
|
11
|
+
declare const integer: () => ColumnBuilder<number>;
|
|
12
|
+
/**
|
|
13
|
+
* Create a BIGINT column
|
|
14
|
+
* @returns {ColumnBuilder<number>} Column builder for bigint type
|
|
15
|
+
*/
|
|
16
|
+
declare const bigint: () => ColumnBuilder<number>;
|
|
17
|
+
/**
|
|
18
|
+
* Create a VARCHAR column with specified length
|
|
19
|
+
* @param {number} [length=255] - Maximum character length
|
|
20
|
+
* @returns {ColumnBuilder<string>} Column builder for varchar type
|
|
21
|
+
*/
|
|
22
|
+
declare const varchar: (length?: number) => ColumnBuilder<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Create a CHAR column with specified length
|
|
25
|
+
* @param {number} [length=1] - Fixed character length
|
|
26
|
+
* @returns {ColumnBuilder<string>} Column builder for char type
|
|
27
|
+
*/
|
|
28
|
+
declare const char: (length?: number) => ColumnBuilder<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Create a TEXT column
|
|
31
|
+
* @returns {ColumnBuilder<string>} Column builder for text type
|
|
32
|
+
*/
|
|
33
|
+
declare const text: () => ColumnBuilder<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Create a BOOLEAN column
|
|
36
|
+
* @returns {ColumnBuilder<boolean>} Column builder for boolean type
|
|
37
|
+
*/
|
|
38
|
+
declare const boolean: () => ColumnBuilder<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Create a JSON column
|
|
41
|
+
* @returns {ColumnBuilder<unknown>} Column builder for json type
|
|
42
|
+
*/
|
|
43
|
+
declare const json: () => ColumnBuilder<unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Create a DATETIME column
|
|
46
|
+
* @returns {ColumnBuilder<Date>} Column builder for datetime type
|
|
47
|
+
*/
|
|
48
|
+
declare const datetime: () => ColumnBuilder<Date>;
|
|
49
|
+
/**
|
|
50
|
+
* Create a TIMESTAMP column
|
|
51
|
+
* @returns {ColumnBuilder<Date>} Column builder for timestamp type
|
|
52
|
+
*/
|
|
53
|
+
declare const timestamp: () => ColumnBuilder<Date>;
|
|
54
|
+
/**
|
|
55
|
+
* Create a DECIMAL column with precision and scale
|
|
56
|
+
* @param {number} [precision=10] - Total number of digits
|
|
57
|
+
* @param {number} [scale=2] - Number of decimal digits
|
|
58
|
+
* @returns {ColumnBuilder<number>} Column builder for decimal type
|
|
59
|
+
*/
|
|
60
|
+
declare const decimal: (precision?: number, scale?: number) => ColumnBuilder<number>;
|
|
61
|
+
/**
|
|
62
|
+
* Create a FLOAT column
|
|
63
|
+
* @returns {ColumnBuilder<number>} Column builder for float type
|
|
64
|
+
*/
|
|
65
|
+
declare const float: () => ColumnBuilder<number>;
|
|
66
|
+
/**
|
|
67
|
+
* Create a BLOB column
|
|
68
|
+
* @returns {ColumnBuilder<Buffer>} Column builder for blob type
|
|
69
|
+
*/
|
|
70
|
+
declare const blob: () => ColumnBuilder<Buffer>;
|
|
71
|
+
/**
|
|
72
|
+
* Column type helpers object for schema definitions
|
|
73
|
+
* @returns {typeof d} Column type helpers
|
|
74
|
+
*/
|
|
75
|
+
declare const d: {
|
|
76
|
+
integer: () => ColumnBuilder<number>;
|
|
77
|
+
bigint: () => ColumnBuilder<number>;
|
|
78
|
+
varchar: (length?: number) => ColumnBuilder<string>;
|
|
79
|
+
char: (length?: number) => ColumnBuilder<string>;
|
|
80
|
+
text: () => ColumnBuilder<string>;
|
|
81
|
+
boolean: () => ColumnBuilder<boolean>;
|
|
82
|
+
json: () => ColumnBuilder<unknown>;
|
|
83
|
+
datetime: () => ColumnBuilder<Date>;
|
|
84
|
+
timestamp: () => ColumnBuilder<Date>;
|
|
85
|
+
decimal: (precision?: number, scale?: number) => ColumnBuilder<number>;
|
|
86
|
+
float: () => ColumnBuilder<number>;
|
|
87
|
+
blob: () => ColumnBuilder<Buffer>;
|
|
88
|
+
};
|
|
89
|
+
//#endregion
|
|
90
|
+
export { d, index_d_exports };
|
|
91
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ColumnBuilder } from "../column.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/schema/columns/index.d.ts
|
|
4
|
+
declare namespace index_d_exports {
|
|
5
|
+
export { bigint, blob, boolean, char, d, datetime, decimal, float, integer, json, text, timestamp, varchar };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Create an INTEGER column
|
|
9
|
+
* @returns {ColumnBuilder<number>} Column builder for integer type
|
|
10
|
+
*/
|
|
11
|
+
declare const integer: () => ColumnBuilder<number>;
|
|
12
|
+
/**
|
|
13
|
+
* Create a BIGINT column
|
|
14
|
+
* @returns {ColumnBuilder<number>} Column builder for bigint type
|
|
15
|
+
*/
|
|
16
|
+
declare const bigint: () => ColumnBuilder<number>;
|
|
17
|
+
/**
|
|
18
|
+
* Create a VARCHAR column with specified length
|
|
19
|
+
* @param {number} [length=255] - Maximum character length
|
|
20
|
+
* @returns {ColumnBuilder<string>} Column builder for varchar type
|
|
21
|
+
*/
|
|
22
|
+
declare const varchar: (length?: number) => ColumnBuilder<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Create a CHAR column with specified length
|
|
25
|
+
* @param {number} [length=1] - Fixed character length
|
|
26
|
+
* @returns {ColumnBuilder<string>} Column builder for char type
|
|
27
|
+
*/
|
|
28
|
+
declare const char: (length?: number) => ColumnBuilder<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Create a TEXT column
|
|
31
|
+
* @returns {ColumnBuilder<string>} Column builder for text type
|
|
32
|
+
*/
|
|
33
|
+
declare const text: () => ColumnBuilder<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Create a BOOLEAN column
|
|
36
|
+
* @returns {ColumnBuilder<boolean>} Column builder for boolean type
|
|
37
|
+
*/
|
|
38
|
+
declare const boolean: () => ColumnBuilder<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Create a JSON column
|
|
41
|
+
* @returns {ColumnBuilder<unknown>} Column builder for json type
|
|
42
|
+
*/
|
|
43
|
+
declare const json: () => ColumnBuilder<unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Create a DATETIME column
|
|
46
|
+
* @returns {ColumnBuilder<Date>} Column builder for datetime type
|
|
47
|
+
*/
|
|
48
|
+
declare const datetime: () => ColumnBuilder<Date>;
|
|
49
|
+
/**
|
|
50
|
+
* Create a TIMESTAMP column
|
|
51
|
+
* @returns {ColumnBuilder<Date>} Column builder for timestamp type
|
|
52
|
+
*/
|
|
53
|
+
declare const timestamp: () => ColumnBuilder<Date>;
|
|
54
|
+
/**
|
|
55
|
+
* Create a DECIMAL column with precision and scale
|
|
56
|
+
* @param {number} [precision=10] - Total number of digits
|
|
57
|
+
* @param {number} [scale=2] - Number of decimal digits
|
|
58
|
+
* @returns {ColumnBuilder<number>} Column builder for decimal type
|
|
59
|
+
*/
|
|
60
|
+
declare const decimal: (precision?: number, scale?: number) => ColumnBuilder<number>;
|
|
61
|
+
/**
|
|
62
|
+
* Create a FLOAT column
|
|
63
|
+
* @returns {ColumnBuilder<number>} Column builder for float type
|
|
64
|
+
*/
|
|
65
|
+
declare const float: () => ColumnBuilder<number>;
|
|
66
|
+
/**
|
|
67
|
+
* Create a BLOB column
|
|
68
|
+
* @returns {ColumnBuilder<Buffer>} Column builder for blob type
|
|
69
|
+
*/
|
|
70
|
+
declare const blob: () => ColumnBuilder<Buffer>;
|
|
71
|
+
/**
|
|
72
|
+
* Column type helpers object for schema definitions
|
|
73
|
+
* @returns {typeof d} Column type helpers
|
|
74
|
+
*/
|
|
75
|
+
declare const d: {
|
|
76
|
+
integer: () => ColumnBuilder<number>;
|
|
77
|
+
bigint: () => ColumnBuilder<number>;
|
|
78
|
+
varchar: (length?: number) => ColumnBuilder<string>;
|
|
79
|
+
char: (length?: number) => ColumnBuilder<string>;
|
|
80
|
+
text: () => ColumnBuilder<string>;
|
|
81
|
+
boolean: () => ColumnBuilder<boolean>;
|
|
82
|
+
json: () => ColumnBuilder<unknown>;
|
|
83
|
+
datetime: () => ColumnBuilder<Date>;
|
|
84
|
+
timestamp: () => ColumnBuilder<Date>;
|
|
85
|
+
decimal: (precision?: number, scale?: number) => ColumnBuilder<number>;
|
|
86
|
+
float: () => ColumnBuilder<number>;
|
|
87
|
+
blob: () => ColumnBuilder<Buffer>;
|
|
88
|
+
};
|
|
89
|
+
//#endregion
|
|
90
|
+
export { d, index_d_exports };
|
|
91
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { __exportAll } from "../../_virtual/_rolldown/runtime.mjs";
|
|
2
|
+
import { ColumnBuilder } from "../column.mjs";
|
|
3
|
+
//#region src/schema/columns/index.ts
|
|
4
|
+
var columns_exports = /* @__PURE__ */ __exportAll({
|
|
5
|
+
bigint: () => bigint,
|
|
6
|
+
blob: () => blob,
|
|
7
|
+
boolean: () => boolean,
|
|
8
|
+
char: () => char,
|
|
9
|
+
d: () => d,
|
|
10
|
+
datetime: () => datetime,
|
|
11
|
+
decimal: () => decimal,
|
|
12
|
+
float: () => float,
|
|
13
|
+
integer: () => integer,
|
|
14
|
+
json: () => json,
|
|
15
|
+
text: () => text,
|
|
16
|
+
timestamp: () => timestamp,
|
|
17
|
+
varchar: () => varchar
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Create an INTEGER column
|
|
21
|
+
* @returns {ColumnBuilder<number>} Column builder for integer type
|
|
22
|
+
*/
|
|
23
|
+
const integer = () => new ColumnBuilder("integer");
|
|
24
|
+
/**
|
|
25
|
+
* Create a BIGINT column
|
|
26
|
+
* @returns {ColumnBuilder<number>} Column builder for bigint type
|
|
27
|
+
*/
|
|
28
|
+
const bigint = () => new ColumnBuilder("bigint");
|
|
29
|
+
/**
|
|
30
|
+
* Create a VARCHAR column with specified length
|
|
31
|
+
* @param {number} [length=255] - Maximum character length
|
|
32
|
+
* @returns {ColumnBuilder<string>} Column builder for varchar type
|
|
33
|
+
*/
|
|
34
|
+
const varchar = (length = 255) => new ColumnBuilder("varchar", length);
|
|
35
|
+
/**
|
|
36
|
+
* Create a CHAR column with specified length
|
|
37
|
+
* @param {number} [length=1] - Fixed character length
|
|
38
|
+
* @returns {ColumnBuilder<string>} Column builder for char type
|
|
39
|
+
*/
|
|
40
|
+
const char = (length = 1) => new ColumnBuilder("char", length);
|
|
41
|
+
/**
|
|
42
|
+
* Create a TEXT column
|
|
43
|
+
* @returns {ColumnBuilder<string>} Column builder for text type
|
|
44
|
+
*/
|
|
45
|
+
const text = () => new ColumnBuilder("text");
|
|
46
|
+
/**
|
|
47
|
+
* Create a BOOLEAN column
|
|
48
|
+
* @returns {ColumnBuilder<boolean>} Column builder for boolean type
|
|
49
|
+
*/
|
|
50
|
+
const boolean = () => new ColumnBuilder("boolean");
|
|
51
|
+
/**
|
|
52
|
+
* Create a JSON column
|
|
53
|
+
* @returns {ColumnBuilder<unknown>} Column builder for json type
|
|
54
|
+
*/
|
|
55
|
+
const json = () => new ColumnBuilder("json");
|
|
56
|
+
/**
|
|
57
|
+
* Create a DATETIME column
|
|
58
|
+
* @returns {ColumnBuilder<Date>} Column builder for datetime type
|
|
59
|
+
*/
|
|
60
|
+
const datetime = () => new ColumnBuilder("datetime");
|
|
61
|
+
/**
|
|
62
|
+
* Create a TIMESTAMP column
|
|
63
|
+
* @returns {ColumnBuilder<Date>} Column builder for timestamp type
|
|
64
|
+
*/
|
|
65
|
+
const timestamp = () => new ColumnBuilder("timestamp");
|
|
66
|
+
/**
|
|
67
|
+
* Create a DECIMAL column with precision and scale
|
|
68
|
+
* @param {number} [precision=10] - Total number of digits
|
|
69
|
+
* @param {number} [scale=2] - Number of decimal digits
|
|
70
|
+
* @returns {ColumnBuilder<number>} Column builder for decimal type
|
|
71
|
+
*/
|
|
72
|
+
const decimal = (precision = 10, scale = 2) => new ColumnBuilder("decimal", void 0, precision, scale);
|
|
73
|
+
/**
|
|
74
|
+
* Create a FLOAT column
|
|
75
|
+
* @returns {ColumnBuilder<number>} Column builder for float type
|
|
76
|
+
*/
|
|
77
|
+
const float = () => new ColumnBuilder("float");
|
|
78
|
+
/**
|
|
79
|
+
* Create a BLOB column
|
|
80
|
+
* @returns {ColumnBuilder<Buffer>} Column builder for blob type
|
|
81
|
+
*/
|
|
82
|
+
const blob = () => new ColumnBuilder("blob");
|
|
83
|
+
/**
|
|
84
|
+
* Column type helpers object for schema definitions
|
|
85
|
+
* @returns {typeof d} Column type helpers
|
|
86
|
+
*/
|
|
87
|
+
const d = {
|
|
88
|
+
integer,
|
|
89
|
+
bigint,
|
|
90
|
+
varchar,
|
|
91
|
+
char,
|
|
92
|
+
text,
|
|
93
|
+
boolean,
|
|
94
|
+
json,
|
|
95
|
+
datetime,
|
|
96
|
+
timestamp,
|
|
97
|
+
decimal,
|
|
98
|
+
float,
|
|
99
|
+
blob
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
export { columns_exports, d };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/schema/columns/index.ts"],"sourcesContent":["import { ColumnBuilder } from \"../column\";\n\n/**\n * Create an INTEGER column\n * @returns {ColumnBuilder<number>} Column builder for integer type\n */\nexport const integer = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"integer\");\n\n/**\n * Create a BIGINT column\n * @returns {ColumnBuilder<number>} Column builder for bigint type\n */\nexport const bigint = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"bigint\");\n\n/**\n * Create a VARCHAR column with specified length\n * @param {number} [length=255] - Maximum character length\n * @returns {ColumnBuilder<string>} Column builder for varchar type\n */\nexport const varchar = (length = 255): ColumnBuilder<string> =>\n new ColumnBuilder<string>(\"varchar\", length);\n\n/**\n * Create a CHAR column with specified length\n * @param {number} [length=1] - Fixed character length\n * @returns {ColumnBuilder<string>} Column builder for char type\n */\nexport const char = (length = 1): ColumnBuilder<string> =>\n new ColumnBuilder<string>(\"char\", length);\n\n/**\n * Create a TEXT column\n * @returns {ColumnBuilder<string>} Column builder for text type\n */\nexport const text = (): ColumnBuilder<string> => new ColumnBuilder<string>(\"text\");\n\n/**\n * Create a BOOLEAN column\n * @returns {ColumnBuilder<boolean>} Column builder for boolean type\n */\nexport const boolean = (): ColumnBuilder<boolean> => new ColumnBuilder<boolean>(\"boolean\");\n\n/**\n * Create a JSON column\n * @returns {ColumnBuilder<unknown>} Column builder for json type\n */\nexport const json = (): ColumnBuilder<unknown> => new ColumnBuilder<unknown>(\"json\");\n\n/**\n * Create a DATETIME column\n * @returns {ColumnBuilder<Date>} Column builder for datetime type\n */\nexport const datetime = (): ColumnBuilder<Date> => new ColumnBuilder<Date>(\"datetime\");\n\n/**\n * Create a TIMESTAMP column\n * @returns {ColumnBuilder<Date>} Column builder for timestamp type\n */\nexport const timestamp = (): ColumnBuilder<Date> => new ColumnBuilder<Date>(\"timestamp\");\n\n/**\n * Create a DECIMAL column with precision and scale\n * @param {number} [precision=10] - Total number of digits\n * @param {number} [scale=2] - Number of decimal digits\n * @returns {ColumnBuilder<number>} Column builder for decimal type\n */\nexport const decimal = (precision = 10, scale = 2): ColumnBuilder<number> =>\n new ColumnBuilder<number>(\"decimal\", undefined, precision, scale);\n\n/**\n * Create a FLOAT column\n * @returns {ColumnBuilder<number>} Column builder for float type\n */\nexport const float = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"float\");\n\n/**\n * Create a BLOB column\n * @returns {ColumnBuilder<Buffer>} Column builder for blob type\n */\nexport const blob = (): ColumnBuilder<Buffer> => new ColumnBuilder<Buffer>(\"blob\");\n\n/**\n * Column type helpers object for schema definitions\n * @returns {typeof d} Column type helpers\n */\nexport const d = {\n integer,\n bigint,\n varchar,\n char,\n text,\n boolean,\n json,\n datetime,\n timestamp,\n decimal,\n float,\n blob,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAMA,MAAa,gBAAuC,IAAI,cAAsB,UAAU;;;;;AAMxF,MAAa,eAAsC,IAAI,cAAsB,SAAS;;;;;;AAOtF,MAAa,WAAW,SAAS,QAC/B,IAAI,cAAsB,WAAW,OAAO;;;;;;AAO9C,MAAa,QAAQ,SAAS,MAC5B,IAAI,cAAsB,QAAQ,OAAO;;;;;AAM3C,MAAa,aAAoC,IAAI,cAAsB,OAAO;;;;;AAMlF,MAAa,gBAAwC,IAAI,cAAuB,UAAU;;;;;AAM1F,MAAa,aAAqC,IAAI,cAAuB,OAAO;;;;;AAMpF,MAAa,iBAAsC,IAAI,cAAoB,WAAW;;;;;AAMtF,MAAa,kBAAuC,IAAI,cAAoB,YAAY;;;;;;;AAQxF,MAAa,WAAW,YAAY,IAAI,QAAQ,MAC9C,IAAI,cAAsB,WAAW,KAAA,GAAW,WAAW,MAAM;;;;;AAMnE,MAAa,cAAqC,IAAI,cAAsB,QAAQ;;;;;AAMpF,MAAa,aAAoC,IAAI,cAAsB,OAAO;;;;;AAMlF,MAAa,IAAI;CACf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
const require_errors = require("../errors.cjs");
|
|
2
|
+
//#region src/schema/registry.ts
|
|
3
|
+
/**
|
|
4
|
+
* Schema registry that manages table definitions and resolves references
|
|
5
|
+
*/
|
|
6
|
+
var SchemaRegistry = class {
|
|
7
|
+
tables = /* @__PURE__ */ new Map();
|
|
8
|
+
definitions = /* @__PURE__ */ new Map();
|
|
9
|
+
relations = /* @__PURE__ */ new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Register table definitions and resolve all deferred references
|
|
12
|
+
* @param {readonly TableDefinition[]} schemas - Table definitions to register
|
|
13
|
+
*/
|
|
14
|
+
register(schemas) {
|
|
15
|
+
for (const schema of schemas) {
|
|
16
|
+
if (!schema.__table || !schema.__name) throw new require_errors.SchemaError("Invalid table definition");
|
|
17
|
+
this.definitions.set(schema.__name, schema);
|
|
18
|
+
this.tables.set(schema.__name, {
|
|
19
|
+
name: schema.__name,
|
|
20
|
+
columns: [...schema.__columns]
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
for (const schema of schemas) for (const ref of schema.__deferredRefs) {
|
|
24
|
+
const resolved = ref.resolve();
|
|
25
|
+
if (!resolved.table || !resolved.column) throw new require_errors.SchemaError(`Failed to resolve reference for ${schema.__name}.${ref.columnName}`);
|
|
26
|
+
if (!this.tables.has(resolved.table)) throw new require_errors.SchemaError(`Referenced table "${resolved.table}" does not exist in schema registry`);
|
|
27
|
+
const column = schema.__columns.find((c) => c.name === ref.columnName);
|
|
28
|
+
if (column) column.references = {
|
|
29
|
+
table: resolved.table,
|
|
30
|
+
column: resolved.column,
|
|
31
|
+
onDelete: ref.onDelete,
|
|
32
|
+
onUpdate: ref.onUpdate,
|
|
33
|
+
relationName: ref.relationName
|
|
34
|
+
};
|
|
35
|
+
const relationName = ref.relationName || ref.columnName.replace(/Id$/, "").replace(/_id$/, "");
|
|
36
|
+
if (!this.relations.has(schema.__name)) this.relations.set(schema.__name, []);
|
|
37
|
+
this.relations.get(schema.__name).push({
|
|
38
|
+
from: {
|
|
39
|
+
table: schema.__name,
|
|
40
|
+
column: ref.columnName
|
|
41
|
+
},
|
|
42
|
+
to: {
|
|
43
|
+
table: resolved.table,
|
|
44
|
+
column: resolved.column
|
|
45
|
+
},
|
|
46
|
+
relationName
|
|
47
|
+
});
|
|
48
|
+
if (!this.relations.has(resolved.table)) this.relations.set(resolved.table, []);
|
|
49
|
+
const reverseRelationName = schema.__name;
|
|
50
|
+
this.relations.get(resolved.table).push({
|
|
51
|
+
from: {
|
|
52
|
+
table: resolved.table,
|
|
53
|
+
column: resolved.column
|
|
54
|
+
},
|
|
55
|
+
to: {
|
|
56
|
+
table: schema.__name,
|
|
57
|
+
column: ref.columnName
|
|
58
|
+
},
|
|
59
|
+
relationName: reverseRelationName
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get table metadata by name
|
|
65
|
+
* @param {string} name - Table name
|
|
66
|
+
* @returns {TableMetadata | undefined} The table metadata
|
|
67
|
+
*/
|
|
68
|
+
getTable(name) {
|
|
69
|
+
return this.tables.get(name);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get all registered table metadata
|
|
73
|
+
* @returns {Map<string, TableMetadata>} All registered tables
|
|
74
|
+
*/
|
|
75
|
+
getAllTables() {
|
|
76
|
+
return this.tables;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get relations for a table
|
|
80
|
+
* @param {string} tableName - Table name
|
|
81
|
+
* @returns {Array<object>} Relations for the table
|
|
82
|
+
*/
|
|
83
|
+
getRelations(tableName) {
|
|
84
|
+
return this.relations.get(tableName) ?? [];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the primary key column name for a table
|
|
88
|
+
* @param {string} tableName - Table name
|
|
89
|
+
* @returns {string | null} The primary key column name or null
|
|
90
|
+
*/
|
|
91
|
+
getPrimaryKey(tableName) {
|
|
92
|
+
const table = this.tables.get(tableName);
|
|
93
|
+
if (!table) return null;
|
|
94
|
+
for (const col of table.columns) if (col.primaryKey) return col.name;
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
//#endregion
|
|
99
|
+
exports.SchemaRegistry = SchemaRegistry;
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=registry.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.cjs","names":["SchemaError"],"sources":["../../src/schema/registry.ts"],"sourcesContent":["import { SchemaError } from \"../errors\";\nimport type { TableDefinition, TableMetadata } from \"../types\";\n\n/**\n * Schema registry that manages table definitions and resolves references\n */\nexport class SchemaRegistry {\n private tables = new Map<string, TableMetadata>();\n private definitions = new Map<string, TableDefinition>();\n private relations = new Map<\n string,\n Array<{\n from: { table: string; column: string };\n to: { table: string; column: string };\n relationName: string;\n }>\n >();\n\n /**\n * Register table definitions and resolve all deferred references\n * @param {readonly TableDefinition[]} schemas - Table definitions to register\n */\n register(schemas: readonly TableDefinition<any, any, any, any>[]): void {\n for (const schema of schemas) {\n if (!schema.__table || !schema.__name) {\n throw new SchemaError(\"Invalid table definition\");\n }\n\n this.definitions.set(schema.__name, schema);\n this.tables.set(schema.__name, {\n name: schema.__name,\n columns: [...schema.__columns],\n });\n }\n\n for (const schema of schemas) {\n for (const ref of schema.__deferredRefs) {\n const resolved = ref.resolve();\n if (!resolved.table || !resolved.column) {\n throw new SchemaError(\n `Failed to resolve reference for ${schema.__name}.${ref.columnName}`,\n );\n }\n\n if (!this.tables.has(resolved.table)) {\n throw new SchemaError(\n `Referenced table \"${resolved.table}\" does not exist in schema registry`,\n );\n }\n\n const column = schema.__columns.find((c) => c.name === ref.columnName);\n if (column) {\n column.references = {\n table: resolved.table,\n column: resolved.column,\n onDelete: ref.onDelete,\n onUpdate: ref.onUpdate,\n relationName: ref.relationName,\n };\n }\n\n const relationName =\n ref.relationName || ref.columnName.replace(/Id$/, \"\").replace(/_id$/, \"\");\n\n if (!this.relations.has(schema.__name)) {\n this.relations.set(schema.__name, []);\n }\n this.relations.get(schema.__name)!.push({\n from: { table: schema.__name, column: ref.columnName },\n to: { table: resolved.table, column: resolved.column },\n relationName,\n });\n\n if (!this.relations.has(resolved.table)) {\n this.relations.set(resolved.table, []);\n }\n const reverseRelationName = schema.__name;\n this.relations.get(resolved.table)!.push({\n from: { table: resolved.table, column: resolved.column },\n to: { table: schema.__name, column: ref.columnName },\n relationName: reverseRelationName,\n });\n }\n }\n }\n\n /**\n * Get table metadata by name\n * @param {string} name - Table name\n * @returns {TableMetadata | undefined} The table metadata\n */\n getTable(name: string): TableMetadata | undefined {\n return this.tables.get(name);\n }\n\n /**\n * Get all registered table metadata\n * @returns {Map<string, TableMetadata>} All registered tables\n */\n getAllTables(): Map<string, TableMetadata> {\n return this.tables;\n }\n\n /**\n * Get relations for a table\n * @param {string} tableName - Table name\n * @returns {Array<object>} Relations for the table\n */\n getRelations(tableName: string): Array<{\n from: { table: string; column: string };\n to: { table: string; column: string };\n relationName: string;\n }> {\n return this.relations.get(tableName) ?? [];\n }\n\n /**\n * Get the primary key column name for a table\n * @param {string} tableName - Table name\n * @returns {string | null} The primary key column name or null\n */\n getPrimaryKey(tableName: string): string | null {\n const table = this.tables.get(tableName);\n if (!table) {\n return null;\n }\n for (const col of table.columns) {\n if (col.primaryKey) {\n return col.name;\n }\n }\n return null;\n }\n}\n"],"mappings":";;;;;AAMA,IAAa,iBAAb,MAA4B;CAC1B,yBAAiB,IAAI,KAA4B;CACjD,8BAAsB,IAAI,KAA8B;CACxD,4BAAoB,IAAI,KAOrB;;;;;CAMH,SAAS,SAA+D;AACtE,OAAK,MAAM,UAAU,SAAS;AAC5B,OAAI,CAAC,OAAO,WAAW,CAAC,OAAO,OAC7B,OAAM,IAAIA,eAAAA,YAAY,2BAA2B;AAGnD,QAAK,YAAY,IAAI,OAAO,QAAQ,OAAO;AAC3C,QAAK,OAAO,IAAI,OAAO,QAAQ;IAC7B,MAAM,OAAO;IACb,SAAS,CAAC,GAAG,OAAO,UAAU;IAC/B,CAAC;;AAGJ,OAAK,MAAM,UAAU,QACnB,MAAK,MAAM,OAAO,OAAO,gBAAgB;GACvC,MAAM,WAAW,IAAI,SAAS;AAC9B,OAAI,CAAC,SAAS,SAAS,CAAC,SAAS,OAC/B,OAAM,IAAIA,eAAAA,YACR,mCAAmC,OAAO,OAAO,GAAG,IAAI,aACzD;AAGH,OAAI,CAAC,KAAK,OAAO,IAAI,SAAS,MAAM,CAClC,OAAM,IAAIA,eAAAA,YACR,qBAAqB,SAAS,MAAM,qCACrC;GAGH,MAAM,SAAS,OAAO,UAAU,MAAM,MAAM,EAAE,SAAS,IAAI,WAAW;AACtE,OAAI,OACF,QAAO,aAAa;IAClB,OAAO,SAAS;IAChB,QAAQ,SAAS;IACjB,UAAU,IAAI;IACd,UAAU,IAAI;IACd,cAAc,IAAI;IACnB;GAGH,MAAM,eACJ,IAAI,gBAAgB,IAAI,WAAW,QAAQ,OAAO,GAAG,CAAC,QAAQ,QAAQ,GAAG;AAE3E,OAAI,CAAC,KAAK,UAAU,IAAI,OAAO,OAAO,CACpC,MAAK,UAAU,IAAI,OAAO,QAAQ,EAAE,CAAC;AAEvC,QAAK,UAAU,IAAI,OAAO,OAAO,CAAE,KAAK;IACtC,MAAM;KAAE,OAAO,OAAO;KAAQ,QAAQ,IAAI;KAAY;IACtD,IAAI;KAAE,OAAO,SAAS;KAAO,QAAQ,SAAS;KAAQ;IACtD;IACD,CAAC;AAEF,OAAI,CAAC,KAAK,UAAU,IAAI,SAAS,MAAM,CACrC,MAAK,UAAU,IAAI,SAAS,OAAO,EAAE,CAAC;GAExC,MAAM,sBAAsB,OAAO;AACnC,QAAK,UAAU,IAAI,SAAS,MAAM,CAAE,KAAK;IACvC,MAAM;KAAE,OAAO,SAAS;KAAO,QAAQ,SAAS;KAAQ;IACxD,IAAI;KAAE,OAAO,OAAO;KAAQ,QAAQ,IAAI;KAAY;IACpD,cAAc;IACf,CAAC;;;;;;;;CAUR,SAAS,MAAyC;AAChD,SAAO,KAAK,OAAO,IAAI,KAAK;;;;;;CAO9B,eAA2C;AACzC,SAAO,KAAK;;;;;;;CAQd,aAAa,WAIV;AACD,SAAO,KAAK,UAAU,IAAI,UAAU,IAAI,EAAE;;;;;;;CAQ5C,cAAc,WAAkC;EAC9C,MAAM,QAAQ,KAAK,OAAO,IAAI,UAAU;AACxC,MAAI,CAAC,MACH,QAAO;AAET,OAAK,MAAM,OAAO,MAAM,QACtB,KAAI,IAAI,WACN,QAAO,IAAI;AAGf,SAAO"}
|