drizzle-orm 1.0.0-beta.2-01787d6 → 1.0.0-beta.2-0f52822

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.
Files changed (59) hide show
  1. package/cockroach-core/columns/date.cjs +5 -0
  2. package/cockroach-core/columns/date.cjs.map +1 -1
  3. package/cockroach-core/columns/date.d.cts +2 -1
  4. package/cockroach-core/columns/date.d.ts +2 -1
  5. package/cockroach-core/columns/date.js +5 -0
  6. package/cockroach-core/columns/date.js.map +1 -1
  7. package/cockroach-core/columns/timestamp.cjs +5 -0
  8. package/cockroach-core/columns/timestamp.cjs.map +1 -1
  9. package/cockroach-core/columns/timestamp.d.cts +2 -1
  10. package/cockroach-core/columns/timestamp.d.ts +2 -1
  11. package/cockroach-core/columns/timestamp.js +5 -0
  12. package/cockroach-core/columns/timestamp.js.map +1 -1
  13. package/mysql-core/columns/datetime.cjs +5 -0
  14. package/mysql-core/columns/datetime.cjs.map +1 -1
  15. package/mysql-core/columns/datetime.d.cts +2 -1
  16. package/mysql-core/columns/datetime.d.ts +2 -1
  17. package/mysql-core/columns/datetime.js +5 -0
  18. package/mysql-core/columns/datetime.js.map +1 -1
  19. package/mysql-core/columns/timestamp.cjs +5 -0
  20. package/mysql-core/columns/timestamp.cjs.map +1 -1
  21. package/mysql-core/columns/timestamp.d.cts +2 -1
  22. package/mysql-core/columns/timestamp.d.ts +2 -1
  23. package/mysql-core/columns/timestamp.js +5 -0
  24. package/mysql-core/columns/timestamp.js.map +1 -1
  25. package/package.json +49 -49
  26. package/pg-core/columns/date.cjs +5 -0
  27. package/pg-core/columns/date.cjs.map +1 -1
  28. package/pg-core/columns/date.d.cts +2 -1
  29. package/pg-core/columns/date.d.ts +2 -1
  30. package/pg-core/columns/date.js +5 -0
  31. package/pg-core/columns/date.js.map +1 -1
  32. package/pg-core/columns/timestamp.cjs +7 -2
  33. package/pg-core/columns/timestamp.cjs.map +1 -1
  34. package/pg-core/columns/timestamp.d.cts +2 -1
  35. package/pg-core/columns/timestamp.d.ts +2 -1
  36. package/pg-core/columns/timestamp.js +7 -2
  37. package/pg-core/columns/timestamp.js.map +1 -1
  38. package/singlestore-core/columns/datetime.cjs +5 -0
  39. package/singlestore-core/columns/datetime.cjs.map +1 -1
  40. package/singlestore-core/columns/datetime.d.cts +2 -1
  41. package/singlestore-core/columns/datetime.d.ts +2 -1
  42. package/singlestore-core/columns/datetime.js +5 -0
  43. package/singlestore-core/columns/datetime.js.map +1 -1
  44. package/singlestore-core/columns/timestamp.cjs +5 -0
  45. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  46. package/singlestore-core/columns/timestamp.d.cts +2 -1
  47. package/singlestore-core/columns/timestamp.d.ts +2 -1
  48. package/singlestore-core/columns/timestamp.js +5 -0
  49. package/singlestore-core/columns/timestamp.js.map +1 -1
  50. package/sqlite-core/columns/integer.cjs +1 -0
  51. package/sqlite-core/columns/integer.cjs.map +1 -1
  52. package/sqlite-core/columns/integer.d.cts +1 -1
  53. package/sqlite-core/columns/integer.d.ts +1 -1
  54. package/sqlite-core/columns/integer.js +1 -0
  55. package/sqlite-core/columns/integer.js.map +1 -1
  56. package/vercel-postgres/session.cjs +2 -2
  57. package/vercel-postgres/session.cjs.map +1 -1
  58. package/vercel-postgres/session.js +2 -2
  59. package/vercel-postgres/session.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "1.0.0-beta.2-01787d6",
3
+ "version": "1.0.0-beta.2-0f52822",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -546,54 +546,6 @@
546
546
  "types": "./view-common.d.ts",
547
547
  "default": "./view-common.js"
548
548
  },
