drizzle-orm 1.0.0-beta.2-4e5ecef → 1.0.0-beta.2-84ab15f
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/cockroach-core/columns/date.cjs +5 -0
- package/cockroach-core/columns/date.cjs.map +1 -1
- package/cockroach-core/columns/date.d.cts +2 -1
- package/cockroach-core/columns/date.d.ts +2 -1
- package/cockroach-core/columns/date.js +5 -0
- package/cockroach-core/columns/date.js.map +1 -1
- package/cockroach-core/columns/timestamp.cjs +5 -0
- package/cockroach-core/columns/timestamp.cjs.map +1 -1
- package/cockroach-core/columns/timestamp.d.cts +2 -1
- package/cockroach-core/columns/timestamp.d.ts +2 -1
- package/cockroach-core/columns/timestamp.js +5 -0
- package/cockroach-core/columns/timestamp.js.map +1 -1
- package/gel-core/query-builders/query.cjs +4 -2
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.js +4 -2
- package/gel-core/query-builders/query.js.map +1 -1
- package/mysql-core/columns/datetime.cjs +5 -0
- package/mysql-core/columns/datetime.cjs.map +1 -1
- package/mysql-core/columns/datetime.d.cts +2 -1
- package/mysql-core/columns/datetime.d.ts +2 -1
- package/mysql-core/columns/datetime.js +5 -0
- package/mysql-core/columns/datetime.js.map +1 -1
- package/mysql-core/columns/timestamp.cjs +5 -0
- package/mysql-core/columns/timestamp.cjs.map +1 -1
- package/mysql-core/columns/timestamp.d.cts +2 -1
- package/mysql-core/columns/timestamp.d.ts +2 -1
- package/mysql-core/columns/timestamp.js +5 -0
- package/mysql-core/columns/timestamp.js.map +1 -1
- package/node-postgres/session.cjs +9 -5
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.js +9 -5
- package/node-postgres/session.js.map +1 -1
- package/package.json +49 -49
- package/pg-core/columns/date.cjs +5 -0
- package/pg-core/columns/date.cjs.map +1 -1
- package/pg-core/columns/date.d.cts +2 -1
- package/pg-core/columns/date.d.ts +2 -1
- package/pg-core/columns/date.js +5 -0
- package/pg-core/columns/date.js.map +1 -1
- package/pg-core/columns/timestamp.cjs +7 -2
- package/pg-core/columns/timestamp.cjs.map +1 -1
- package/pg-core/columns/timestamp.d.cts +2 -1
- package/pg-core/columns/timestamp.d.ts +2 -1
- package/pg-core/columns/timestamp.js +7 -2
- package/pg-core/columns/timestamp.js.map +1 -1
- package/relations.cjs.map +1 -1
- package/relations.js.map +1 -1
- package/singlestore-core/columns/datetime.cjs +5 -0
- package/singlestore-core/columns/datetime.cjs.map +1 -1
- package/singlestore-core/columns/datetime.d.cts +2 -1
- package/singlestore-core/columns/datetime.d.ts +2 -1
- package/singlestore-core/columns/datetime.js +5 -0
- package/singlestore-core/columns/datetime.js.map +1 -1
- package/singlestore-core/columns/timestamp.cjs +5 -0
- package/singlestore-core/columns/timestamp.cjs.map +1 -1
- package/singlestore-core/columns/timestamp.d.cts +2 -1
- package/singlestore-core/columns/timestamp.d.ts +2 -1
- package/singlestore-core/columns/timestamp.js +5 -0
- package/singlestore-core/columns/timestamp.js.map +1 -1
- package/sqlite-core/columns/integer.cjs +1 -0
- package/sqlite-core/columns/integer.cjs.map +1 -1
- package/sqlite-core/columns/integer.d.cts +1 -1
- package/sqlite-core/columns/integer.d.ts +1 -1
- package/sqlite-core/columns/integer.js +1 -0
- package/sqlite-core/columns/integer.js.map +1 -1
- package/vercel-postgres/session.cjs +2 -2
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.js +2 -2
- package/vercel-postgres/session.js.map +1 -1
|
@@ -51,6 +51,7 @@ class CockroachDate extends import_common.CockroachColumn {
|
|
|
51
51
|
return new Date(value);
|
|
52
52
|
}
|
|
53
53
|
mapToDriverValue(value) {
|
|
54
|
+
if (typeof value === "string") return value;
|
|
54
55
|
return value.toISOString();
|
|
55
56
|
}
|
|
56
57
|
}
|
|
@@ -72,6 +73,10 @@ class CockroachDateString extends import_common.CockroachColumn {
|
|
|
72
73
|
getSQLType() {
|
|
73
74
|
return "date";
|
|
74
75
|
}
|
|
76
|
+
mapToDriverValue(value) {
|
|
77
|
+
if (typeof value === "string") return value;
|
|
78
|
+
return value.toISOString();
|
|
79
|
+
}
|
|
75
80
|
}
|
|
76
81
|
function date(a, b) {
|
|
77
82
|
const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cockroach-core/columns/date.ts"],"sourcesContent":["import type { AnyCockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachDateBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'CockroachDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDate(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDate<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date): string {\n\t\treturn value.toISOString();\n\t}\n}\n\nexport class CockroachDateStringBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'CockroachDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDateString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDateString<T extends ColumnBaseConfig<'string date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n}\n\nexport interface CockroachDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder : CockroachDateStringBuilder;\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder\n\t: CockroachDateStringBuilder;\nexport function date(a?: string | CockroachDateConfig, b?: CockroachDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new CockroachDateBuilder(name);\n\t}\n\treturn new CockroachDateStringBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,mBAAmD;AACnD,oBAAgC;AAChC,yBAA+C;AAExC,MAAM,6BAA6B,kDAIvC;AAAA,EACF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,eAAe;AAAA,EAC3C;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAAiE,8BAAmB;AAAA,EAChG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AAAA,EAES,iBAAiB,
|
|
1
|
+
{"version":3,"sources":["../../../src/cockroach-core/columns/date.ts"],"sourcesContent":["import type { AnyCockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachDateBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'CockroachDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDate(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDate<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t}\n}\n\nexport class CockroachDateStringBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'CockroachDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDateString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDateString<T extends ColumnBaseConfig<'string date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t}\n}\n\nexport interface CockroachDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder : CockroachDateStringBuilder;\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder\n\t: CockroachDateStringBuilder;\nexport function date(a?: string | CockroachDateConfig, b?: CockroachDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new CockroachDateBuilder(name);\n\t}\n\treturn new CockroachDateStringBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,mBAAmD;AACnD,oBAAgC;AAChC,yBAA+C;AAExC,MAAM,6BAA6B,kDAIvC;AAAA,EACF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,eAAe;AAAA,EAC3C;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAAiE,8BAAmB;AAAA,EAChG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,mCAAmC,kDAI7C;AAAA,EACF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,8BAAmB;AAAA,EACtG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAcO,SAAS,KAAK,GAAkC,GAAyB;AAC/E,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA4C,GAAG,CAAC;AACzE,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,qBAAqB,IAAI;AAAA,EACrC;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
|
|
@@ -15,7 +15,7 @@ export declare class CockroachDate<T extends ColumnBaseConfig<'object date'>> ex
|
|
|
15
15
|
static readonly [entityKind]: string;
|
|
16
16
|
getSQLType(): string;
|
|
17
17
|
mapFromDriverValue(value: string): Date;
|
|
18
|
-
mapToDriverValue(value: Date): string;
|
|
18
|
+
mapToDriverValue(value: Date | string): string;
|
|
19
19
|
}
|
|
20
20
|
export declare class CockroachDateStringBuilder extends CockroachDateColumnBaseBuilder<{
|
|
21
21
|
dataType: 'string date';
|
|
@@ -28,6 +28,7 @@ export declare class CockroachDateStringBuilder extends CockroachDateColumnBaseB
|
|
|
28
28
|
export declare class CockroachDateString<T extends ColumnBaseConfig<'string date'>> extends CockroachColumn<T> {
|
|
29
29
|
static readonly [entityKind]: string;
|
|
30
30
|
getSQLType(): string;
|
|
31
|
+
mapToDriverValue(value: Date | string): string;
|
|
31
32
|
}
|
|
32
33
|
export interface CockroachDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {
|
|
33
34
|
mode: T;
|
|
@@ -15,7 +15,7 @@ export declare class CockroachDate<T extends ColumnBaseConfig<'object date'>> ex
|
|
|
15
15
|
static readonly [entityKind]: string;
|
|
16
16
|
getSQLType(): string;
|
|
17
17
|
mapFromDriverValue(value: string): Date;
|
|
18
|
-
mapToDriverValue(value: Date): string;
|
|
18
|
+
mapToDriverValue(value: Date | string): string;
|
|
19
19
|
}
|
|
20
20
|
export declare class CockroachDateStringBuilder extends CockroachDateColumnBaseBuilder<{
|
|
21
21
|
dataType: 'string date';
|
|
@@ -28,6 +28,7 @@ export declare class CockroachDateStringBuilder extends CockroachDateColumnBaseB
|
|
|
28
28
|
export declare class CockroachDateString<T extends ColumnBaseConfig<'string date'>> extends CockroachColumn<T> {
|
|
29
29
|
static readonly [entityKind]: string;
|
|
30
30
|
getSQLType(): string;
|
|
31
|
+
mapToDriverValue(value: Date | string): string;
|
|
31
32
|
}
|
|
32
33
|
export interface CockroachDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {
|
|
33
34
|
mode: T;
|
|
@@ -24,6 +24,7 @@ class CockroachDate extends CockroachColumn {
|
|
|
24
24
|
return new Date(value);
|
|
25
25
|
}
|
|
26
26
|
mapToDriverValue(value) {
|
|
27
|
+
if (typeof value === "string") return value;
|
|
27
28
|
return value.toISOString();
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -45,6 +46,10 @@ class CockroachDateString extends CockroachColumn {
|
|
|
45
46
|
getSQLType() {
|
|
46
47
|
return "date";
|
|
47
48
|
}
|
|
49
|
+
mapToDriverValue(value) {
|
|
50
|
+
if (typeof value === "string") return value;
|
|
51
|
+
return value.toISOString();
|
|
52
|
+
}
|
|
48
53
|
}
|
|
49
54
|
function date(a, b) {
|
|
50
55
|
const { name, config } = getColumnNameAndConfig(a, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cockroach-core/columns/date.ts"],"sourcesContent":["import type { AnyCockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachDateBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'CockroachDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDate(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDate<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date): string {\n\t\treturn value.toISOString();\n\t}\n}\n\nexport class CockroachDateStringBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'CockroachDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDateString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDateString<T extends ColumnBaseConfig<'string date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n}\n\nexport interface CockroachDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder : CockroachDateStringBuilder;\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder\n\t: CockroachDateStringBuilder;\nexport function date(a?: string | CockroachDateConfig, b?: CockroachDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new CockroachDateBuilder(name);\n\t}\n\treturn new CockroachDateStringBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAqB,8BAA8B;AACnD,SAAS,uBAAuB;AAChC,SAAS,sCAAsC;AAExC,MAAM,6BAA6B,+BAIvC;AAAA,EACF,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,eAAe;AAAA,EAC3C;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAAiE,gBAAmB;AAAA,EAChG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AAAA,EAES,iBAAiB,
|
|
1
|
+
{"version":3,"sources":["../../../src/cockroach-core/columns/date.ts"],"sourcesContent":["import type { AnyCockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachDateBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'CockroachDate');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDate(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDate<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t}\n}\n\nexport class CockroachDateStringBuilder extends CockroachDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'CockroachDateString');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachDateString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachDateString<T extends ColumnBaseConfig<'string date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t}\n}\n\nexport interface CockroachDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder : CockroachDateStringBuilder;\nexport function date<TMode extends CockroachDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? CockroachDateBuilder\n\t: CockroachDateStringBuilder;\nexport function date(a?: string | CockroachDateConfig, b?: CockroachDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new CockroachDateBuilder(name);\n\t}\n\treturn new CockroachDateStringBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAqB,8BAA8B;AACnD,SAAS,uBAAuB;AAChC,SAAS,sCAAsC;AAExC,MAAM,6BAA6B,+BAIvC;AAAA,EACF,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,eAAe;AAAA,EAC3C;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAAiE,gBAAmB;AAAA,EAChG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,IAAI,KAAK,KAAK;AAAA,EACtB;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,mCAAmC,+BAI7C;AAAA,EACF,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,gBAAmB;AAAA,EACtG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAcO,SAAS,KAAK,GAAkC,GAAyB;AAC/E,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA4C,GAAG,CAAC;AACzE,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,qBAAqB,IAAI;AAAA,EACrC;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
|
|
@@ -61,6 +61,7 @@ class CockroachTimestamp extends import_common.CockroachColumn {
|
|
|
61
61
|
return new Date(this.withTimezone ? value : value + "+0000");
|
|
62
62
|
};
|
|
63
63
|
mapToDriverValue = (value) => {
|
|
64
|
+
if (typeof value === "string") return value;
|
|
64
65
|
return value.toISOString();
|
|
65
66
|
};
|
|
66
67
|
}
|
|
@@ -92,6 +93,10 @@ class CockroachTimestampString extends import_common.CockroachColumn {
|
|
|
92
93
|
const precision = this.precision === void 0 ? "" : `(${this.precision})`;
|
|
93
94
|
return `timestamp${this.withTimezone ? "tz" : ""}${precision}`;
|
|
94
95
|
}
|
|
96
|
+
mapToDriverValue = (value) => {
|
|
97
|
+
if (typeof value === "string") return value;
|
|
98
|
+
return value.toISOString();
|
|
99
|
+
};
|
|
95
100
|
}
|
|
96
101
|
function timestamp(a, b = {}) {
|
|
97
102
|
const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cockroach-core/columns/timestamp.ts"],"sourcesContent":["import type { AnyCockroachTable, CockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachTimestampBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'object date';\n\t\tdata: Date;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'object date', 'CockroachTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestamp(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestamp<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: CockroachTable<any>, config: CockroachTimestampBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n\n\toverride mapFromDriverValue = (value: string): Date | null => {\n\t\treturn new Date(this.withTimezone ? value : value + '+0000');\n\t};\n\n\toverride mapToDriverValue = (value: Date): string => {\n\t\treturn value.toISOString();\n\t};\n}\n\nexport class CockroachTimestampStringBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'string timestamp';\n\t\tdata: string;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampStringBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'string timestamp', 'CockroachTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestampString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(\n\t\ttable: CockroachTable<any>,\n\t\tconfig: CockroachTimestampStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface CockroachTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp(a?: string | CockroachTimestampConfig, b: CockroachTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new CockroachTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new CockroachTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,mBAAmD;AACnD,oBAAgC;AAChC,yBAA+C;AAExC,MAAM,kCAAkC,kDAO7C;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,cAAuB,WAA+B;AAC/E,UAAM,MAAM,eAAe,oBAAoB;AAC/C,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BAAsE,8BAAmB;AAAA,EACrG,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAA4B,QAA6C;AACpF,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,IAAI,KAAK,SAAS;AACxE,WAAO,YAAY,KAAK,eAAe,OAAO,EAAE,GAAG,SAAS;AAAA,EAC7D;AAAA,EAES,qBAAqB,CAAC,UAA+B;AAC7D,WAAO,IAAI,KAAK,KAAK,eAAe,QAAQ,QAAQ,OAAO;AAAA,EAC5D;AAAA,EAES,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/cockroach-core/columns/timestamp.ts"],"sourcesContent":["import type { AnyCockroachTable, CockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachTimestampBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'object date';\n\t\tdata: Date;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'object date', 'CockroachTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestamp(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestamp<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: CockroachTable<any>, config: CockroachTimestampBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n\n\toverride mapFromDriverValue = (value: string): Date | null => {\n\t\treturn new Date(this.withTimezone ? value : value + '+0000');\n\t};\n\n\toverride mapToDriverValue = (value: Date | string): string => {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t};\n}\n\nexport class CockroachTimestampStringBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'string timestamp';\n\t\tdata: string;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampStringBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'string timestamp', 'CockroachTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestampString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(\n\t\ttable: CockroachTable<any>,\n\t\tconfig: CockroachTimestampStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n\n\toverride mapToDriverValue = (value: Date | string): string => {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t};\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface CockroachTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp(a?: string | CockroachTimestampConfig, b: CockroachTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new CockroachTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new CockroachTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAC3B,mBAAmD;AACnD,oBAAgC;AAChC,yBAA+C;AAExC,MAAM,kCAAkC,kDAO7C;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,cAAuB,WAA+B;AAC/E,UAAM,MAAM,eAAe,oBAAoB;AAC/C,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BAAsE,8BAAmB;AAAA,EACrG,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAA4B,QAA6C;AACpF,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,IAAI,KAAK,SAAS;AACxE,WAAO,YAAY,KAAK,eAAe,OAAO,EAAE,GAAG,SAAS;AAAA,EAC7D;AAAA,EAES,qBAAqB,CAAC,UAA+B;AAC7D,WAAO,IAAI,KAAK,KAAK,eAAe,QAAQ,QAAQ,OAAO;AAAA,EAC5D;AAAA,EAES,mBAAmB,CAAC,UAAiC;AAC7D,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,wCAAwC,kDAOnD;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,cAAuB,WAA+B;AAC/E,UAAM,MAAM,oBAAoB,0BAA0B;AAC1D,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,iCAAiF,8BAAmB;AAAA,EAChH,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,IAAI,KAAK,SAAS;AACxE,WAAO,YAAY,KAAK,eAAe,OAAO,EAAE,GAAG,SAAS;AAAA,EAC7D;AAAA,EAES,mBAAmB,CAAC,UAAiC;AAC7D,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAmBO,SAAS,UAAU,GAAuC,IAA8B,CAAC,GAAG;AAClG,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA6D,GAAG,CAAC;AAC1F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,gCAAgC,MAAM,OAAO,gBAAgB,OAAO,OAAO,SAAS;AAAA,EAChG;AACA,SAAO,IAAI,0BAA0B,MAAM,QAAQ,gBAAgB,OAAO,QAAQ,SAAS;AAC5F;","names":[]}
|
|
@@ -22,7 +22,7 @@ export declare class CockroachTimestamp<T extends ColumnBaseConfig<'object date'
|
|
|
22
22
|
constructor(table: CockroachTable<any>, config: CockroachTimestampBuilder['config']);
|
|
23
23
|
getSQLType(): string;
|
|
24
24
|
mapFromDriverValue: (value: string) => Date | null;
|
|
25
|
-
mapToDriverValue: (value: Date) => string;
|
|
25
|
+
mapToDriverValue: (value: Date | string) => string;
|
|
26
26
|
}
|
|
27
27
|
export declare class CockroachTimestampStringBuilder extends CockroachDateColumnBaseBuilder<{
|
|
28
28
|
dataType: 'string timestamp';
|
|
@@ -41,6 +41,7 @@ export declare class CockroachTimestampString<T extends ColumnBaseConfig<'string
|
|
|
41
41
|
readonly precision: number | undefined;
|
|
42
42
|
constructor(table: CockroachTable<any>, config: CockroachTimestampStringBuilder['config']);
|
|
43
43
|
getSQLType(): string;
|
|
44
|
+
mapToDriverValue: (value: Date | string) => string;
|
|
44
45
|
}
|
|
45
46
|
export type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
46
47
|
export interface CockroachTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
|
|
@@ -22,7 +22,7 @@ export declare class CockroachTimestamp<T extends ColumnBaseConfig<'object date'
|
|
|
22
22
|
constructor(table: CockroachTable<any>, config: CockroachTimestampBuilder['config']);
|
|
23
23
|
getSQLType(): string;
|
|
24
24
|
mapFromDriverValue: (value: string) => Date | null;
|
|
25
|
-
mapToDriverValue: (value: Date) => string;
|
|
25
|
+
mapToDriverValue: (value: Date | string) => string;
|
|
26
26
|
}
|
|
27
27
|
export declare class CockroachTimestampStringBuilder extends CockroachDateColumnBaseBuilder<{
|
|
28
28
|
dataType: 'string timestamp';
|
|
@@ -41,6 +41,7 @@ export declare class CockroachTimestampString<T extends ColumnBaseConfig<'string
|
|
|
41
41
|
readonly precision: number | undefined;
|
|
42
42
|
constructor(table: CockroachTable<any>, config: CockroachTimestampStringBuilder['config']);
|
|
43
43
|
getSQLType(): string;
|
|
44
|
+
mapToDriverValue: (value: Date | string) => string;
|
|
44
45
|
}
|
|
45
46
|
export type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
46
47
|
export interface CockroachTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
|
|
@@ -34,6 +34,7 @@ class CockroachTimestamp extends CockroachColumn {
|
|
|
34
34
|
return new Date(this.withTimezone ? value : value + "+0000");
|
|
35
35
|
};
|
|
36
36
|
mapToDriverValue = (value) => {
|
|
37
|
+
if (typeof value === "string") return value;
|
|
37
38
|
return value.toISOString();
|
|
38
39
|
};
|
|
39
40
|
}
|
|
@@ -65,6 +66,10 @@ class CockroachTimestampString extends CockroachColumn {
|
|
|
65
66
|
const precision = this.precision === void 0 ? "" : `(${this.precision})`;
|
|
66
67
|
return `timestamp${this.withTimezone ? "tz" : ""}${precision}`;
|
|
67
68
|
}
|
|
69
|
+
mapToDriverValue = (value) => {
|
|
70
|
+
if (typeof value === "string") return value;
|
|
71
|
+
return value.toISOString();
|
|
72
|
+
};
|
|
68
73
|
}
|
|
69
74
|
function timestamp(a, b = {}) {
|
|
70
75
|
const { name, config } = getColumnNameAndConfig(a, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cockroach-core/columns/timestamp.ts"],"sourcesContent":["import type { AnyCockroachTable, CockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachTimestampBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'object date';\n\t\tdata: Date;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'object date', 'CockroachTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestamp(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestamp<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: CockroachTable<any>, config: CockroachTimestampBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n\n\toverride mapFromDriverValue = (value: string): Date | null => {\n\t\treturn new Date(this.withTimezone ? value : value + '+0000');\n\t};\n\n\toverride mapToDriverValue = (value: Date): string => {\n\t\treturn value.toISOString();\n\t};\n}\n\nexport class CockroachTimestampStringBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'string timestamp';\n\t\tdata: string;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampStringBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'string timestamp', 'CockroachTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestampString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(\n\t\ttable: CockroachTable<any>,\n\t\tconfig: CockroachTimestampStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface CockroachTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp(a?: string | CockroachTimestampConfig, b: CockroachTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new CockroachTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new CockroachTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAqB,8BAA8B;AACnD,SAAS,uBAAuB;AAChC,SAAS,sCAAsC;AAExC,MAAM,kCAAkC,+BAO7C;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,cAAuB,WAA+B;AAC/E,UAAM,MAAM,eAAe,oBAAoB;AAC/C,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BAAsE,gBAAmB;AAAA,EACrG,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAA4B,QAA6C;AACpF,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,IAAI,KAAK,SAAS;AACxE,WAAO,YAAY,KAAK,eAAe,OAAO,EAAE,GAAG,SAAS;AAAA,EAC7D;AAAA,EAES,qBAAqB,CAAC,UAA+B;AAC7D,WAAO,IAAI,KAAK,KAAK,eAAe,QAAQ,QAAQ,OAAO;AAAA,EAC5D;AAAA,EAES,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/cockroach-core/columns/timestamp.ts"],"sourcesContent":["import type { AnyCockroachTable, CockroachTable } from '~/cockroach-core/table.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { CockroachColumn } from './common.ts';\nimport { CockroachDateColumnBaseBuilder } from './date.common.ts';\n\nexport class CockroachTimestampBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'object date';\n\t\tdata: Date;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'object date', 'CockroachTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestamp(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestamp<T extends ColumnBaseConfig<'object date'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: CockroachTable<any>, config: CockroachTimestampBuilder['config']) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n\n\toverride mapFromDriverValue = (value: string): Date | null => {\n\t\treturn new Date(this.withTimezone ? value : value + '+0000');\n\t};\n\n\toverride mapToDriverValue = (value: Date | string): string => {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t};\n}\n\nexport class CockroachTimestampStringBuilder extends CockroachDateColumnBaseBuilder<\n\t{\n\t\tdataType: 'string timestamp';\n\t\tdata: string;\n\t\tdriverParam: string;\n\t},\n\t{ withTimezone: boolean; precision: number | undefined }\n> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampStringBuilder';\n\n\tconstructor(name: string, withTimezone: boolean, precision: number | undefined) {\n\t\tsuper(name, 'string timestamp', 'CockroachTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyCockroachTable<{ name: TTableName }>,\n\t) {\n\t\treturn new CockroachTimestampString(\n\t\t\ttable,\n\t\t\tthis.config,\n\t\t);\n\t}\n}\n\nexport class CockroachTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends CockroachColumn<T> {\n\tstatic override readonly [entityKind]: string = 'CockroachTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(\n\t\ttable: CockroachTable<any>,\n\t\tconfig: CockroachTimestampStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.withTimezone = config.withTimezone;\n\t\tthis.precision = config.precision;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.precision === undefined ? '' : `(${this.precision})`;\n\t\treturn `timestamp${this.withTimezone ? 'tz' : ''}${precision}`;\n\t}\n\n\toverride mapToDriverValue = (value: Date | string): string => {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString();\n\t};\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface CockroachTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp<TMode extends CockroachTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: CockroachTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? CockroachTimestampStringBuilder\n\t: CockroachTimestampBuilder;\nexport function timestamp(a?: string | CockroachTimestampConfig, b: CockroachTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<CockroachTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new CockroachTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new CockroachTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAC3B,SAAqB,8BAA8B;AACnD,SAAS,uBAAuB;AAChC,SAAS,sCAAsC;AAExC,MAAM,kCAAkC,+BAO7C;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,cAAuB,WAA+B;AAC/E,UAAM,MAAM,eAAe,oBAAoB;AAC/C,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BAAsE,gBAAmB;AAAA,EACrG,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAA4B,QAA6C;AACpF,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,IAAI,KAAK,SAAS;AACxE,WAAO,YAAY,KAAK,eAAe,OAAO,EAAE,GAAG,SAAS;AAAA,EAC7D;AAAA,EAES,qBAAqB,CAAC,UAA+B;AAC7D,WAAO,IAAI,KAAK,KAAK,eAAe,QAAQ,QAAQ,OAAO;AAAA,EAC5D;AAAA,EAES,mBAAmB,CAAC,UAAiC;AAC7D,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,wCAAwC,+BAOnD;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,cAAuB,WAA+B;AAC/E,UAAM,MAAM,oBAAoB,0BAA0B;AAC1D,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MACR,OACC;AACD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,iCAAiF,gBAAmB;AAAA,EAChH,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,IAAI,KAAK,SAAS;AACxE,WAAO,YAAY,KAAK,eAAe,OAAO,EAAE,GAAG,SAAS;AAAA,EAC7D;AAAA,EAES,mBAAmB,CAAC,UAAiC;AAC7D,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAmBO,SAAS,UAAU,GAAuC,IAA8B,CAAC,GAAG;AAClG,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA6D,GAAG,CAAC;AAC1F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,gCAAgC,MAAM,OAAO,gBAAgB,OAAO,OAAO,SAAS;AAAA,EAChG;AACA,SAAO,IAAI,0BAA0B,MAAM,QAAQ,gBAAgB,OAAO,QAAQ,SAAS;AAC5F;","names":[]}
|
|
@@ -78,8 +78,10 @@ class PgRelationalQuery extends import_query_promise.QueryPromise {
|
|
|
78
78
|
builtQuery,
|
|
79
79
|
void 0,
|
|
80
80
|
name,
|
|
81
|
-
(
|
|
82
|
-
const
|
|
81
|
+
(rows, mapColumnValue) => {
|
|
82
|
+
for (const row of rows) {
|
|
83
|
+
(0, import_relations.mapRelationalRow)(row, query.selection, mapColumnValue);
|
|
84
|
+
}
|
|
83
85
|
if (this.mode === "first") {
|
|
84
86
|
return rows[0];
|
|
85
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/gel-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { GelDialect } from '../dialect.ts';\nimport type { GelPreparedQuery, GelSession, PreparedQueryConfig } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'GelRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(
|
|
1
|
+
{"version":3,"sources":["../../../src/gel-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { GelDialect } from '../dialect.ts';\nimport type { GelPreparedQuery, GelSession, PreparedQueryConfig } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'GelRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(rows, mapColumnValue) => {\n\t\t\t\t\tfor (const row of rows) {\n\t\t\t\t\t\tmapRelationalRow(row, query.selection, mapColumnValue);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute();\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAGP,qBAAuB;AAMhB,MAAM,uBAGX;AAAA,EAGD,YACS,QACA,OACA,aACA,SACA,SACP;AALO;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EARH,QAAiB,wBAAU,IAAY;AAAA,EAUvC,SACC,QACmE;AACnE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC6E;AAC7E,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,0BAAmC,kCAEhD;AAAA,EAQC,YACS,QACA,OACA,aACA,SACA,SACA,QACA,MACP;AACD,UAAM;AARE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAjBA,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAoBhD,SAAS,MAA6E;AACrF,WAAO,sBAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,MAAM,mBAAmB;AACzB,qBAAW,OAAO,MAAM;AACvB,mDAAiB,KAAK,MAAM,WAAW,cAAc;AAAA,UACtD;AACA,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA4E;AACnF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAEQ;AAAA;AAAA,EAER,SAAS,OAAuB;AAC/B,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AAAA,EAES,UAA4B;AACpC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ;AAAA,IAChC,CAAC;AAAA,EACF;AACD;","names":[]}
|
|
@@ -56,8 +56,10 @@ class PgRelationalQuery extends QueryPromise {
|
|
|
56
56
|
builtQuery,
|
|
57
57
|
void 0,
|
|
58
58
|
name,
|
|
59
|
-
(
|
|
60
|
-
|
|
59
|
+
(rows, mapColumnValue) => {
|
|
60
|
+
for (const row of rows) {
|
|
61
|
+
mapRelationalRow(row, query.selection, mapColumnValue);
|
|
62
|
+
}
|
|
61
63
|
if (this.mode === "first") {
|
|
62
64
|
return rows[0];
|
|
63
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/gel-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { GelDialect } from '../dialect.ts';\nimport type { GelPreparedQuery, GelSession, PreparedQueryConfig } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'GelRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(
|
|
1
|
+
{"version":3,"sources":["../../../src/gel-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly, NeonAuthToken } from '~/utils.ts';\nimport type { GelDialect } from '../dialect.ts';\nimport type { GelPreparedQuery, GelSession, PreparedQueryConfig } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'GelRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate schema: TSchema,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TConfig extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'one', TSchema, TFields>>,\n\t): PgRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined> {\n\t\treturn new PgRelationalQuery(\n\t\t\tthis.schema,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class PgRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'pg'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelRelationalQueryV2';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'pg';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareRelationalQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\t(rows, mapColumnValue) => {\n\t\t\t\t\tfor (const row of rows) {\n\t\t\t\t\t\tmapRelationalRow(row, query.selection, mapColumnValue);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\tprivate authToken?: NeonAuthToken;\n\t/** @internal */\n\tsetToken(token?: NeonAuthToken) {\n\t\tthis.authToken = token;\n\t\treturn this;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute();\n\t\t});\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAGP,SAAS,cAAc;AAMhB,MAAM,uBAGX;AAAA,EAGD,YACS,QACA,OACA,aACA,SACA,SACP;AALO;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EARH,QAAiB,UAAU,IAAY;AAAA,EAUvC,SACC,QACmE;AACnE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC6E;AAC7E,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,0BAAmC,aAEhD;AAAA,EAQC,YACS,QACA,OACA,aACA,SACA,SACA,QACA,MACP;AACD,UAAM;AARE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAjBA,QAA0B,UAAU,IAAY;AAAA;AAAA,EAoBhD,SAAS,MAA6E;AACrF,WAAO,OAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,MAAM,mBAAmB;AACzB,qBAAW,OAAO,MAAM;AACvB,6BAAiB,KAAK,MAAM,WAAW,cAAc;AAAA,UACtD;AACA,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA4E;AACnF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAEQ;AAAA;AAAA,EAER,SAAS,OAAuB;AAC/B,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AAAA,EAES,UAA4B;AACpC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ;AAAA,IAChC,CAAC;AAAA,EACF;AACD;","names":[]}
|
|
@@ -54,6 +54,7 @@ class MySqlDateTime extends import_common.MySqlColumn {
|
|
|
54
54
|
return `datetime${precision}`;
|
|
55
55
|
}
|
|
56
56
|
mapToDriverValue(value) {
|
|
57
|
+
if (typeof value === "string") return value;
|
|
57
58
|
return value.toISOString().replace("T", " ").replace("Z", "");
|
|
58
59
|
}
|
|
59
60
|
mapFromDriverValue(value) {
|
|
@@ -90,6 +91,10 @@ class MySqlDateTimeString extends import_common.MySqlColumn {
|
|
|
90
91
|
if (typeof value === "string") return value;
|
|
91
92
|
return value.toISOString().slice(0, -5).replace("T", " ");
|
|
92
93
|
}
|
|
94
|
+
mapToDriverValue(value) {
|
|
95
|
+
if (typeof value === "string") return value;
|
|
96
|
+
return value.toISOString().replace("T", " ").replace("Z", "");
|
|
97
|
+
}
|
|
93
98
|
}
|
|
94
99
|
function datetime(a, b) {
|
|
95
100
|
const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport class MySqlDateTimeBuilder extends MySqlColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, MySqlDatetimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: string, config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'object date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'object date'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date):
|
|
1
|
+
{"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport class MySqlDateTimeBuilder extends MySqlColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, MySqlDatetimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: string, config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'object date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'object date'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string | Date): Date {\n\t\tif (typeof value === 'string') return new Date(value.replace(' ', 'T') + 'Z');\n\t\treturn value;\n\t}\n}\n\nexport class MySqlDateTimeStringBuilder extends MySqlColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, MySqlDatetimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeStringBuilder';\n\n\tconstructor(name: string, config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'string datetime', 'MySqlDateTimeString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeString';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().slice(0, -5).replace('T', ' ');\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n}\n\nexport type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tfsp?: DatetimeFsp;\n}\n\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilder : MySqlDateTimeBuilder;\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilder : MySqlDateTimeBuilder;\nexport function datetime(a?: string | MySqlDatetimeConfig, b?: MySqlDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateTimeStringBuilder(name, config);\n\t}\n\treturn new MySqlDateTimeBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAgD;AAEzC,MAAM,6BAA6B,iCAIlB;AAAA,EACvB,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,QAAyC;AAClE,UAAM,MAAM,eAAe,eAAe;AAC1C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MAAM,OAAmB;AACjC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAAiE,0BAAe;AAAA,EAC5F,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAC5E,WAAO;AAAA,EACR;AACD;AAEO,MAAM,mCAAmC,iCAIxB;AAAA,EACvB,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,QAAyC;AAClE,UAAM,MAAM,mBAAmB,qBAAqB;AACpD,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MAAM,OAAmB;AACjC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAA2E,0BAAe;AAAA,EACtG,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AACD;AAgBO,SAAS,SAAS,GAAkC,GAAyB;AACnF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAwD,GAAG,CAAC;AACrF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,2BAA2B,MAAM,MAAM;AAAA,EACnD;AACA,SAAO,IAAI,qBAAqB,MAAM,MAAM;AAC7C;","names":[]}
|
|
@@ -18,7 +18,7 @@ export declare class MySqlDateTime<T extends ColumnBaseConfig<'object date'>> ex
|
|
|
18
18
|
name: T['tableName'];
|
|
19
19
|
}>, config: MySqlDateTimeBuilder['config']);
|
|
20
20
|
getSQLType(): string;
|
|
21
|
-
mapToDriverValue(value: Date):
|
|
21
|
+
mapToDriverValue(value: Date | string): string;
|
|
22
22
|
mapFromDriverValue(value: string | Date): Date;
|
|
23
23
|
}
|
|
24
24
|
export declare class MySqlDateTimeStringBuilder extends MySqlColumnBuilder<{
|
|
@@ -37,6 +37,7 @@ export declare class MySqlDateTimeString<T extends ColumnBaseConfig<'string date
|
|
|
37
37
|
}>, config: MySqlDateTimeStringBuilder['config']);
|
|
38
38
|
getSQLType(): string;
|
|
39
39
|
mapFromDriverValue(value: Date | string): string;
|
|
40
|
+
mapToDriverValue(value: Date | string): string;
|
|
40
41
|
}
|
|
41
42
|
export type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
42
43
|
export interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
|
|
@@ -18,7 +18,7 @@ export declare class MySqlDateTime<T extends ColumnBaseConfig<'object date'>> ex
|
|
|
18
18
|
name: T['tableName'];
|
|
19
19
|
}>, config: MySqlDateTimeBuilder['config']);
|
|
20
20
|
getSQLType(): string;
|
|
21
|
-
mapToDriverValue(value: Date):
|
|
21
|
+
mapToDriverValue(value: Date | string): string;
|
|
22
22
|
mapFromDriverValue(value: string | Date): Date;
|
|
23
23
|
}
|
|
24
24
|
export declare class MySqlDateTimeStringBuilder extends MySqlColumnBuilder<{
|
|
@@ -37,6 +37,7 @@ export declare class MySqlDateTimeString<T extends ColumnBaseConfig<'string date
|
|
|
37
37
|
}>, config: MySqlDateTimeStringBuilder['config']);
|
|
38
38
|
getSQLType(): string;
|
|
39
39
|
mapFromDriverValue(value: Date | string): string;
|
|
40
|
+
mapToDriverValue(value: Date | string): string;
|
|
40
41
|
}
|
|
41
42
|
export type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
42
43
|
export interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
|
|
@@ -27,6 +27,7 @@ class MySqlDateTime extends MySqlColumn {
|
|
|
27
27
|
return `datetime${precision}`;
|
|
28
28
|
}
|
|
29
29
|
mapToDriverValue(value) {
|
|
30
|
+
if (typeof value === "string") return value;
|
|
30
31
|
return value.toISOString().replace("T", " ").replace("Z", "");
|
|
31
32
|
}
|
|
32
33
|
mapFromDriverValue(value) {
|
|
@@ -63,6 +64,10 @@ class MySqlDateTimeString extends MySqlColumn {
|
|
|
63
64
|
if (typeof value === "string") return value;
|
|
64
65
|
return value.toISOString().slice(0, -5).replace("T", " ");
|
|
65
66
|
}
|
|
67
|
+
mapToDriverValue(value) {
|
|
68
|
+
if (typeof value === "string") return value;
|
|
69
|
+
return value.toISOString().replace("T", " ").replace("Z", "");
|
|
70
|
+
}
|
|
66
71
|
}
|
|
67
72
|
function datetime(a, b) {
|
|
68
73
|
const { name, config } = getColumnNameAndConfig(a, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport class MySqlDateTimeBuilder extends MySqlColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, MySqlDatetimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: string, config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'object date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'object date'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date):
|
|
1
|
+
{"version":3,"sources":["../../../src/mysql-core/columns/datetime.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport class MySqlDateTimeBuilder extends MySqlColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, MySqlDatetimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeBuilder';\n\n\tconstructor(name: string, config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'object date', 'MySqlDateTime');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTime<T extends ColumnBaseConfig<'object date'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTime';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string | Date): Date {\n\t\tif (typeof value === 'string') return new Date(value.replace(' ', 'T') + 'Z');\n\t\treturn value;\n\t}\n}\n\nexport class MySqlDateTimeStringBuilder extends MySqlColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, MySqlDatetimeConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeStringBuilder';\n\n\tconstructor(name: string, config: MySqlDatetimeConfig | undefined) {\n\t\tsuper(name, 'string datetime', 'MySqlDateTimeString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends MySqlColumn<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlDateTimeString';\n\n\treadonly fsp: number | undefined;\n\n\tconstructor(\n\t\ttable: AnyMySqlTable<{ name: T['tableName'] }>,\n\t\tconfig: MySqlDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.fsp = config.fsp;\n\t}\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `datetime${precision}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().slice(0, -5).replace('T', ' ');\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n}\n\nexport type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tfsp?: DatetimeFsp;\n}\n\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilder : MySqlDateTimeBuilder;\nexport function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: MySqlDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilder : MySqlDateTimeBuilder;\nexport function datetime(a?: string | MySqlDatetimeConfig, b?: MySqlDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlDateTimeStringBuilder(name, config);\n\t}\n\treturn new MySqlDateTimeBuilder(name, config);\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,aAAa,0BAA0B;AAEzC,MAAM,6BAA6B,mBAIlB;AAAA,EACvB,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,QAAyC;AAClE,UAAM,MAAM,eAAe,eAAe;AAC1C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MAAM,OAAmB;AACjC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAAiE,YAAe;AAAA,EAC5F,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAC5E,WAAO;AAAA,EACR;AACD;AAEO,MAAM,mCAAmC,mBAIxB;AAAA,EACvB,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,QAAyC;AAClE,UAAM,MAAM,mBAAmB,qBAAqB;AACpD,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MAAM,OAAmB;AACjC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAA2E,YAAe;AAAA,EACtG,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EAET,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AACnB,SAAK,MAAM,OAAO;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,WAAW,SAAS;AAAA,EAC5B;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AACD;AAgBO,SAAS,SAAS,GAAkC,GAAyB;AACnF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAwD,GAAG,CAAC;AACrF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,2BAA2B,MAAM,MAAM;AAAA,EACnD;AACA,SAAO,IAAI,qBAAqB,MAAM,MAAM;AAC7C;","names":[]}
|
|
@@ -54,6 +54,7 @@ class MySqlTimestamp extends import_date_common.MySqlDateBaseColumn {
|
|
|
54
54
|
return value;
|
|
55
55
|
}
|
|
56
56
|
mapToDriverValue(value) {
|
|
57
|
+
if (typeof value === "string") return value;
|
|
57
58
|
return value.toISOString().slice(0, -1).replace("T", " ");
|
|
58
59
|
}
|
|
59
60
|
}
|
|
@@ -84,6 +85,10 @@ class MySqlTimestampString extends import_date_common.MySqlDateBaseColumn {
|
|
|
84
85
|
if (shortened.endsWith(".000")) return shortened.slice(0, -4);
|
|
85
86
|
return shortened;
|
|
86
87
|
}
|
|
88
|
+
mapToDriverValue(value) {
|
|
89
|
+
if (typeof value === "string") return value;
|
|
90
|
+
return value.toISOString().slice(0, -1).replace("T", " ");
|
|
91
|
+
}
|
|
87
92
|
}
|
|
88
93
|
function timestamp(a, b = {}) {
|
|
89
94
|
const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mysql-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlDateBaseColumn, MySqlDateColumnBaseBuilder } from './date.common.ts';\n\nexport class MySqlTimestampBuilder extends MySqlDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, MySqlTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlTimestampBuilder';\n\n\tconstructor(name: string, config: MySqlTimestampConfig | undefined) {\n\t\tsuper(name, 'object date', 'MySqlTimestamp');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends MySqlDateBaseColumn<T, MySqlTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlTimestamp';\n\n\treadonly fsp: number | undefined = this.config.fsp;\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `timestamp${precision}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(value + '+0000');\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue(value: Date): string {\n\t\treturn value.toISOString().slice(0, -1).replace('T', ' ');\n\t}\n}\n\nexport class MySqlTimestampStringBuilder extends MySqlDateColumnBaseBuilder<{\n\tdataType: 'string timestamp';\n\tdata: string;\n\tdriverParam: string | number;\n}, MySqlTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlTimestampStringBuilder';\n\n\tconstructor(name: string, config: MySqlTimestampConfig | undefined) {\n\t\tsuper(name, 'string timestamp', 'MySqlTimestampString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlTimestampString<T extends ColumnBaseConfig<'string timestamp'>>\n\textends MySqlDateBaseColumn<T, MySqlTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlTimestampString';\n\n\treadonly fsp: number | undefined = this.config.fsp;\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `timestamp${precision}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\tconst shortened = value.toISOString().slice(0, -1).replace('T', ' ');\n\t\tif (shortened.endsWith('.000')) return shortened.slice(0, -4);\n\n\t\treturn shortened;\n\t}\n}\n\nexport type TimestampFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {\n\tmode?: TMode;\n\tfsp?: TimestampFsp;\n}\n\nexport function timestamp<TMode extends MySqlTimestampConfig['mode'] & {}>(\n\tconfig?: MySqlTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlTimestampStringBuilder\n\t: MySqlTimestampBuilder;\nexport function timestamp<TMode extends MySqlTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: MySqlTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlTimestampStringBuilder\n\t: MySqlTimestampBuilder;\nexport function timestamp(a?: string | MySqlTimestampConfig, b: MySqlTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlTimestampStringBuilder(name, config);\n\t}\n\treturn new MySqlTimestampBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,mBAAmD;AACnD,yBAAgE;AAEzD,MAAM,8BAA8B,8CAIlB;AAAA,EACxB,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,QAA0C;AACnE,UAAM,MAAM,eAAe,gBAAgB;AAC3C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MAAM,OAAmB;AACjC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,uCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,MAA0B,KAAK,OAAO;AAAA,EAE/C,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,YAAY,SAAS;AAAA,EAC7B;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,oBAAI,KAAK,QAAQ,OAAO;AAE9D,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,
|
|
1
|
+
{"version":3,"sources":["../../../src/mysql-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlDateBaseColumn, MySqlDateColumnBaseBuilder } from './date.common.ts';\n\nexport class MySqlTimestampBuilder extends MySqlDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, MySqlTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlTimestampBuilder';\n\n\tconstructor(name: string, config: MySqlTimestampConfig | undefined) {\n\t\tsuper(name, 'object date', 'MySqlTimestamp');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends MySqlDateBaseColumn<T, MySqlTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlTimestamp';\n\n\treadonly fsp: number | undefined = this.config.fsp;\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `timestamp${precision}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(value + '+0000');\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().slice(0, -1).replace('T', ' ');\n\t}\n}\n\nexport class MySqlTimestampStringBuilder extends MySqlDateColumnBaseBuilder<{\n\tdataType: 'string timestamp';\n\tdata: string;\n\tdriverParam: string | number;\n}, MySqlTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlTimestampStringBuilder';\n\n\tconstructor(name: string, config: MySqlTimestampConfig | undefined) {\n\t\tsuper(name, 'string timestamp', 'MySqlTimestampString');\n\t\tthis.config.fsp = config?.fsp;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class MySqlTimestampString<T extends ColumnBaseConfig<'string timestamp'>>\n\textends MySqlDateBaseColumn<T, MySqlTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlTimestampString';\n\n\treadonly fsp: number | undefined = this.config.fsp;\n\n\tgetSQLType(): string {\n\t\tconst precision = this.fsp === undefined ? '' : `(${this.fsp})`;\n\t\treturn `timestamp${precision}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\tconst shortened = value.toISOString().slice(0, -1).replace('T', ' ');\n\t\tif (shortened.endsWith('.000')) return shortened.slice(0, -4);\n\n\t\treturn shortened;\n\t}\n\n\toverride mapToDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\t\treturn value.toISOString().slice(0, -1).replace('T', ' ');\n\t}\n}\n\nexport type TimestampFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface MySqlTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {\n\tmode?: TMode;\n\tfsp?: TimestampFsp;\n}\n\nexport function timestamp<TMode extends MySqlTimestampConfig['mode'] & {}>(\n\tconfig?: MySqlTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlTimestampStringBuilder\n\t: MySqlTimestampBuilder;\nexport function timestamp<TMode extends MySqlTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: MySqlTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? MySqlTimestampStringBuilder\n\t: MySqlTimestampBuilder;\nexport function timestamp(a?: string | MySqlTimestampConfig, b: MySqlTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new MySqlTimestampStringBuilder(name, config);\n\t}\n\treturn new MySqlTimestampBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,mBAAmD;AACnD,yBAAgE;AAEzD,MAAM,8BAA8B,8CAIlB;AAAA,EACxB,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,QAA0C;AACnE,UAAM,MAAM,eAAe,gBAAgB;AAC3C,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MAAM,OAAmB;AACjC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,uCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,MAA0B,KAAK,OAAO;AAAA,EAE/C,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,YAAY,SAAS;AAAA,EAC7B;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,oBAAI,KAAK,QAAQ,OAAO;AAE9D,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AACD;AAEO,MAAM,oCAAoC,8CAIxB;AAAA,EACxB,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc,QAA0C;AACnE,UAAM,MAAM,oBAAoB,sBAAsB;AACtD,SAAK,OAAO,MAAM,QAAQ;AAAA,EAC3B;AAAA;AAAA,EAGS,MAAM,OAAmB;AACjC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,6BACJ,uCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,MAA0B,KAAK,OAAO;AAAA,EAE/C,aAAqB;AACpB,UAAM,YAAY,KAAK,QAAQ,SAAY,KAAK,IAAI,KAAK,GAAG;AAC5D,WAAO,YAAY,SAAS;AAAA,EAC7B;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,UAAM,YAAY,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AACnE,QAAI,UAAU,SAAS,MAAM,EAAG,QAAO,UAAU,MAAM,GAAG,EAAE;AAE5D,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AACD;AAkBO,SAAS,UAAU,GAAmC,IAA0B,CAAC,GAAG;AAC1F,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAyD,GAAG,CAAC;AACtF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,4BAA4B,MAAM,MAAM;AAAA,EACpD;AACA,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
|
|
@@ -15,7 +15,7 @@ export declare class MySqlTimestamp<T extends ColumnBaseConfig<'object date'>> e
|
|
|
15
15
|
readonly fsp: number | undefined;
|
|
16
16
|
getSQLType(): string;
|
|
17
17
|
mapFromDriverValue(value: Date | string): Date;
|
|
18
|
-
mapToDriverValue(value: Date): string;
|
|
18
|
+
mapToDriverValue(value: Date | string): string;
|
|
19
19
|
}
|
|
20
20
|
export declare class MySqlTimestampStringBuilder extends MySqlDateColumnBaseBuilder<{
|
|
21
21
|
dataType: 'string timestamp';
|
|
@@ -30,6 +30,7 @@ export declare class MySqlTimestampString<T extends ColumnBaseConfig<'string tim
|
|
|
30
30
|
readonly fsp: number | undefined;
|
|
31
31
|
getSQLType(): string;
|
|
32
32
|
mapFromDriverValue(value: Date | string): string;
|
|
33
|
+
mapToDriverValue(value: Date | string): string;
|
|
33
34
|
}
|
|
34
35
|
export type TimestampFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
35
36
|
export interface MySqlTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {
|
|
@@ -15,7 +15,7 @@ export declare class MySqlTimestamp<T extends ColumnBaseConfig<'object date'>> e
|
|
|
15
15
|
readonly fsp: number | undefined;
|
|
16
16
|
getSQLType(): string;
|
|
17
17
|
mapFromDriverValue(value: Date | string): Date;
|
|
18
|
-
mapToDriverValue(value: Date): string;
|
|
18
|
+
mapToDriverValue(value: Date | string): string;
|
|
19
19
|
}
|
|
20
20
|
export declare class MySqlTimestampStringBuilder extends MySqlDateColumnBaseBuilder<{
|
|
21
21
|
dataType: 'string timestamp';
|
|
@@ -30,6 +30,7 @@ export declare class MySqlTimestampString<T extends ColumnBaseConfig<'string tim
|
|
|
30
30
|
readonly fsp: number | undefined;
|
|
31
31
|
getSQLType(): string;
|
|
32
32
|
mapFromDriverValue(value: Date | string): string;
|
|
33
|
+
mapToDriverValue(value: Date | string): string;
|
|
33
34
|
}
|
|
34
35
|
export type TimestampFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
35
36
|
export interface MySqlTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {
|