drizzle-orm 0.37.0-a44af76 → 0.38.0-1abaaf8
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/column-builder.cjs.map +1 -1
- package/column-builder.d.cts +1 -1
- package/column-builder.d.ts +1 -1
- package/column-builder.js.map +1 -1
- package/mysql-core/columns/all.cjs +4 -1
- package/mysql-core/columns/all.cjs.map +1 -1
- package/mysql-core/columns/all.d.cts +4 -1
- package/mysql-core/columns/all.d.ts +4 -1
- package/mysql-core/columns/all.js +5 -2
- package/mysql-core/columns/all.js.map +1 -1
- package/mysql-core/columns/char.cjs.map +1 -1
- package/mysql-core/columns/char.d.cts +19 -10
- package/mysql-core/columns/char.d.ts +19 -10
- package/mysql-core/columns/char.js.map +1 -1
- package/mysql-core/columns/common.cjs.map +1 -1
- package/mysql-core/columns/common.d.cts +1 -1
- package/mysql-core/columns/common.d.ts +1 -1
- package/mysql-core/columns/common.js.map +1 -1
- package/mysql-core/columns/text.cjs.map +1 -1
- package/mysql-core/columns/text.d.cts +1 -1
- package/mysql-core/columns/text.d.ts +1 -1
- package/mysql-core/columns/text.js.map +1 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +14 -7
- package/mysql-core/columns/varchar.d.ts +14 -7
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/dialect.cjs +18 -3
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +2 -1
- package/mysql-core/dialect.d.ts +2 -1
- package/mysql-core/dialect.js +18 -3
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +85 -10
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.d.cts +54 -4
- package/mysql-core/query-builders/select.d.ts +54 -4
- package/mysql-core/query-builders/select.js +83 -8
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/query-builders/select.types.cjs.map +1 -1
- package/mysql-core/query-builders/select.types.d.cts +8 -2
- package/mysql-core/query-builders/select.types.d.ts +8 -2
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.d.cts +1 -1
- package/mysql-core/query-builders/update.d.ts +1 -1
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/table.cjs.map +1 -1
- package/mysql-core/table.d.cts +61 -4
- package/mysql-core/table.d.ts +61 -4
- package/mysql-core/table.js.map +1 -1
- package/mysql-core/utils.cjs +16 -3
- package/mysql-core/utils.cjs.map +1 -1
- package/mysql-core/utils.d.cts +4 -1
- package/mysql-core/utils.d.ts +4 -1
- package/mysql-core/utils.js +13 -2
- package/mysql-core/utils.js.map +1 -1
- package/package.json +181 -181
- package/pg-core/columns/char.cjs +4 -1
- package/pg-core/columns/char.cjs.map +1 -1
- package/pg-core/columns/char.d.cts +21 -12
- package/pg-core/columns/char.d.ts +21 -12
- package/pg-core/columns/char.js +4 -1
- package/pg-core/columns/char.js.map +1 -1
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.d.cts +25 -8
- package/pg-core/columns/common.d.ts +25 -8
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/columns/varchar.cjs +4 -1
- package/pg-core/columns/varchar.cjs.map +1 -1
- package/pg-core/columns/varchar.d.cts +21 -12
- package/pg-core/columns/varchar.d.ts +21 -12
- package/pg-core/columns/varchar.js +4 -1
- package/pg-core/columns/varchar.js.map +1 -1
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
- package/pg-core/columns/vector_extension/bit.d.cts +18 -11
- package/pg-core/columns/vector_extension/bit.d.ts +18 -11
- package/pg-core/columns/vector_extension/bit.js.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.d.cts +20 -11
- package/pg-core/columns/vector_extension/halfvec.d.ts +20 -11
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
- package/pg-core/columns/vector_extension/vector.cjs +4 -1
- package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
- package/pg-core/columns/vector_extension/vector.d.cts +19 -10
- package/pg-core/columns/vector_extension/vector.d.ts +19 -10
- package/pg-core/columns/vector_extension/vector.js +4 -1
- package/pg-core/columns/vector_extension/vector.js.map +1 -1
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +1 -1
- package/pg-core/query-builders/update.d.ts +1 -1
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.d.cts +40 -2
- package/pg-core/table.d.ts +40 -2
- package/pg-core/table.js.map +1 -1
- package/postgres-js/driver.cjs +6 -1
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.js +6 -1
- package/postgres-js/driver.js.map +1 -1
- package/relations.cjs.map +1 -1
- package/relations.d.cts +7 -7
- package/relations.d.ts +7 -7
- package/relations.js.map +1 -1
- package/singlestore-core/columns/bigint.cjs.map +1 -1
- package/singlestore-core/columns/bigint.d.cts +0 -1
- package/singlestore-core/columns/bigint.d.ts +0 -1
- package/singlestore-core/columns/bigint.js.map +1 -1
- package/singlestore-core/columns/common.cjs.map +1 -1
- package/singlestore-core/columns/common.d.cts +1 -1
- package/singlestore-core/columns/common.d.ts +1 -1
- package/singlestore-core/columns/common.js.map +1 -1
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.d.cts +1 -1
- package/singlestore-core/query-builders/update.d.ts +1 -1
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/table.cjs.map +1 -1
- package/singlestore-core/table.d.cts +59 -2
- package/singlestore-core/table.d.ts +59 -2
- package/singlestore-core/table.js.map +1 -1
- package/singlestore-core/utils.cjs +2 -1
- package/singlestore-core/utils.cjs.map +1 -1
- package/singlestore-core/utils.d.cts +1 -1
- package/singlestore-core/utils.d.ts +1 -1
- package/singlestore-core/utils.js +2 -1
- package/singlestore-core/utils.js.map +1 -1
- package/sqlite-core/columns/common.cjs.map +1 -1
- package/sqlite-core/columns/common.d.cts +1 -1
- package/sqlite-core/columns/common.d.ts +1 -1
- package/sqlite-core/columns/common.js.map +1 -1
- package/sqlite-core/columns/text.cjs +4 -1
- package/sqlite-core/columns/text.cjs.map +1 -1
- package/sqlite-core/columns/text.d.cts +19 -12
- package/sqlite-core/columns/text.d.ts +19 -12
- package/sqlite-core/columns/text.js +4 -1
- package/sqlite-core/columns/text.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.d.cts +1 -1
- package/sqlite-core/query-builders/update.d.ts +1 -1
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/table.cjs.map +1 -1
- package/sqlite-core/table.d.cts +58 -1
- package/sqlite-core/table.d.ts +58 -1
- package/sqlite-core/table.js.map +1 -1
- package/sqlite-core/utils.cjs +2 -1
- package/sqlite-core/utils.cjs.map +1 -1
- package/sqlite-core/utils.d.cts +1 -1
- package/sqlite-core/utils.d.ts +1 -1
- package/sqlite-core/utils.js +2 -1
- package/sqlite-core/utils.js.map +1 -1
- package/supabase/rls.d.cts +3 -1
- package/supabase/rls.d.ts +3 -1
- package/table.cjs.map +1 -1
- package/table.d.cts +1 -1
- package/table.d.ts +1 -1
- package/table.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -6,7 +6,8 @@ import type { SingleStoreColumn, SingleStoreColumnBuilderBase } from "./columns/
|
|
|
6
6
|
import type { AnyIndexBuilder } from "./indexes.cjs";
|
|
7
7
|
import type { PrimaryKeyBuilder } from "./primary-keys.cjs";
|
|
8
8
|
import type { UniqueConstraintBuilder } from "./unique-constraint.cjs";
|
|
9
|
-
export type
|
|
9
|
+
export type SingleStoreTableExtraConfigValue = AnyIndexBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder;
|
|
10
|
+
export type SingleStoreTableExtraConfig = Record<string, SingleStoreTableExtraConfigValue>;
|
|
10
11
|
export type TableConfig = TableConfigBase<SingleStoreColumn>;
|
|
11
12
|
export declare class SingleStoreTable<T extends TableConfig = TableConfig> extends Table<T> {
|
|
12
13
|
static readonly [entityKind]: string;
|
|
@@ -16,25 +17,81 @@ export type AnySingleStoreTable<TPartial extends Partial<TableConfig> = {}> = Si
|
|
|
16
17
|
export type SingleStoreTableWithColumns<T extends TableConfig> = SingleStoreTable<T> & {
|
|
17
18
|
[Key in keyof T['columns']]: T['columns'][Key];
|
|
18
19
|
};
|
|
19
|
-
export declare function singlestoreTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig) | undefined, schema: TSchemaName, baseName?: TTableName): SingleStoreTableWithColumns<{
|
|
20
|
+
export declare function singlestoreTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig | SingleStoreTableExtraConfigValue[]) | undefined, schema: TSchemaName, baseName?: TTableName): SingleStoreTableWithColumns<{
|
|
20
21
|
name: TTableName;
|
|
21
22
|
schema: TSchemaName;
|
|
22
23
|
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
23
24
|
dialect: 'singlestore';
|
|
24
25
|
}>;
|
|
25
26
|
export interface SingleStoreTableFn<TSchemaName extends string | undefined = undefined> {
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* Deprecated version:
|
|
32
|
+
* ```ts
|
|
33
|
+
* export const users = singlestoreTable("users", {
|
|
34
|
+
* id: int(),
|
|
35
|
+
* }, (t) => ({
|
|
36
|
+
* idx: index('custom_name').on(t.id)
|
|
37
|
+
* }));
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* New API:
|
|
41
|
+
* ```ts
|
|
42
|
+
* export const users = singlestoreTable("users", {
|
|
43
|
+
* id: int(),
|
|
44
|
+
* }, (t) => [
|
|
45
|
+
* index('custom_name').on(t.id)
|
|
46
|
+
* ]);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
26
49
|
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig): SingleStoreTableWithColumns<{
|
|
27
50
|
name: TTableName;
|
|
28
51
|
schema: TSchemaName;
|
|
29
52
|
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
30
53
|
dialect: 'singlestore';
|
|
31
54
|
}>;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* Deprecated version:
|
|
60
|
+
* ```ts
|
|
61
|
+
* export const users = singlestoreTable("users", {
|
|
62
|
+
* id: int(),
|
|
63
|
+
* }, (t) => ({
|
|
64
|
+
* idx: index('custom_name').on(t.id)
|
|
65
|
+
* }));
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* New API:
|
|
69
|
+
* ```ts
|
|
70
|
+
* export const users = singlestoreTable("users", {
|
|
71
|
+
* id: int(),
|
|
72
|
+
* }, (t) => [
|
|
73
|
+
* index('custom_name').on(t.id)
|
|
74
|
+
* ]);
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
32
77
|
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig): SingleStoreTableWithColumns<{
|
|
33
78
|
name: TTableName;
|
|
34
79
|
schema: TSchemaName;
|
|
35
80
|
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
36
81
|
dialect: 'singlestore';
|
|
37
82
|
}>;
|
|
83
|
+
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfigValue[]): SingleStoreTableWithColumns<{
|
|
84
|
+
name: TTableName;
|
|
85
|
+
schema: TSchemaName;
|
|
86
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
87
|
+
dialect: 'singlestore';
|
|
88
|
+
}>;
|
|
89
|
+
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfigValue[]): SingleStoreTableWithColumns<{
|
|
90
|
+
name: TTableName;
|
|
91
|
+
schema: TSchemaName;
|
|
92
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
93
|
+
dialect: 'singlestore';
|
|
94
|
+
}>;
|
|
38
95
|
}
|
|
39
96
|
export declare const singlestoreTable: SingleStoreTableFn;
|
|
40
97
|
export declare function singlestoreTableCreator(customizeTableName: (name: string) => string): SingleStoreTableFn;
|
|
@@ -6,7 +6,8 @@ import type { SingleStoreColumn, SingleStoreColumnBuilderBase } from "./columns/
|
|
|
6
6
|
import type { AnyIndexBuilder } from "./indexes.js";
|
|
7
7
|
import type { PrimaryKeyBuilder } from "./primary-keys.js";
|
|
8
8
|
import type { UniqueConstraintBuilder } from "./unique-constraint.js";
|
|
9
|
-
export type
|
|
9
|
+
export type SingleStoreTableExtraConfigValue = AnyIndexBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder;
|
|
10
|
+
export type SingleStoreTableExtraConfig = Record<string, SingleStoreTableExtraConfigValue>;
|
|
10
11
|
export type TableConfig = TableConfigBase<SingleStoreColumn>;
|
|
11
12
|
export declare class SingleStoreTable<T extends TableConfig = TableConfig> extends Table<T> {
|
|
12
13
|
static readonly [entityKind]: string;
|
|
@@ -16,25 +17,81 @@ export type AnySingleStoreTable<TPartial extends Partial<TableConfig> = {}> = Si
|
|
|
16
17
|
export type SingleStoreTableWithColumns<T extends TableConfig> = SingleStoreTable<T> & {
|
|
17
18
|
[Key in keyof T['columns']]: T['columns'][Key];
|
|
18
19
|
};
|
|
19
|
-
export declare function singlestoreTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig) | undefined, schema: TSchemaName, baseName?: TTableName): SingleStoreTableWithColumns<{
|
|
20
|
+
export declare function singlestoreTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig | SingleStoreTableExtraConfigValue[]) | undefined, schema: TSchemaName, baseName?: TTableName): SingleStoreTableWithColumns<{
|
|
20
21
|
name: TTableName;
|
|
21
22
|
schema: TSchemaName;
|
|
22
23
|
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
23
24
|
dialect: 'singlestore';
|
|
24
25
|
}>;
|
|
25
26
|
export interface SingleStoreTableFn<TSchemaName extends string | undefined = undefined> {
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* Deprecated version:
|
|
32
|
+
* ```ts
|
|
33
|
+
* export const users = singlestoreTable("users", {
|
|
34
|
+
* id: int(),
|
|
35
|
+
* }, (t) => ({
|
|
36
|
+
* idx: index('custom_name').on(t.id)
|
|
37
|
+
* }));
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* New API:
|
|
41
|
+
* ```ts
|
|
42
|
+
* export const users = singlestoreTable("users", {
|
|
43
|
+
* id: int(),
|
|
44
|
+
* }, (t) => [
|
|
45
|
+
* index('custom_name').on(t.id)
|
|
46
|
+
* ]);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
26
49
|
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig): SingleStoreTableWithColumns<{
|
|
27
50
|
name: TTableName;
|
|
28
51
|
schema: TSchemaName;
|
|
29
52
|
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
30
53
|
dialect: 'singlestore';
|
|
31
54
|
}>;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* Deprecated version:
|
|
60
|
+
* ```ts
|
|
61
|
+
* export const users = singlestoreTable("users", {
|
|
62
|
+
* id: int(),
|
|
63
|
+
* }, (t) => ({
|
|
64
|
+
* idx: index('custom_name').on(t.id)
|
|
65
|
+
* }));
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* New API:
|
|
69
|
+
* ```ts
|
|
70
|
+
* export const users = singlestoreTable("users", {
|
|
71
|
+
* id: int(),
|
|
72
|
+
* }, (t) => [
|
|
73
|
+
* index('custom_name').on(t.id)
|
|
74
|
+
* ]);
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
32
77
|
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig): SingleStoreTableWithColumns<{
|
|
33
78
|
name: TTableName;
|
|
34
79
|
schema: TSchemaName;
|
|
35
80
|
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
36
81
|
dialect: 'singlestore';
|
|
37
82
|
}>;
|
|
83
|
+
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfigValue[]): SingleStoreTableWithColumns<{
|
|
84
|
+
name: TTableName;
|
|
85
|
+
schema: TSchemaName;
|
|
86
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
87
|
+
dialect: 'singlestore';
|
|
88
|
+
}>;
|
|
89
|
+
<TTableName extends string, TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>>(name: TTableName, columns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfigValue[]): SingleStoreTableWithColumns<{
|
|
90
|
+
name: TTableName;
|
|
91
|
+
schema: TSchemaName;
|
|
92
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;
|
|
93
|
+
dialect: 'singlestore';
|
|
94
|
+
}>;
|
|
38
95
|
}
|
|
39
96
|
export declare const singlestoreTable: SingleStoreTableFn;
|
|
40
97
|
export declare function singlestoreTableCreator(customizeTableName: (name: string) => string): SingleStoreTableFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/singlestore-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport { getSingleStoreColumnBuilders, type SingleStoreColumnBuilders } from './columns/all.ts';\nimport type { SingleStoreColumn, SingleStoreColumnBuilder, SingleStoreColumnBuilderBase } from './columns/common.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../../src/singlestore-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport { getSingleStoreColumnBuilders, type SingleStoreColumnBuilders } from './columns/all.ts';\nimport type { SingleStoreColumn, SingleStoreColumnBuilder, SingleStoreColumnBuilderBase } from './columns/common.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type SingleStoreTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder;\n\nexport type SingleStoreTableExtraConfig = Record<\n\tstring,\n\tSingleStoreTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<SingleStoreColumn>;\n\nexport class SingleStoreTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTable';\n\n\tdeclare protected $columns: T['columns'];\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable<T['columns']>;\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record<string, SingleStoreColumn>) => SingleStoreTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnySingleStoreTable<TPartial extends Partial<TableConfig> = {}> = SingleStoreTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type SingleStoreTableWithColumns<T extends TableConfig> =\n\t& SingleStoreTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport function singlestoreTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'singlestore'>,\n\t\t) => SingleStoreTableExtraConfig | SingleStoreTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): SingleStoreTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\tdialect: 'singlestore';\n}> {\n\tconst rawTable = new SingleStoreTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getSingleStoreColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as SingleStoreColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumns as unknown as BuildExtraConfigColumns<\n\t\tTTableName,\n\t\tTColumnsMap,\n\t\t'singlestore'\n\t>;\n\n\tif (extraConfig) {\n\t\ttable[SingleStoreTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (\n\t\t\tself: Record<string, SingleStoreColumn>,\n\t\t) => SingleStoreTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport interface SingleStoreTableFn<TSchemaName extends string | undefined = undefined> {\n\t/**\n\t * @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig,\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of singlestoreTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = singlestoreTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfig,\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'singlestore'>,\n\t\t) => SingleStoreTableExtraConfigValue[],\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: SingleStoreColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>) => SingleStoreTableExtraConfigValue[],\n\t): SingleStoreTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'singlestore'>;\n\t\tdialect: 'singlestore';\n\t}>;\n}\n\nexport const singlestoreTable: SingleStoreTableFn = (name, columns, extraConfig) => {\n\treturn singlestoreTableWithSchema(name, columns, extraConfig, undefined, name);\n};\n\nexport function singlestoreTableCreator(customizeTableName: (name: string) => string): SingleStoreTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn singlestoreTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,aAA0E;AACnF,SAAS,oCAAoE;AAkBtE,MAAM,yBAA8D,MAAS;AAAA,EACnF,QAA0B,UAAU,IAAY;AAAA;AAAA,EAKhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC;AAAA;AAAA,EAGpE,CAAU,MAAM,OAAO,OAAO;AAAA;AAAA,EAG9B,CAAU,MAAM,OAAO,kBAAkB,IAE1B;AAChB;AAYO,SAAS,2BAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,iBAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,QAAQ,6BAA6B,CAAC,IAAI;AAE7G,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,MAAM,OAAO,kBAAkB,IAAI;AAMzC,MAAI,aAAa;AAChB,UAAM,iBAAiB,OAAO,kBAAkB,IAAI;AAAA,EAGrD;AAEA,SAAO;AACR;AA0GO,MAAM,mBAAuC,CAAC,MAAM,SAAS,gBAAgB;AACnF,SAAO,2BAA2B,MAAM,SAAS,aAAa,QAAW,IAAI;AAC9E;AAEO,SAAS,wBAAwB,oBAAkE;AACzG,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,2BAA2B,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACjH;AACD;","names":["name"]}
|
|
@@ -38,7 +38,8 @@ function getTableConfig(table) {
|
|
|
38
38
|
const extraConfigBuilder = table[import_table2.SingleStoreTable.Symbol.ExtraConfigBuilder];
|
|
39
39
|
if (extraConfigBuilder !== void 0) {
|
|
40
40
|
const extraConfig = extraConfigBuilder(table[import_table2.SingleStoreTable.Symbol.Columns]);
|
|
41
|
-
|
|
41
|
+
const extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);
|
|
42
|
+
for (const builder of Object.values(extraValues)) {
|
|
42
43
|
if ((0, import_entity.is)(builder, import_indexes.IndexBuilder)) {
|
|
43
44
|
indexes.push(builder.build(table));
|
|
44
45
|
} else if ((0, import_entity.is)(builder, import_unique_constraint.UniqueConstraintBuilder)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/singlestore-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { SingleStoreTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\n/* import { SingleStoreViewConfig } from './view-common.ts';\nimport type { SingleStoreView } from './view.ts'; */\n\nexport function getTableConfig(table: SingleStoreTable) {\n\tconst columns = Object.values(table[SingleStoreTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[SingleStoreTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[SingleStoreTable.Symbol.Columns]);\n\t\tfor (const builder of Object.values(
|
|
1
|
+
{"version":3,"sources":["../../src/singlestore-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { SingleStoreTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\n/* import { SingleStoreViewConfig } from './view-common.ts';\nimport type { SingleStoreView } from './view.ts'; */\n\nexport function getTableConfig(table: SingleStoreTable) {\n\tconst columns = Object.values(table[SingleStoreTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[SingleStoreTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[SingleStoreTable.Symbol.Columns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of Object.values(extraValues)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tbaseName,\n\t};\n}\n\n/* export function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: SingleStoreView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[SingleStoreViewConfig],\n\t};\n} */\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,mBAAsB;AAEtB,qBAA6B;AAE7B,0BAAkC;AAClC,IAAAA,gBAAiC;AACjC,+BAA+D;AAIxD,SAAS,eAAe,OAAyB;AACvD,QAAM,UAAU,OAAO,OAAO,MAAM,+BAAiB,OAAO,OAAO,CAAC;AACpE,QAAM,UAAmB,CAAC;AAC1B,QAAM,cAA4B,CAAC;AACnC,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,mBAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,mBAAM,OAAO,MAAM;AACxC,QAAM,WAAW,MAAM,mBAAM,OAAO,QAAQ;AAE5C,QAAM,qBAAqB,MAAM,+BAAiB,OAAO,kBAAkB;AAE3E,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,+BAAiB,OAAO,OAAO,CAAC;AAC7E,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,cAAI,kBAAG,SAAS,2BAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,eAAW,kBAAG,SAAS,gDAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;","names":["import_table"]}
|
|
@@ -3,7 +3,7 @@ import type { PrimaryKey } from "./primary-keys.cjs";
|
|
|
3
3
|
import { SingleStoreTable } from "./table.cjs";
|
|
4
4
|
import { type UniqueConstraint } from "./unique-constraint.cjs";
|
|
5
5
|
export declare function getTableConfig(table: SingleStoreTable): {
|
|
6
|
-
columns: import("./index.ts").SingleStoreColumn<import("../column.ts").ColumnBaseConfig<import("../column-builder.ts").ColumnDataType, string>,
|
|
6
|
+
columns: import("./index.ts").SingleStoreColumn<import("../column.ts").ColumnBaseConfig<import("../column-builder.ts").ColumnDataType, string>, {}, {}>[];
|
|
7
7
|
indexes: Index[];
|
|
8
8
|
primaryKeys: PrimaryKey[];
|
|
9
9
|
uniqueConstraints: UniqueConstraint[];
|
|
@@ -3,7 +3,7 @@ import type { PrimaryKey } from "./primary-keys.js";
|
|
|
3
3
|
import { SingleStoreTable } from "./table.js";
|
|
4
4
|
import { type UniqueConstraint } from "./unique-constraint.js";
|
|
5
5
|
export declare function getTableConfig(table: SingleStoreTable): {
|
|
6
|
-
columns: import("./index.js").SingleStoreColumn<import("../column.js").ColumnBaseConfig<import("../column-builder.js").ColumnDataType, string>,
|
|
6
|
+
columns: import("./index.js").SingleStoreColumn<import("../column.js").ColumnBaseConfig<import("../column-builder.js").ColumnDataType, string>, {}, {}>[];
|
|
7
7
|
indexes: Index[];
|
|
8
8
|
primaryKeys: PrimaryKey[];
|
|
9
9
|
uniqueConstraints: UniqueConstraint[];
|
|
@@ -15,7 +15,8 @@ function getTableConfig(table) {
|
|
|
15
15
|
const extraConfigBuilder = table[SingleStoreTable.Symbol.ExtraConfigBuilder];
|
|
16
16
|
if (extraConfigBuilder !== void 0) {
|
|
17
17
|
const extraConfig = extraConfigBuilder(table[SingleStoreTable.Symbol.Columns]);
|
|
18
|
-
|
|
18
|
+
const extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);
|
|
19
|
+
for (const builder of Object.values(extraValues)) {
|
|
19
20
|
if (is(builder, IndexBuilder)) {
|
|
20
21
|
indexes.push(builder.build(table));
|
|
21
22
|
} else if (is(builder, UniqueConstraintBuilder)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/singlestore-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { SingleStoreTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\n/* import { SingleStoreViewConfig } from './view-common.ts';\nimport type { SingleStoreView } from './view.ts'; */\n\nexport function getTableConfig(table: SingleStoreTable) {\n\tconst columns = Object.values(table[SingleStoreTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[SingleStoreTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[SingleStoreTable.Symbol.Columns]);\n\t\tfor (const builder of Object.values(
|
|
1
|
+
{"version":3,"sources":["../../src/singlestore-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { SingleStoreTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\n/* import { SingleStoreViewConfig } from './view-common.ts';\nimport type { SingleStoreView } from './view.ts'; */\n\nexport function getTableConfig(table: SingleStoreTable) {\n\tconst columns = Object.values(table[SingleStoreTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[SingleStoreTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[SingleStoreTable.Symbol.Columns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of Object.values(extraValues)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tbaseName,\n\t};\n}\n\n/* export function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: SingleStoreView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[SingleStoreViewConfig],\n\t};\n} */\n"],"mappings":"AAAA,SAAS,UAAU;AACnB,SAAS,aAAa;AAEtB,SAAS,oBAAoB;AAE7B,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAgC,+BAA+B;AAIxD,SAAS,eAAe,OAAyB;AACvD,QAAM,UAAU,OAAO,OAAO,MAAM,iBAAiB,OAAO,OAAO,CAAC;AACpE,QAAM,UAAmB,CAAC;AAC1B,QAAM,cAA4B,CAAC;AACnC,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,MAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,MAAM,OAAO,MAAM;AACxC,QAAM,WAAW,MAAM,MAAM,OAAO,QAAQ;AAE5C,QAAM,qBAAqB,MAAM,iBAAiB,OAAO,kBAAkB;AAE3E,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,iBAAiB,OAAO,OAAO,CAAC;AAC7E,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,UAAI,GAAG,SAAS,YAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,WAAW,GAAG,SAAS,uBAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sqlite-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasGenerated,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport { Column } from '~/column.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/sqlite-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/sqlite-core/foreign-keys.ts';\nimport type { AnySQLiteTable, SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => SQLiteColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface SQLiteColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'sqlite' }> {}\n\nexport interface SQLiteGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class SQLiteColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = object,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'sqlite' }, TExtraConfig>\n\timplements SQLiteColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: SQLiteGeneratedColumnConfig): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: SQLiteColumn, table: SQLiteTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `SQLiteColumn` and `AnySQLiteColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class SQLiteColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends Column<T, TRuntimeConfig, { dialect: 'sqlite' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteColumn';\n\n\tconstructor(\n\t\toverride readonly table: SQLiteTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnySQLiteColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = SQLiteColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,4BAA8B;AAC9B,oBAAuB;AAEvB,oBAA2B;AAG3B,0BAAkC;AAGlC,+BAA8B;AAmBvB,MAAe,4BAKZ,oCAEV;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WACC,KACA,UAAsC,CAAC,GAChC;AACP,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OACC,MACO;AACP,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAElD;AACF,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAsB,OAAkC;AACxE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,sCAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,
|
|
1
|
+
{"version":3,"sources":["../../../src/sqlite-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasGenerated,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport { Column } from '~/column.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/sqlite-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/sqlite-core/foreign-keys.ts';\nimport type { AnySQLiteTable, SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => SQLiteColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface SQLiteColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'sqlite' }> {}\n\nexport interface SQLiteGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class SQLiteColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = object,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'sqlite' }, TExtraConfig>\n\timplements SQLiteColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: SQLiteGeneratedColumnConfig): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: SQLiteColumn, table: SQLiteTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `SQLiteColumn` and `AnySQLiteColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class SQLiteColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = {},\n\tTTypeConfig extends object = {},\n> extends Column<T, TRuntimeConfig, TTypeConfig & { dialect: 'sqlite' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteColumn';\n\n\tconstructor(\n\t\toverride readonly table: SQLiteTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnySQLiteColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = SQLiteColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,4BAA8B;AAC9B,oBAAuB;AAEvB,oBAA2B;AAG3B,0BAAkC;AAGlC,+BAA8B;AAmBvB,MAAe,4BAKZ,oCAEV;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WACC,KACA,UAAsC,CAAC,GAChC;AACP,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OACC,MACO;AACP,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAElD;AACF,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAsB,OAAkC;AACxE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,sCAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,qBAIZ,qBAA+D;AAAA,EAGxE,YACmB,OAClB,QACC;AACD,QAAI,CAAC,OAAO,YAAY;AACvB,aAAO,iBAAa,wCAAc,OAAO,CAAC,OAAO,IAAI,CAAC;AAAA,IACvD;AACA,UAAM,OAAO,MAAM;AAND;AAAA,EAOnB;AAAA,EAVA,QAA0B,wBAAU,IAAY;AAWjD;","names":["ref","actions"]}
|
|
@@ -32,7 +32,7 @@ export declare abstract class SQLiteColumnBuilder<T extends ColumnBuilderBaseCon
|
|
|
32
32
|
type: 'always';
|
|
33
33
|
}>;
|
|
34
34
|
}
|
|
35
|
-
export declare abstract class SQLiteColumn<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object> extends Column<T, TRuntimeConfig, {
|
|
35
|
+
export declare abstract class SQLiteColumn<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = {}, TTypeConfig extends object = {}> extends Column<T, TRuntimeConfig, TTypeConfig & {
|
|
36
36
|
dialect: 'sqlite';
|
|
37
37
|
}> {
|
|
38
38
|
readonly table: SQLiteTable;
|
|
@@ -32,7 +32,7 @@ export declare abstract class SQLiteColumnBuilder<T extends ColumnBuilderBaseCon
|
|
|
32
32
|
type: 'always';
|
|
33
33
|
}>;
|
|
34
34
|
}
|
|
35
|
-
export declare abstract class SQLiteColumn<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = object> extends Column<T, TRuntimeConfig, {
|
|
35
|
+
export declare abstract class SQLiteColumn<T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>, TRuntimeConfig extends object = {}, TTypeConfig extends object = {}> extends Column<T, TRuntimeConfig, TTypeConfig & {
|
|
36
36
|
dialect: 'sqlite';
|
|
37
37
|
}> {
|
|
38
38
|
readonly table: SQLiteTable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sqlite-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasGenerated,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport { Column } from '~/column.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/sqlite-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/sqlite-core/foreign-keys.ts';\nimport type { AnySQLiteTable, SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => SQLiteColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface SQLiteColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'sqlite' }> {}\n\nexport interface SQLiteGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class SQLiteColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = object,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'sqlite' }, TExtraConfig>\n\timplements SQLiteColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: SQLiteGeneratedColumnConfig): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: SQLiteColumn, table: SQLiteTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `SQLiteColumn` and `AnySQLiteColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class SQLiteColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n> extends Column<T, TRuntimeConfig, { dialect: 'sqlite' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteColumn';\n\n\tconstructor(\n\t\toverride readonly table: SQLiteTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnySQLiteColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = SQLiteColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n"],"mappings":"AASA,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AAEvB,SAAS,kBAAkB;AAG3B,SAAS,yBAAyB;AAGlC,SAAS,qBAAqB;AAmBvB,MAAe,4BAKZ,cAEV;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WACC,KACA,UAAsC,CAAC,GAChC;AACP,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OACC,MACO;AACP,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAElD;AACF,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAsB,OAAkC;AACxE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,kBAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,
|
|
1
|
+
{"version":3,"sources":["../../../src/sqlite-core/columns/common.ts"],"sourcesContent":["import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasGenerated,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport { Column } from '~/column.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/sqlite-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/sqlite-core/foreign-keys.ts';\nimport type { AnySQLiteTable, SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => SQLiteColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface SQLiteColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'sqlite' }> {}\n\nexport interface SQLiteGeneratedColumnConfig {\n\tmode?: 'virtual' | 'stored';\n}\n\nexport abstract class SQLiteColumnBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = object,\n> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'sqlite' }, TExtraConfig>\n\timplements SQLiteColumnBuilderBase<T, TTypeConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\tgeneratedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: SQLiteGeneratedColumnConfig): HasGenerated<this, {\n\t\ttype: 'always';\n\t}> {\n\t\tthis.config.generated = {\n\t\t\tas,\n\t\t\ttype: 'always',\n\t\t\tmode: config?.mode ?? 'virtual',\n\t\t};\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: SQLiteColumn, table: SQLiteTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteColumn<MakeColumnConfig<T, TTableName>>;\n}\n\n// To understand how to use `SQLiteColumn` and `AnySQLiteColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class SQLiteColumn<\n\tT extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,\n\tTRuntimeConfig extends object = {},\n\tTTypeConfig extends object = {},\n> extends Column<T, TRuntimeConfig, TTypeConfig & { dialect: 'sqlite' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteColumn';\n\n\tconstructor(\n\t\toverride readonly table: SQLiteTable,\n\t\tconfig: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnySQLiteColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> = SQLiteColumn<\n\tRequired<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>\n>;\n"],"mappings":"AASA,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AAEvB,SAAS,kBAAkB;AAG3B,SAAS,yBAAyB;AAGlC,SAAS,qBAAqB;AAmBvB,MAAe,4BAKZ,cAEV;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAExC,oBAAuC,CAAC;AAAA,EAEhD,WACC,KACA,UAAsC,CAAC,GAChC;AACP,SAAK,kBAAkB,KAAK,EAAE,KAAK,QAAQ,CAAC;AAC5C,WAAO;AAAA,EACR;AAAA,EAEA,OACC,MACO;AACP,SAAK,OAAO,WAAW;AACvB,SAAK,OAAO,aAAa;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,kBAAkB,IAAmC,QAElD;AACF,SAAK,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,QAAQ,QAAQ;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,iBAAiB,QAAsB,OAAkC;AACxE,WAAO,KAAK,kBAAkB,IAAI,CAAC,EAAE,KAAK,QAAQ,MAAM;AACvD,cAAQ,CAACA,MAAKC,aAAY;AACzB,cAAM,UAAU,IAAI,kBAAkB,MAAM;AAC3C,gBAAM,gBAAgBD,KAAI;AAC1B,iBAAO,EAAE,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE;AAAA,QAC7D,CAAC;AACD,YAAIC,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,YAAIA,SAAQ,UAAU;AACrB,kBAAQ,SAASA,SAAQ,QAAQ;AAAA,QAClC;AACA,eAAO,QAAQ,MAAM,KAAK;AAAA,MAC3B,GAAG,KAAK,OAAO;AAAA,IAChB,CAAC;AAAA,EACF;AAMD;AAGO,MAAe,qBAIZ,OAA+D;AAAA,EAGxE,YACmB,OAClB,QACC;AACD,QAAI,CAAC,OAAO,YAAY;AACvB,aAAO,aAAa,cAAc,OAAO,CAAC,OAAO,IAAI,CAAC;AAAA,IACvD;AACA,UAAM,OAAO,MAAM;AAND;AAAA,EAOnB;AAAA,EAVA,QAA0B,UAAU,IAAY;AAWjD;","names":["ref","actions"]}
|
|
@@ -37,7 +37,10 @@ class SQLiteTextBuilder extends import_common.SQLiteColumnBuilder {
|
|
|
37
37
|
}
|
|
38
38
|
/** @internal */
|
|
39
39
|
build(table) {
|
|
40
|
-
return new SQLiteText(
|
|
40
|
+
return new SQLiteText(
|
|
41
|
+
table,
|
|
42
|
+
this.config
|
|
43
|
+
);
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
class SQLiteText extends import_common.SQLiteColumn {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sqlite-core/columns/text.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial
|
|
1
|
+
{"version":3,"sources":["../../../src/sqlite-core/columns/text.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial<\n\tTName extends string,\n\tTEnum extends [string, ...string[]],\n\tTLength extends number | undefined,\n> = SQLiteTextBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteText';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n\tlength: TLength;\n}>;\n\nexport class SQLiteTextBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'SQLiteText'> & { length?: number | undefined },\n> extends SQLiteColumnBuilder<\n\tT,\n\t{ length: T['length']; enumValues: T['enumValues'] },\n\t{ length: T['length'] }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTextBuilder';\n\n\tconstructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues'], T['length']>) {\n\t\tsuper(name, 'string', 'SQLiteText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.length = config.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteText<MakeColumnConfig<T, TTableName> & { length: T['length'] }> {\n\t\treturn new SQLiteText<MakeColumnConfig<T, TTableName> & { length: T['length'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'> & { length?: number | undefined }>\n\textends SQLiteColumn<T, { length: T['length']; enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly length: T['length'] = this.config.length;\n\n\tconstructor(\n\t\ttable: AnySQLiteTable<{ name: T['tableName'] }>,\n\t\tconfig: SQLiteTextBuilder<T>['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `text${this.config.length ? `(${this.config.length})` : ''}`;\n\t}\n}\n\nexport type SQLiteTextJsonBuilderInitial<TName extends string> = SQLiteTextJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteTextJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n\tgenerated: undefined;\n}>;\n\nexport class SQLiteTextJsonBuilder<T extends ColumnBuilderBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteTextJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteTextJson');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTextJson<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteTextJson<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTextJson'>>\n\textends SQLiteColumn<T, { length: number | undefined; enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteTextJson';\n\n\tgetSQLType(): string {\n\t\treturn 'text';\n\t}\n\n\toverride mapFromDriverValue(value: string): T['data'] {\n\t\treturn JSON.parse(value);\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport type SQLiteTextConfig<\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n\tTEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined,\n\tTLength extends number | undefined = number | undefined,\n> = TMode extends 'text' ? {\n\t\tmode?: TMode;\n\t\tlength?: TLength;\n\t\tenum?: TEnum;\n\t}\n\t: {\n\t\tmode?: TMode;\n\t};\n\nexport function text(): SQLiteTextBuilderInitial<'', [string, ...string[]], undefined>;\nexport function text<\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tL extends number | undefined,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tconfig?: SQLiteTextConfig<TMode, T | Writable<T>, L>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<''>\n\t: SQLiteTextBuilderInitial<'', Writable<T>, L>;\nexport function text<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tL extends number | undefined,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tname: TName,\n\tconfig?: SQLiteTextConfig<TMode, T | Writable<T>, L>,\n): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName>\n\t: SQLiteTextBuilderInitial<TName, Writable<T>, L>;\nexport function text(a?: string | SQLiteTextConfig, b: SQLiteTextConfig = {}): any {\n\tconst { name, config } = getColumnNameAndConfig<SQLiteTextConfig>(a, b);\n\tif (config.mode === 'json') {\n\t\treturn new SQLiteTextJsonBuilder(name);\n\t}\n\treturn new SQLiteTextBuilder(name, config as any);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAkE;AAClE,oBAAkD;AAgB3C,MAAM,0BAEH,kCAIR;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAgE;AAC5F,UAAM,MAAM,UAAU,YAAY;AAClC,SAAK,OAAO,aAAa,OAAO;AAChC,SAAK,OAAO,SAAS,OAAO;AAAA,EAC7B;AAAA;AAAA,EAGS,MACR,OACwE;AACxE,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,mBACJ,2BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,SAAsB,KAAK,OAAO;AAAA,EAE3C,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO,OAAO,KAAK,OAAO,SAAS,IAAI,KAAK,OAAO,MAAM,MAAM,EAAE;AAAA,EAClE;AACD;AAYO,MAAM,8BACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,gBAAgB;AAAA,EACrC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,2BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA0B;AACrD,WAAO,KAAK,MAAM,KAAK;AAAA,EACxB;AAAA,EAES,iBAAiB,OAA0B;AACnD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACD;AAoCO,SAAS,KAAK,GAA+B,IAAsB,CAAC,GAAQ;AAClF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAyC,GAAG,CAAC;AACtE,MAAI,OAAO,SAAS,QAAQ;AAC3B,WAAO,IAAI,sBAAsB,IAAI;AAAA,EACtC;AACA,SAAO,IAAI,kBAAkB,MAAM,MAAa;AACjD;","names":[]}
|
|
@@ -4,28 +4,35 @@ import { entityKind } from "../../entity.cjs";
|
|
|
4
4
|
import type { AnySQLiteTable } from "../table.cjs";
|
|
5
5
|
import { type Equal, type Writable } from "../../utils.cjs";
|
|
6
6
|
import { SQLiteColumn, SQLiteColumnBuilder } from "./common.cjs";
|
|
7
|
-
export type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{
|
|
7
|
+
export type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]], TLength extends number | undefined> = SQLiteTextBuilder<{
|
|
8
8
|
name: TName;
|
|
9
9
|
dataType: 'string';
|
|
10
10
|
columnType: 'SQLiteText';
|
|
11
11
|
data: TEnum[number];
|
|
12
12
|
driverParam: string;
|
|
13
13
|
enumValues: TEnum;
|
|
14
|
+
length: TLength;
|
|
14
15
|
}>;
|
|
15
|
-
export declare class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'
|
|
16
|
-
length
|
|
16
|
+
export declare class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'> & {
|
|
17
|
+
length?: number | undefined;
|
|
18
|
+
}> extends SQLiteColumnBuilder<T, {
|
|
19
|
+
length: T['length'];
|
|
17
20
|
enumValues: T['enumValues'];
|
|
21
|
+
}, {
|
|
22
|
+
length: T['length'];
|
|
18
23
|
}> {
|
|
19
24
|
static readonly [entityKind]: string;
|
|
20
|
-
constructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>);
|
|
25
|
+
constructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues'], T['length']>);
|
|
21
26
|
}
|
|
22
|
-
export declare class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'
|
|
23
|
-
length
|
|
27
|
+
export declare class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'> & {
|
|
28
|
+
length?: number | undefined;
|
|
29
|
+
}> extends SQLiteColumn<T, {
|
|
30
|
+
length: T['length'];
|
|
24
31
|
enumValues: T['enumValues'];
|
|
25
32
|
}> {
|
|
26
33
|
static readonly [entityKind]: string;
|
|
27
34
|
readonly enumValues: T["enumValues"];
|
|
28
|
-
readonly length:
|
|
35
|
+
readonly length: T['length'];
|
|
29
36
|
constructor(table: AnySQLiteTable<{
|
|
30
37
|
name: T['tableName'];
|
|
31
38
|
}>, config: SQLiteTextBuilder<T>['config']);
|
|
@@ -53,13 +60,13 @@ export declare class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTe
|
|
|
53
60
|
mapFromDriverValue(value: string): T['data'];
|
|
54
61
|
mapToDriverValue(value: T['data']): string;
|
|
55
62
|
}
|
|
56
|
-
export type SQLiteTextConfig<TMode extends 'text' | 'json' = 'text' | 'json', TEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined> = TMode extends 'text' ? {
|
|
63
|
+
export type SQLiteTextConfig<TMode extends 'text' | 'json' = 'text' | 'json', TEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined, TLength extends number | undefined = number | undefined> = TMode extends 'text' ? {
|
|
57
64
|
mode?: TMode;
|
|
58
|
-
length?:
|
|
65
|
+
length?: TLength;
|
|
59
66
|
enum?: TEnum;
|
|
60
67
|
} : {
|
|
61
68
|
mode?: TMode;
|
|
62
69
|
};
|
|
63
|
-
export declare function text(): SQLiteTextBuilderInitial<'', [string, ...string[]]>;
|
|
64
|
-
export declare function text<U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(config?: SQLiteTextConfig<TMode, T | Writable<T
|
|
65
|
-
export declare function text<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(name: TName, config?: SQLiteTextConfig<TMode, T | Writable<T
|
|
70
|
+
export declare function text(): SQLiteTextBuilderInitial<'', [string, ...string[]], undefined>;
|
|
71
|
+
export declare function text<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined, TMode extends 'text' | 'json' = 'text' | 'json'>(config?: SQLiteTextConfig<TMode, T | Writable<T>, L>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<''> : SQLiteTextBuilderInitial<'', Writable<T>, L>;
|
|
72
|
+
export declare function text<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined, TMode extends 'text' | 'json' = 'text' | 'json'>(name: TName, config?: SQLiteTextConfig<TMode, T | Writable<T>, L>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName> : SQLiteTextBuilderInitial<TName, Writable<T>, L>;
|
|
@@ -4,28 +4,35 @@ import { entityKind } from "../../entity.js";
|
|
|
4
4
|
import type { AnySQLiteTable } from "../table.js";
|
|
5
5
|
import { type Equal, type Writable } from "../../utils.js";
|
|
6
6
|
import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js";
|
|
7
|
-
export type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]]> = SQLiteTextBuilder<{
|
|
7
|
+
export type SQLiteTextBuilderInitial<TName extends string, TEnum extends [string, ...string[]], TLength extends number | undefined> = SQLiteTextBuilder<{
|
|
8
8
|
name: TName;
|
|
9
9
|
dataType: 'string';
|
|
10
10
|
columnType: 'SQLiteText';
|
|
11
11
|
data: TEnum[number];
|
|
12
12
|
driverParam: string;
|
|
13
13
|
enumValues: TEnum;
|
|
14
|
+
length: TLength;
|
|
14
15
|
}>;
|
|
15
|
-
export declare class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'
|
|
16
|
-
length
|
|
16
|
+
export declare class SQLiteTextBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteText'> & {
|
|
17
|
+
length?: number | undefined;
|
|
18
|
+
}> extends SQLiteColumnBuilder<T, {
|
|
19
|
+
length: T['length'];
|
|
17
20
|
enumValues: T['enumValues'];
|
|
21
|
+
}, {
|
|
22
|
+
length: T['length'];
|
|
18
23
|
}> {
|
|
19
24
|
static readonly [entityKind]: string;
|
|
20
|
-
constructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>);
|
|
25
|
+
constructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues'], T['length']>);
|
|
21
26
|
}
|
|
22
|
-
export declare class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'
|
|
23
|
-
length
|
|
27
|
+
export declare class SQLiteText<T extends ColumnBaseConfig<'string', 'SQLiteText'> & {
|
|
28
|
+
length?: number | undefined;
|
|
29
|
+
}> extends SQLiteColumn<T, {
|
|
30
|
+
length: T['length'];
|
|
24
31
|
enumValues: T['enumValues'];
|
|
25
32
|
}> {
|
|
26
33
|
static readonly [entityKind]: string;
|
|
27
34
|
readonly enumValues: T["enumValues"];
|
|
28
|
-
readonly length:
|
|
35
|
+
readonly length: T['length'];
|
|
29
36
|
constructor(table: AnySQLiteTable<{
|
|
30
37
|
name: T['tableName'];
|
|
31
38
|
}>, config: SQLiteTextBuilder<T>['config']);
|
|
@@ -53,13 +60,13 @@ export declare class SQLiteTextJson<T extends ColumnBaseConfig<'json', 'SQLiteTe
|
|
|
53
60
|
mapFromDriverValue(value: string): T['data'];
|
|
54
61
|
mapToDriverValue(value: T['data']): string;
|
|
55
62
|
}
|
|
56
|
-
export type SQLiteTextConfig<TMode extends 'text' | 'json' = 'text' | 'json', TEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined> = TMode extends 'text' ? {
|
|
63
|
+
export type SQLiteTextConfig<TMode extends 'text' | 'json' = 'text' | 'json', TEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined, TLength extends number | undefined = number | undefined> = TMode extends 'text' ? {
|
|
57
64
|
mode?: TMode;
|
|
58
|
-
length?:
|
|
65
|
+
length?: TLength;
|
|
59
66
|
enum?: TEnum;
|
|
60
67
|
} : {
|
|
61
68
|
mode?: TMode;
|
|
62
69
|
};
|
|
63
|
-
export declare function text(): SQLiteTextBuilderInitial<'', [string, ...string[]]>;
|
|
64
|
-
export declare function text<U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(config?: SQLiteTextConfig<TMode, T | Writable<T
|
|
65
|
-
export declare function text<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, TMode extends 'text' | 'json' = 'text' | 'json'>(name: TName, config?: SQLiteTextConfig<TMode, T | Writable<T
|
|
70
|
+
export declare function text(): SQLiteTextBuilderInitial<'', [string, ...string[]], undefined>;
|
|
71
|
+
export declare function text<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined, TMode extends 'text' | 'json' = 'text' | 'json'>(config?: SQLiteTextConfig<TMode, T | Writable<T>, L>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<''> : SQLiteTextBuilderInitial<'', Writable<T>, L>;
|
|
72
|
+
export declare function text<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined, TMode extends 'text' | 'json' = 'text' | 'json'>(name: TName, config?: SQLiteTextConfig<TMode, T | Writable<T>, L>): Equal<TMode, 'json'> extends true ? SQLiteTextJsonBuilderInitial<TName> : SQLiteTextBuilderInitial<TName, Writable<T>, L>;
|