549
- "./better-sqlite3/driver": {
550
- "import": {
551
- "types": "./better-sqlite3/driver.d.ts",
552
- "default": "./better-sqlite3/driver.js"
553
- },
554
- "require": {
555
- "types": "./better-sqlite3/driver.d.cts",
556
- "default": "./better-sqlite3/driver.cjs"
557
- },
558
- "types": "./better-sqlite3/driver.d.ts",
559
- "default": "./better-sqlite3/driver.js"
560
- },
561
- "./better-sqlite3": {
562
- "import": {
563
- "types": "./better-sqlite3/index.d.ts",
564
- "default": "./better-sqlite3/index.js"
565
- },
566
- "require": {
567
- "types": "./better-sqlite3/index.d.cts",
568
- "default": "./better-sqlite3/index.cjs"
569
- },
570
- "types": "./better-sqlite3/index.d.ts",
571
- "default": "./better-sqlite3/index.js"
572
- },
573
- "./better-sqlite3/migrator": {
574
- "import": {
575
- "types": "./better-sqlite3/migrator.d.ts",
576
- "default": "./better-sqlite3/migrator.js"
577
- },
578
- "require": {
579
- "types": "./better-sqlite3/migrator.d.cts",
580
- "default": "./better-sqlite3/migrator.cjs"
581
- },
582
- "types": "./better-sqlite3/migrator.d.ts",
583
- "default": "./better-sqlite3/migrator.js"
584
- },
585
- "./better-sqlite3/session": {
586
- "import": {
587
- "types": "./better-sqlite3/session.d.ts",
588
- "default": "./better-sqlite3/session.js"
589
- },
590
- "require": {
591
- "types": "./better-sqlite3/session.d.cts",
592
- "default": "./better-sqlite3/session.cjs"
593
- },
594
- "types": "./better-sqlite3/session.d.ts",
595
- "default": "./better-sqlite3/session.js"
596
- },
597
549
  "./bun-sql/driver": {
598
550
  "import": {
599
551
  "types": "./bun-sql/driver.d.ts",
@@ -642,6 +594,54 @@
642
594
  "types": "./bun-sql/session.d.ts",
643
595
  "default": "./bun-sql/session.js"
644
596
  },
597
+ "./better-sqlite3/driver": {
598
+ "import": {
599
+ "types": "./better-sqlite3/driver.d.ts",
600
+ "default": "./better-sqlite3/driver.js"
601
+ },
602
+ "require": {
603
+ "types": "./better-sqlite3/driver.d.cts",
604
+ "default": "./better-sqlite3/driver.cjs"
605
+ },
606
+ "types": "./better-sqlite3/driver.d.ts",
607
+ "default": "./better-sqlite3/driver.js"
608
+ },
609
+ "./better-sqlite3": {
610
+ "import": {
611
+ "types": "./better-sqlite3/index.d.ts",
612
+ "default": "./better-sqlite3/index.js"
613
+ },
614
+ "require": {
615
+ "types": "./better-sqlite3/index.d.cts",
616
+ "default": "./better-sqlite3/index.cjs"
617
+ },
618
+ "types": "./better-sqlite3/index.d.ts",
619
+ "default": "./better-sqlite3/index.js"
620
+ },
621
+ "./better-sqlite3/migrator": {
622
+ "import": {
623
+ "types": "./better-sqlite3/migrator.d.ts",
624
+ "default": "./better-sqlite3/migrator.js"
625
+ },
626
+ "require": {
627
+ "types": "./better-sqlite3/migrator.d.cts",
628
+ "default": "./better-sqlite3/migrator.cjs"
629
+ },
630
+ "types": "./better-sqlite3/migrator.d.ts",
631
+ "default": "./better-sqlite3/migrator.js"
632
+ },
633
+ "./better-sqlite3/session": {
634
+ "import": {
635
+ "types": "./better-sqlite3/session.d.ts",
636
+ "default": "./better-sqlite3/session.js"
637
+ },
638
+ "require": {
639
+ "types": "./better-sqlite3/session.d.cts",
640
+ "default": "./better-sqlite3/session.cjs"
641
+ },
642
+ "types": "./better-sqlite3/session.d.ts",
643
+ "default": "./better-sqlite3/session.js"
644
+ },
645
645
  "./bun-sqlite/driver": {
646
646
  "import": {
647
647
  "types": "./bun-sqlite/driver.d.ts",
@@ -49,6 +49,7 @@ class PgDate extends import_common.PgColumn {
49
49
  return value;
50
50
  }
51
51
  mapToDriverValue(value) {
52
+ if (typeof value === "string") return value;
52
53
  return value.toISOString();
53
54
  }
54
55
  }
@@ -74,6 +75,10 @@ class PgDateString extends import_common.PgColumn {
74
75
  if (typeof value === "string") return value;
75
76
  return value.toISOString().slice(0, -14);
76
77
  }
78
+ mapToDriverValue(value) {
79
+ if (typeof value === "string") return value;
80
+ return value.toISOString();
81
+ }
77
82
  }
78
83
  function date(a, b) {
79
84
  const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/date.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgDateBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'PgDate');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDate(table, this.config as any);\n\t}\n}\n\nexport class PgDate<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string | Date): Date {\n\t\tif (typeof value === 'string') return new Date(value);\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue(value: Date): string {\n\t\treturn value.toISOString();\n\t}\n}\n\nexport class PgDateStringBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'PgDateString');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDateString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgDateString<T extends ColumnBaseConfig<'string date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\treturn value.toISOString().slice(0, -14);\n\t}\n}\n\nexport interface PgDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date(a?: string | PgDateConfig, b?: PgDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<PgDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new PgDateBuilder(name);\n\t}\n\treturn new PgDateStringBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAyB;AACzB,yBAAwC;AAEjC,MAAM,sBAAsB,2CAIhC;AAAA,EACF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,QAAQ;AAAA,EACpC;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI,OAAO,OAAO,KAAK,MAAa;AAAA,EAC5C;AACD;AAEO,MAAM,eAA0D,uBAAY;AAAA,EAClF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,IAAI,KAAK,KAAK;AAEpD,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAqB;AAC9C,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,4BAA4B,2CAItC;AAAA,EACF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,cAAc;AAAA,EAC1C;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAAgE,uBAAY;AAAA,EACxF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,GAAG;AAAA,EACxC;AACD;AAaO,SAAS,KAAK,GAA2B,GAAkB;AACjE,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAqC,GAAG,CAAC;AAClE,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,cAAc,IAAI;AAAA,EAC9B;AACA,SAAO,IAAI,oBAAoB,IAAI;AACpC;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/date.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgDateBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'PgDate');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDate(table, this.config as any);\n\t}\n}\n\nexport class PgDate<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string | Date): Date {\n\t\tif (typeof value === 'string') return new Date(value);\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();\n\t}\n}\n\nexport class PgDateStringBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'PgDateString');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDateString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgDateString<T extends ColumnBaseConfig<'string date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\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, -14);\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 PgDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date(a?: string | PgDateConfig, b?: PgDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<PgDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new PgDateBuilder(name);\n\t}\n\treturn new PgDateStringBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAyB;AACzB,yBAAwC;AAEjC,MAAM,sBAAsB,2CAIhC;AAAA,EACF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,QAAQ;AAAA,EACpC;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI,OAAO,OAAO,KAAK,MAAa;AAAA,EAC5C;AACD;AAEO,MAAM,eAA0D,uBAAY;AAAA,EAClF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,IAAI,KAAK,KAAK;AACpD,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,4BAA4B,2CAItC;AAAA,EACF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,cAAc;AAAA,EAC1C;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAAgE,uBAAY;AAAA,EACxF,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,GAAG;AAAA,EACxC;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAaO,SAAS,KAAK,GAA2B,GAAkB;AACjE,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAqC,GAAG,CAAC;AAClE,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,cAAc,IAAI;AAAA,EAC9B;AACA,SAAO,IAAI,oBAAoB,IAAI;AACpC;","names":[]}
@@ -15,7 +15,7 @@ export declare class PgDate<T extends ColumnBaseConfig<'object date'>> extends P
15
15
  static readonly [entityKind]: string;
16
16
  getSQLType(): string;
17
17
  mapFromDriverValue(value: string | Date): Date;
18
- mapToDriverValue(value: Date): string;
18
+ mapToDriverValue(value: Date | string): string;
19
19
  }
20
20
  export declare class PgDateStringBuilder extends PgDateColumnBaseBuilder<{
21
21
  dataType: 'string date';
@@ -29,6 +29,7 @@ export declare class PgDateString<T extends ColumnBaseConfig<'string date'>> ext
29
29
  static readonly [entityKind]: string;
30
30
  getSQLType(): string;
31
31
  mapFromDriverValue(value: Date | string): string;
32
+ mapToDriverValue(value: Date | string): string;
32
33
  }
33
34
  export interface PgDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {
34
35
  mode: T;
@@ -15,7 +15,7 @@ export declare class PgDate<T extends ColumnBaseConfig<'object date'>> extends P
15
15
  static readonly [entityKind]: string;
16
16
  getSQLType(): string;
17
17
  mapFromDriverValue(value: string | Date): Date;
18
- mapToDriverValue(value: Date): string;
18
+ mapToDriverValue(value: Date | string): string;
19
19
  }
20
20
  export declare class PgDateStringBuilder extends PgDateColumnBaseBuilder<{
21
21
  dataType: 'string date';
@@ -29,6 +29,7 @@ export declare class PgDateString<T extends ColumnBaseConfig<'string date'>> ext
29
29
  static readonly [entityKind]: string;
30
30
  getSQLType(): string;
31
31
  mapFromDriverValue(value: Date | string): string;
32
+ mapToDriverValue(value: Date | string): string;
32
33
  }
33
34
  export interface PgDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {
34
35
  mode: T;
@@ -22,6 +22,7 @@ class PgDate extends PgColumn {
22
22
  return value;
23
23
  }
24
24
  mapToDriverValue(value) {
25
+ if (typeof value === "string") return value;
25
26
  return value.toISOString();
26
27
  }
27
28
  }
@@ -47,6 +48,10 @@ class PgDateString extends PgColumn {
47
48
  if (typeof value === "string") return value;
48
49
  return value.toISOString().slice(0, -14);
49
50
  }
51
+ mapToDriverValue(value) {
52
+ if (typeof value === "string") return value;
53
+ return value.toISOString();
54
+ }
50
55
  }
51
56
  function date(a, b) {
52
57
  const { name, config } = getColumnNameAndConfig(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/date.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgDateBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'PgDate');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDate(table, this.config as any);\n\t}\n}\n\nexport class PgDate<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string | Date): Date {\n\t\tif (typeof value === 'string') return new Date(value);\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue(value: Date): string {\n\t\treturn value.toISOString();\n\t}\n}\n\nexport class PgDateStringBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'PgDateString');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDateString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgDateString<T extends ColumnBaseConfig<'string date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\treturn value.toISOString().slice(0, -14);\n\t}\n}\n\nexport interface PgDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date(a?: string | PgDateConfig, b?: PgDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<PgDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new PgDateBuilder(name);\n\t}\n\treturn new PgDateStringBuilder(name);\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AAEjC,MAAM,sBAAsB,wBAIhC;AAAA,EACF,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,QAAQ;AAAA,EACpC;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI,OAAO,OAAO,KAAK,MAAa;AAAA,EAC5C;AACD;AAEO,MAAM,eAA0D,SAAY;AAAA,EAClF,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,IAAI,KAAK,KAAK;AAEpD,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAqB;AAC9C,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,4BAA4B,wBAItC;AAAA,EACF,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,cAAc;AAAA,EAC1C;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAAgE,SAAY;AAAA,EACxF,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,GAAG;AAAA,EACxC;AACD;AAaO,SAAS,KAAK,GAA2B,GAAkB;AACjE,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAqC,GAAG,CAAC;AAClE,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,cAAc,IAAI;AAAA,EAC9B;AACA,SAAO,IAAI,oBAAoB,IAAI;AACpC;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/date.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgDateBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'PgDate');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDate(table, this.config as any);\n\t}\n}\n\nexport class PgDate<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDate';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\n\t}\n\n\toverride mapFromDriverValue(value: string | Date): Date {\n\t\tif (typeof value === 'string') return new Date(value);\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();\n\t}\n}\n\nexport class PgDateStringBuilder extends PgDateColumnBaseBuilder<{\n\tdataType: 'string date';\n\tdata: string;\n\tdriverParam: string;\n}> {\n\tstatic override readonly [entityKind]: string = 'PgDateStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string date', 'PgDateString');\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgDateString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgDateString<T extends ColumnBaseConfig<'string date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgDateString';\n\n\tgetSQLType(): string {\n\t\treturn 'date';\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, -14);\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 PgDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {\n\tmode: T;\n}\n\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date<TMode extends PgDateConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgDateConfig<TMode>,\n): Equal<TMode, 'date'> extends true ? PgDateBuilder : PgDateStringBuilder;\nexport function date(a?: string | PgDateConfig, b?: PgDateConfig) {\n\tconst { name, config } = getColumnNameAndConfig<PgDateConfig>(a, b);\n\tif (config?.mode === 'date') {\n\t\treturn new PgDateBuilder(name);\n\t}\n\treturn new PgDateStringBuilder(name);\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AAEjC,MAAM,sBAAsB,wBAIhC;AAAA,EACF,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,QAAQ;AAAA,EACpC;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI,OAAO,OAAO,KAAK,MAAa;AAAA,EAC5C;AACD;AAEO,MAAM,eAA0D,SAAY;AAAA,EAClF,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,IAAI,KAAK,KAAK;AACpD,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,4BAA4B,wBAItC;AAAA,EACF,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,cAAc;AAAA,EAC1C;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAAgE,SAAY;AAAA,EACxF,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA8B;AACzD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,GAAG;AAAA,EACxC;AAAA,EAES,iBAAiB,OAA8B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO;AACtC,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAaO,SAAS,KAAK,GAA2B,GAAkB;AACjE,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAqC,GAAG,CAAC;AAClE,MAAI,QAAQ,SAAS,QAAQ;AAC5B,WAAO,IAAI,cAAc,IAAI;AAAA,EAC9B;AACA,SAAO,IAAI,oBAAoB,IAAI;AACpC;","names":[]}
@@ -58,9 +58,10 @@ class PgTimestamp extends import_common.PgColumn {
58
58
  if (typeof value === "string") return new Date(this.withTimezone ? value : value + "+0000");
59
59
  return value;
60
60
  }
61
- mapToDriverValue = (value) => {
61
+ mapToDriverValue(value) {
62
+ if (typeof value === "string") return value;
62
63
  return value.toISOString();
63
- };
64
+ }
64
65
  }
65
66
  class PgTimestampStringBuilder extends import_date_common.PgDateColumnBaseBuilder {
66
67
  static [import_entity.entityKind] = "PgTimestampStringBuilder";
@@ -100,6 +101,10 @@ class PgTimestampString extends import_common.PgColumn {
100
101
  }
101
102
  return shortened;
102
103
  }
104
+ mapToDriverValue(value) {
105
+ if (typeof value === "string") return value;
106
+ return value.toISOString();
107
+ }
103
108
  }
104
109
  function timestamp(a, b = {}) {
105
110
  const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgTimestampBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'object date', 'PgTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestamp(table, this.config as any);\n\t}\n}\n\nexport class PgTimestamp<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(this.withTimezone ? value : value + '+0000');\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue = (value: Date): string => {\n\t\treturn value.toISOString();\n\t};\n}\n\nexport class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampStringBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'string timestamp', 'PgTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampStringBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\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 (this.withTimezone) {\n\t\t\tconst offset = value.getTimezoneOffset();\n\t\t\tconst sign = offset <= 0 ? '+' : '-';\n\t\t\treturn `${shortened}${sign}${Math.floor(Math.abs(offset) / 60).toString().padStart(2, '0')}`;\n\t\t}\n\n\t\treturn shortened;\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp(a?: string | PgTimestampConfig, b: PgTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<PgTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new PgTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new PgTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAyB;AACzB,yBAAwC;AAEjC,MAAM,2BAA2B,2CAOtC;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,MACA,cACA,WACC;AACD,UAAM,MAAM,eAAe,aAAa;AACxC,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI,YAAY,OAAO,KAAK,MAAa;AAAA,EACjD;AACD;AAEO,MAAM,oBAA+D,uBAAY;AAAA,EACvF,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAAqB,QAAsC;AACtE,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,KAAK,KAAK,SAAS;AACzE,WAAO,YAAY,SAAS,GAAG,KAAK,eAAe,oBAAoB,EAAE;AAAA,EAC1E;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,IAAI,KAAK,KAAK,eAAe,QAAQ,QAAQ,OAAO;AAE1F,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,CAAC,UAAwB;AACpD,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,iCAAiC,2CAO5C;AAAA,EACD,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,MACA,cACA,WACC;AACD,UAAM,MAAM,oBAAoB,mBAAmB;AACnD,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAA0E,uBAAY;AAAA,EAClG,QAA0B,wBAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAAqB,QAA4C;AAC5E,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,SAAS,GAAG,KAAK,eAAe,oBAAoB,EAAE;AAAA,EAC1E;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,KAAK,cAAc;AACtB,YAAM,SAAS,MAAM,kBAAkB;AACvC,YAAM,OAAO,UAAU,IAAI,MAAM;AACjC,aAAO,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,IAC3F;AAEA,WAAO;AAAA,EACR;AACD;AAiBO,SAAS,UAAU,GAAgC,IAAuB,CAAC,GAAG;AACpF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAAsD,GAAG,CAAC;AACnF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,yBAAyB,MAAM,OAAO,gBAAgB,OAAO,OAAO,SAAS;AAAA,EACzF;AACA,SAAO,IAAI,mBAAmB,MAAM,QAAQ,gBAAgB,OAAO,QAAQ,SAAS;AACrF;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgTimestampBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'object date', 'PgTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestamp(table, this.config as any);\n\t}\n}\n\nexport class PgTimestamp<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(this.withTimezone ? value : 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();\n\t}\n}\n\nexport class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampStringBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'string timestamp', 'PgTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampStringBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\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 (this.withTimezone) {\n\t\t\tconst offset = value.getTimezoneOffset();\n\t\t\tconst sign = offset <= 0 ? '+' : '-';\n\t\t\treturn `${shortened}${sign}${Math.floor(Math.abs(offset) / 60).toString().padStart(2, '0')}`;\n\t\t}\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();\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp(a?: string | PgTimestampConfig, b: PgTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<PgTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new PgTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new PgTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":"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","names":[]}
@@ -22,7 +22,7 @@ export declare class PgTimestamp<T extends ColumnBaseConfig<'object date'>> exte
22
22
  constructor(table: PgTable<any>, config: PgTimestampBuilder['config']);
23
23
  getSQLType(): string;
24
24
  mapFromDriverValue(value: Date | string): Date;
25
- mapToDriverValue: (value: Date) => string;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  }
27
27
  export declare class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<{
28
28
  dataType: 'string timestamp';
@@ -42,6 +42,7 @@ export declare class PgTimestampString<T extends ColumnBaseConfig<'string timest
42
42
  constructor(table: PgTable<any>, config: PgTimestampStringBuilder['config']);
43
43
  getSQLType(): string;
44
44
  mapFromDriverValue(value: Date | string): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;
47
48
  export interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
@@ -22,7 +22,7 @@ export declare class PgTimestamp<T extends ColumnBaseConfig<'object date'>> exte
22
22
  constructor(table: PgTable<any>, config: PgTimestampBuilder['config']);
23
23
  getSQLType(): string;
24
24
  mapFromDriverValue(value: Date | string): Date;
25
- mapToDriverValue: (value: Date) => string;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  }
27
27
  export declare class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<{
28
28
  dataType: 'string timestamp';
@@ -42,6 +42,7 @@ export declare class PgTimestampString<T extends ColumnBaseConfig<'string timest
42
42
  constructor(table: PgTable<any>, config: PgTimestampStringBuilder['config']);
43
43
  getSQLType(): string;
44
44
  mapFromDriverValue(value: Date | string): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;
47
48
  export interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
@@ -31,9 +31,10 @@ class PgTimestamp extends PgColumn {
31
31
  if (typeof value === "string") return new Date(this.withTimezone ? value : value + "+0000");
32
32
  return value;
33
33
  }
34
- mapToDriverValue = (value) => {
34
+ mapToDriverValue(value) {
35
+ if (typeof value === "string") return value;
35
36
  return value.toISOString();
36
- };
37
+ }
37
38
  }
38
39
  class PgTimestampStringBuilder extends PgDateColumnBaseBuilder {
39
40
  static [entityKind] = "PgTimestampStringBuilder";
@@ -73,6 +74,10 @@ class PgTimestampString extends PgColumn {
73
74
  }
74
75
  return shortened;
75
76
  }
77
+ mapToDriverValue(value) {
78
+ if (typeof value === "string") return value;
79
+ return value.toISOString();
80
+ }
76
81
  }
77
82
  function timestamp(a, b = {}) {
78
83
  const { name, config } = getColumnNameAndConfig(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pg-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgTimestampBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'object date', 'PgTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestamp(table, this.config as any);\n\t}\n}\n\nexport class PgTimestamp<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(this.withTimezone ? value : value + '+0000');\n\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue = (value: Date): string => {\n\t\treturn value.toISOString();\n\t};\n}\n\nexport class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampStringBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'string timestamp', 'PgTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampStringBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\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 (this.withTimezone) {\n\t\t\tconst offset = value.getTimezoneOffset();\n\t\t\tconst sign = offset <= 0 ? '+' : '-';\n\t\t\treturn `${shortened}${sign}${Math.floor(Math.abs(offset) / 60).toString().padStart(2, '0')}`;\n\t\t}\n\n\t\treturn shortened;\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp(a?: string | PgTimestampConfig, b: PgTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<PgTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new PgTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new PgTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AAEjC,MAAM,2BAA2B,wBAOtC;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,MACA,cACA,WACC;AACD,UAAM,MAAM,eAAe,aAAa;AACxC,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI,YAAY,OAAO,KAAK,MAAa;AAAA,EACjD;AACD;AAEO,MAAM,oBAA+D,SAAY;AAAA,EACvF,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAAqB,QAAsC;AACtE,UAAM,OAAO,MAAM;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO;AAAA,EACzB;AAAA,EAEA,aAAqB;AACpB,UAAM,YAAY,KAAK,cAAc,SAAY,KAAK,KAAK,KAAK,SAAS;AACzE,WAAO,YAAY,SAAS,GAAG,KAAK,eAAe,oBAAoB,EAAE;AAAA,EAC1E;AAAA,EAES,mBAAmB,OAA4B;AACvD,QAAI,OAAO,UAAU,SAAU,QAAO,IAAI,KAAK,KAAK,eAAe,QAAQ,QAAQ,OAAO;AAE1F,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,CAAC,UAAwB;AACpD,WAAO,MAAM,YAAY;AAAA,EAC1B;AACD;AAEO,MAAM,iCAAiC,wBAO5C;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,MACA,cACA,WACC;AACD,UAAM,MAAM,oBAAoB,mBAAmB;AACnD,SAAK,OAAO,eAAe;AAC3B,SAAK,OAAO,YAAY;AAAA,EACzB;AAAA;AAAA,EAGS,MAAM,OAAqB;AACnC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,0BAA0E,SAAY;AAAA,EAClG,QAA0B,UAAU,IAAY;AAAA,EAEvC;AAAA,EACA;AAAA,EAET,YAAY,OAAqB,QAA4C;AAC5E,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,SAAS,GAAG,KAAK,eAAe,oBAAoB,EAAE;AAAA,EAC1E;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,KAAK,cAAc;AACtB,YAAM,SAAS,MAAM,kBAAkB;AACvC,YAAM,OAAO,UAAU,IAAI,MAAM;AACjC,aAAO,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,IAC3F;AAEA,WAAO;AAAA,EACR;AACD;AAiBO,SAAS,UAAU,GAAgC,IAAuB,CAAC,GAAG;AACpF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAAsD,GAAG,CAAC;AACnF,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,yBAAyB,MAAM,OAAO,gBAAgB,OAAO,OAAO,SAAS;AAAA,EACzF;AACA,SAAO,IAAI,mBAAmB,MAAM,QAAQ,gBAAgB,OAAO,QAAQ,SAAS;AACrF;","names":[]}
1
+ {"version":3,"sources":["../../../src/pg-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { PgColumn } from './common.ts';\nimport { PgDateColumnBaseBuilder } from './date.common.ts';\n\nexport class PgTimestampBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'object date', 'PgTimestamp');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestamp(table, this.config as any);\n\t}\n}\n\nexport class PgTimestamp<T extends ColumnBaseConfig<'object date'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestamp';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\n\t}\n\n\toverride mapFromDriverValue(value: Date | string): Date {\n\t\tif (typeof value === 'string') return new Date(this.withTimezone ? value : 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();\n\t}\n}\n\nexport class PgTimestampStringBuilder extends PgDateColumnBaseBuilder<\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 = 'PgTimestampStringBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\twithTimezone: boolean,\n\t\tprecision: number | undefined,\n\t) {\n\t\tsuper(name, 'string timestamp', 'PgTimestampString');\n\t\tthis.config.withTimezone = withTimezone;\n\t\tthis.config.precision = precision;\n\t}\n\n\t/** @internal */\n\toverride build(table: PgTable<any>) {\n\t\treturn new PgTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class PgTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends PgColumn<T> {\n\tstatic override readonly [entityKind]: string = 'PgTimestampString';\n\n\treadonly withTimezone: boolean;\n\treadonly precision: number | undefined;\n\n\tconstructor(table: PgTable<any>, config: PgTimestampStringBuilder['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${precision}${this.withTimezone ? ' with time zone' : ''}`;\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 (this.withTimezone) {\n\t\t\tconst offset = value.getTimezoneOffset();\n\t\t\tconst sign = offset <= 0 ? '+' : '-';\n\t\t\treturn `${shortened}${sign}${Math.floor(Math.abs(offset) / 60).toString().padStart(2, '0')}`;\n\t\t}\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();\n\t}\n}\n\nexport type Precision = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface PgTimestampConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n\tprecision?: Precision;\n\twithTimezone?: boolean;\n}\n\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp<TMode extends PgTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: PgTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? PgTimestampStringBuilder : PgTimestampBuilder;\nexport function timestamp(a?: string | PgTimestampConfig, b: PgTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<PgTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new PgTimestampStringBuilder(name, config.withTimezone ?? false, config.precision);\n\t}\n\treturn new PgTimestampBuilder(name, config?.withTimezone ?? false, config?.precision);\n}\n"],"mappings":"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","names":[]}
@@ -54,6 +54,7 @@ class SingleStoreDateTime extends import_common.SingleStoreColumn {
54
54
  return `datetime`;
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) {
@@ -85,6 +86,10 @@ class SingleStoreDateTimeString extends import_common.SingleStoreColumn {
85
86
  getSQLType() {
86
87
  return `datetime`;
87
88
  }
89
+ mapToDriverValue(value) {
90
+ if (typeof value === "string") return value;
91
+ return value.toISOString().replace("T", " ").replace("Z", "");
92
+ }
88
93
  }
89
94
  function datetime(a, b) {
90
95
  const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n}\n\nexport interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAAmG;AAE5F,MAAM,mCAAmC,uCAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,gCAAqB;AAAA,EACxG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,uCAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,gCAAqB;AAAA,EAClH,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\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 {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\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 interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,mBAAmD;AACnD,oBAAmG;AAE5F,MAAM,mCAAmC,uCAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,gCAAqB;AAAA,EACxG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;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,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,uCAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,gCAAqB;AAAA,EAClH,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;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;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
@@ -22,7 +22,7 @@ export declare class SingleStoreDateTime<T extends ColumnBaseConfig<'object date
22
22
  name: T['tableName'];
23
23
  }>, config: SingleStoreDateTimeBuilder['config']);
24
24
  getSQLType(): string;
25
- mapToDriverValue(value: Date): unknown;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  mapFromDriverValue(value: string): Date;
27
27
  }
28
28
  export declare class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{
@@ -42,6 +42,7 @@ export declare class SingleStoreDateTimeString<T extends ColumnBaseConfig<'strin
42
42
  name: T['tableName'];
43
43
  }>, config: SingleStoreDateTimeStringBuilder['config']);
44
44
  getSQLType(): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
47
48
  mode?: TMode;
@@ -22,7 +22,7 @@ export declare class SingleStoreDateTime<T extends ColumnBaseConfig<'object date
22
22
  name: T['tableName'];
23
23
  }>, config: SingleStoreDateTimeBuilder['config']);
24
24
  getSQLType(): string;
25
- mapToDriverValue(value: Date): unknown;
25
+ mapToDriverValue(value: Date | string): string;
26
26
  mapFromDriverValue(value: string): Date;
27
27
  }
28
28
  export declare class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{
@@ -42,6 +42,7 @@ export declare class SingleStoreDateTimeString<T extends ColumnBaseConfig<'strin
42
42
  name: T['tableName'];
43
43
  }>, config: SingleStoreDateTimeStringBuilder['config']);
44
44
  getSQLType(): string;
45
+ mapToDriverValue(value: Date | string): string;
45
46
  }
46
47
  export interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
47
48
  mode?: TMode;
@@ -27,6 +27,7 @@ class SingleStoreDateTime extends SingleStoreColumn {
27
27
  return `datetime`;
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) {
@@ -58,6 +59,10 @@ class SingleStoreDateTimeString extends SingleStoreColumn {
58
59
  getSQLType() {
59
60
  return `datetime`;
60
61
  }
62
+ mapToDriverValue(value) {
63
+ if (typeof value === "string") return value;
64
+ return value.toISOString().replace("T", " ").replace("Z", "");
65
+ }
61
66
  }
62
67
  function datetime(a, b) {
63
68
  const { name, config } = getColumnNameAndConfig(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n\n\toverride mapToDriverValue(value: Date): unknown {\n\t\treturn value.toISOString().replace('T', ' ').replace('Z', '');\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\n\t}\n}\n\nexport interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAqB,8BAA8B;AACnD,SAAS,mBAAmB,gCAAuE;AAE5F,MAAM,mCAAmC,yBAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,kBAAqB;AAAA,EACxG,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAsB;AAC/C,WAAO,MAAM,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC7D;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,yBAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,kBAAqB;AAAA,EAClH,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/columns/datetime.ts"],"sourcesContent":["import type { GeneratedColumnConfig, HasGenerated } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { SQL } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreColumn, SingleStoreColumnBuilder, type SingleStoreGeneratedColumnConfig } from './common.ts';\n\nexport class SingleStoreDateTimeBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tas: SQL | (() => SQL) | this['_']['data'],\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconfig?: SingleStoreGeneratedColumnConfig,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreDateTime');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTime(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTime<T extends ColumnBaseConfig<'object date'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTime';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\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 {\n\t\treturn new Date(value.replace(' ', 'T') + 'Z');\n\t}\n}\n\nexport class SingleStoreDateTimeStringBuilder extends SingleStoreColumnBuilder<{\n\tdataType: 'string datetime';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreDatetimeConfig> {\n\t// TODO: we need to add a proper support for SingleStore\n\toverride generatedAlwaysAs(\n\t\t_as: SQL | (() => SQL) | this['_']['data'],\n\t\t_config?: Partial<GeneratedColumnConfig<unknown>>,\n\t): HasGenerated<this, { type: 'always' }> {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string datetime', 'SingleStoreDateTimeString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreDateTimeString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SingleStoreDateTimeString<T extends ColumnBaseConfig<'string datetime'>> extends SingleStoreColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDateTimeString';\n\n\tconstructor(\n\t\ttable: AnySingleStoreTable<{ name: T['tableName'] }>,\n\t\tconfig: SingleStoreDateTimeStringBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `datetime`;\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 interface SingleStoreDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {\n\tmode?: TMode;\n}\n\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime<TMode extends SingleStoreDatetimeConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreDatetimeConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreDateTimeStringBuilder\n\t: SingleStoreDateTimeBuilder;\nexport function datetime(a?: string | SingleStoreDatetimeConfig, b?: SingleStoreDatetimeConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreDatetimeConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreDateTimeStringBuilder(name);\n\t}\n\treturn new SingleStoreDateTimeBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAqB,8BAA8B;AACnD,SAAS,mBAAmB,gCAAuE;AAE5F,MAAM,mCAAmC,yBAIlB;AAAA;AAAA,EAEpB,kBAER,IAEA,QACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,qBAAqB;AAAA,EACjD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAuE,kBAAqB;AAAA,EACxG,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;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,OAAqB;AAChD,WAAO,oBAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,IAAI,GAAG;AAAA,EAC9C;AACD;AAEO,MAAM,yCAAyC,yBAIxB;AAAA;AAAA,EAEpB,kBACR,KACA,SACyC;AACzC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EACA,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,mBAAmB,2BAA2B;AAAA,EAC3D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kCAAiF,kBAAqB;AAAA,EAClH,QAA0B,UAAU,IAAY;AAAA,EAEhD,YACC,OACA,QACC;AACD,UAAM,OAAO,MAAM;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;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;AAeO,SAAS,SAAS,GAAwC,GAA+B;AAC/F,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA8D,GAAG,CAAC;AAC3F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,iCAAiC,IAAI;AAAA,EACjD;AACA,SAAO,IAAI,2BAA2B,IAAI;AAC3C;","names":[]}
@@ -54,6 +54,7 @@ class SingleStoreTimestamp extends import_date_common.SingleStoreDateBaseColumn
54
54
  return /* @__PURE__ */ new Date(value + "+0000");
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
  }
@@ -78,6 +79,10 @@ class SingleStoreTimestampString extends import_date_common.SingleStoreDateBaseC
78
79
  getSQLType() {
79
80
  return `timestamp`;
80
81
  }
82
+ mapToDriverValue(value) {
83
+ if (typeof value === "string") return value;
84
+ return value.toISOString().slice(0, -1).replace("T", " ");
85
+ }
81
86
  }
82
87
  function timestamp(a, b = {}) {
83
88
  const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SingleStoreTable } from '~/singlestore-core/table.ts';\nimport { sql } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreDateBaseColumn, SingleStoreDateColumnBaseBuilder } from './date.common.ts';\n\nexport class SingleStoreTimestampBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreTimestamp');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestamp';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(value + '+0000');\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 SingleStoreTimestampStringBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'string timestamp';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string timestamp', 'SingleStoreTimestampString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestampString<T extends ColumnBaseConfig<'string timestamp'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampString';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\n\t}\n}\n\nexport interface SingleStoreTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {\n\tmode?: TMode;\n}\n\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp(a?: string | SingleStoreTimestampConfig, b: SingleStoreTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreTimestampStringBuilder(name);\n\t}\n\treturn new SingleStoreTimestampBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,iBAAoB;AACpB,mBAAmD;AACnD,yBAA4E;AAErE,MAAM,oCAAoC,oDAIlB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,sBAAsB;AAAA,EAClD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,6BACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,QAAQ,OAAO;AAAA,EAChC;AAAA,EAES,iBAAiB,OAAqB;AAC9C,WAAO,MAAM,YAAY,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACzD;AACD;AAEO,MAAM,0CAA0C,oDAIxB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,oBAAoB,4BAA4B;AAAA,EAC7D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,mCACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAeO,SAAS,UAAU,GAAyC,IAAgC,CAAC,GAAG;AACtG,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA+D,GAAG,CAAC;AAC5F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,kCAAkC,IAAI;AAAA,EAClD;AACA,SAAO,IAAI,4BAA4B,IAAI;AAC5C;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/columns/timestamp.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SingleStoreTable } from '~/singlestore-core/table.ts';\nimport { sql } from '~/sql/sql.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SingleStoreDateBaseColumn, SingleStoreDateColumnBaseBuilder } from './date.common.ts';\n\nexport class SingleStoreTimestampBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'object date', 'SingleStoreTimestamp');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestamp';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\n\t}\n\n\toverride mapFromDriverValue(value: string): Date {\n\t\treturn new Date(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().slice(0, -1).replace('T', ' ');\n\t}\n}\n\nexport class SingleStoreTimestampStringBuilder extends SingleStoreDateColumnBaseBuilder<{\n\tdataType: 'string timestamp';\n\tdata: string;\n\tdriverParam: string | number;\n}, SingleStoreTimestampConfig> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampStringBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'string timestamp', 'SingleStoreTimestampString');\n\t}\n\n\t/** @internal */\n\toverride build(table: SingleStoreTable) {\n\t\treturn new SingleStoreTimestampString(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n\n\toverride defaultNow() {\n\t\treturn this.default(sql`CURRENT_TIMESTAMP`);\n\t}\n}\n\nexport class SingleStoreTimestampString<T extends ColumnBaseConfig<'string timestamp'>>\n\textends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreTimestampString';\n\n\tgetSQLType(): string {\n\t\treturn `timestamp`;\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 interface SingleStoreTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {\n\tmode?: TMode;\n}\n\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp<TMode extends SingleStoreTimestampConfig['mode'] & {}>(\n\tname: string,\n\tconfig?: SingleStoreTimestampConfig<TMode>,\n): Equal<TMode, 'string'> extends true ? SingleStoreTimestampStringBuilder\n\t: SingleStoreTimestampBuilder;\nexport function timestamp(a?: string | SingleStoreTimestampConfig, b: SingleStoreTimestampConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<SingleStoreTimestampConfig | undefined>(a, b);\n\tif (config?.mode === 'string') {\n\t\treturn new SingleStoreTimestampStringBuilder(name);\n\t}\n\treturn new SingleStoreTimestampBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAE3B,iBAAoB;AACpB,mBAAmD;AACnD,yBAA4E;AAErE,MAAM,oCAAoC,oDAIlB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,eAAe,sBAAsB;AAAA,EAClD;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,6BACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAqB;AAChD,WAAO,oBAAI,KAAK,QAAQ,OAAO;AAAA,EAChC;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,0CAA0C,oDAIxB;AAAA,EAC9B,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAc;AACzB,UAAM,MAAM,oBAAoB,4BAA4B;AAAA,EAC7D;AAAA;AAAA,EAGS,MAAM,OAAyB;AACvC,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAES,aAAa;AACrB,WAAO,KAAK,QAAQ,iCAAsB;AAAA,EAC3C;AACD;AAEO,MAAM,mCACJ,6CACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,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,SAAS,UAAU,GAAyC,IAAgC,CAAC,GAAG;AACtG,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA+D,GAAG,CAAC;AAC5F,MAAI,QAAQ,SAAS,UAAU;AAC9B,WAAO,IAAI,kCAAkC,IAAI;AAAA,EAClD;AACA,SAAO,IAAI,4BAA4B,IAAI;AAC5C;","names":[]}
@@ -15,7 +15,7 @@ export declare class SingleStoreTimestamp<T extends ColumnBaseConfig<'object dat
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 SingleStoreTimestampStringBuilder extends SingleStoreDateColumnBaseBuilder<{
21
21
  dataType: 'string timestamp';
@@ -29,6 +29,7 @@ export declare class SingleStoreTimestampStringBuilder extends SingleStoreDateCo
29
29
  export declare class SingleStoreTimestampString<T extends ColumnBaseConfig<'string timestamp'>> extends SingleStoreDateBaseColumn<T, SingleStoreTimestampConfig> {
30
30
  static readonly [entityKind]: string;
31
31
  getSQLType(): string;
32
+ mapToDriverValue(value: Date | string): string;
32
33
  }
33
34
  export interface SingleStoreTimestampConfig<TMode extends 'string' | 'date' = 'string' | 'date'> {
34
35
  mode?: TMode;