drizzle-orm 1.0.0-beta.1-af4c434 → 1.0.0-beta.1-867d080

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 (55) hide show
  1. package/mysql-core/columns/decimal.cjs +86 -1
  2. package/mysql-core/columns/decimal.cjs.map +1 -1
  3. package/mysql-core/columns/decimal.d.cts +47 -3
  4. package/mysql-core/columns/decimal.d.ts +47 -3
  5. package/mysql-core/columns/decimal.js +82 -1
  6. package/mysql-core/columns/decimal.js.map +1 -1
  7. package/mysql-core/dialect.cjs +3 -0
  8. package/mysql-core/dialect.cjs.map +1 -1
  9. package/mysql-core/dialect.js +3 -0
  10. package/mysql-core/dialect.js.map +1 -1
  11. package/neon-serverless/session.cjs +6 -0
  12. package/neon-serverless/session.cjs.map +1 -1
  13. package/neon-serverless/session.js +6 -0
  14. package/neon-serverless/session.js.map +1 -1
  15. package/node-postgres/session.cjs +6 -0
  16. package/node-postgres/session.cjs.map +1 -1
  17. package/node-postgres/session.js +6 -0
  18. package/node-postgres/session.js.map +1 -1
  19. package/package.json +1 -1
  20. package/pg-core/columns/numeric.cjs +86 -1
  21. package/pg-core/columns/numeric.cjs.map +1 -1
  22. package/pg-core/columns/numeric.d.cts +61 -6
  23. package/pg-core/columns/numeric.d.ts +61 -6
  24. package/pg-core/columns/numeric.js +82 -1
  25. package/pg-core/columns/numeric.js.map +1 -1
  26. package/pg-core/dialect.cjs +2 -0
  27. package/pg-core/dialect.cjs.map +1 -1
  28. package/pg-core/dialect.js +2 -0
  29. package/pg-core/dialect.js.map +1 -1
  30. package/pglite/session.cjs +8 -0
  31. package/pglite/session.cjs.map +1 -1
  32. package/pglite/session.js +8 -0
  33. package/pglite/session.js.map +1 -1
  34. package/postgres-js/driver.cjs +1 -1
  35. package/postgres-js/driver.cjs.map +1 -1
  36. package/postgres-js/driver.js +1 -1
  37. package/postgres-js/driver.js.map +1 -1
  38. package/sqlite-core/columns/numeric.cjs +64 -2
  39. package/sqlite-core/columns/numeric.cjs.map +1 -1
  40. package/sqlite-core/columns/numeric.d.cts +43 -2
  41. package/sqlite-core/columns/numeric.d.ts +43 -2
  42. package/sqlite-core/columns/numeric.js +60 -2
  43. package/sqlite-core/columns/numeric.js.map +1 -1
  44. package/sqlite-core/dialect.cjs +5 -0
  45. package/sqlite-core/dialect.cjs.map +1 -1
  46. package/sqlite-core/dialect.js +5 -0
  47. package/sqlite-core/dialect.js.map +1 -1
  48. package/vercel-postgres/session.cjs +6 -0
  49. package/vercel-postgres/session.cjs.map +1 -1
  50. package/vercel-postgres/session.js +6 -0
  51. package/vercel-postgres/session.js.map +1 -1
  52. package/version.cjs +1 -1
  53. package/version.d.cts +1 -1
  54. package/version.d.ts +1 -1
  55. package/version.js +1 -1
@@ -19,11 +19,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var numeric_exports = {};
20
20
  __export(numeric_exports, {
21
21
  SQLiteNumeric: () => SQLiteNumeric,
22
+ SQLiteNumericBigInt: () => SQLiteNumericBigInt,
23
+ SQLiteNumericBigIntBuilder: () => SQLiteNumericBigIntBuilder,
22
24
  SQLiteNumericBuilder: () => SQLiteNumericBuilder,
25
+ SQLiteNumericNumber: () => SQLiteNumericNumber,
26
+ SQLiteNumericNumberBuilder: () => SQLiteNumericNumberBuilder,
23
27
  numeric: () => numeric
24
28
  });
25
29
  module.exports = __toCommonJS(numeric_exports);
26
30
  var import_entity = require("../../entity.cjs");
31
+ var import_utils = require("../../utils.cjs");
27
32
  var import_common = require("./common.cjs");
28
33
  class SQLiteNumericBuilder extends import_common.SQLiteColumnBuilder {
29
34
  static [import_entity.entityKind] = "SQLiteNumericBuilder";
@@ -40,17 +45,74 @@ class SQLiteNumericBuilder extends import_common.SQLiteColumnBuilder {
40
45
  }
41
46
  class SQLiteNumeric extends import_common.SQLiteColumn {
42
47
  static [import_entity.entityKind] = "SQLiteNumeric";
48
+ mapFromDriverValue(value) {
49
+ if (typeof value === "string")
50
+ return value;
51
+ return String(value);
52
+ }
53
+ getSQLType() {
54
+ return "numeric";
55
+ }
56
+ }
57
+ class SQLiteNumericNumberBuilder extends import_common.SQLiteColumnBuilder {
58
+ static [import_entity.entityKind] = "SQLiteNumericNumberBuilder";
59
+ constructor(name) {
60
+ super(name, "number", "SQLiteNumericNumber");
61
+ }
62
+ /** @internal */
63
+ build(table) {
64
+ return new SQLiteNumericNumber(
65
+ table,
66
+ this.config
67
+ );
68
+ }
69
+ }
70
+ class SQLiteNumericNumber extends import_common.SQLiteColumn {
71
+ static [import_entity.entityKind] = "SQLiteNumericNumber";
72
+ mapFromDriverValue(value) {
73
+ if (typeof value === "number")
74
+ return value;
75
+ return Number(value);
76
+ }
77
+ mapToDriverValue = String;
78
+ getSQLType() {
79
+ return "numeric";
80
+ }
81
+ }
82
+ class SQLiteNumericBigIntBuilder extends import_common.SQLiteColumnBuilder {
83
+ static [import_entity.entityKind] = "SQLiteNumericBigIntBuilder";
84
+ constructor(name) {
85
+ super(name, "bigint", "SQLiteNumericBigInt");
86
+ }
87
+ /** @internal */
88
+ build(table) {
89
+ return new SQLiteNumericBigInt(
90
+ table,
91
+ this.config
92
+ );
93
+ }
94
+ }
95
+ class SQLiteNumericBigInt extends import_common.SQLiteColumn {
96
+ static [import_entity.entityKind] = "SQLiteNumericBigInt";
97
+ mapFromDriverValue = BigInt;
98
+ mapToDriverValue = String;
43
99
  getSQLType() {
44
100
  return "numeric";
45
101
  }
46
102
  }
47
- function numeric(name) {
48
- return new SQLiteNumericBuilder(name ?? "");
103
+ function numeric(a, b) {
104
+ const { name, config } = (0, import_utils.getColumnNameAndConfig)(a, b);
105
+ const mode = config?.mode;
106
+ return mode === "number" ? new SQLiteNumericNumberBuilder(name) : mode === "bigint" ? new SQLiteNumericBigIntBuilder(name) : new SQLiteNumericBuilder(name);
49
107
  }
50
108
  // Annotate the CommonJS export names for ESM import in node:
51
109
  0 && (module.exports = {
52
110
  SQLiteNumeric,
111
+ SQLiteNumericBigInt,
112
+ SQLiteNumericBigIntBuilder,
53
113
  SQLiteNumericBuilder,
114
+ SQLiteNumericNumber,
115
+ SQLiteNumericNumberBuilder,
54
116
  numeric
55
117
  });
56
118
  //# sourceMappingURL=numeric.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/numeric.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteNumericBuilderInitial<TName extends string> = SQLiteNumericBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteNumeric';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteNumeric'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'SQLiteNumeric');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumeric<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumeric<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumeric<T extends ColumnBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumeric';\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport function numeric(): SQLiteNumericBuilderInitial<''>;\nexport function numeric<TName extends string>(name: TName): SQLiteNumericBuilderInitial<TName>;\nexport function numeric(name?: string) {\n\treturn new SQLiteNumericBuilder(name ?? '');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAAkD;AAW3C,MAAM,6BACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,eAAe;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA6E,2BAAgB;AAAA,EACzG,QAA0B,wBAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAIO,SAAS,QAAQ,MAAe;AACtC,SAAO,IAAI,qBAAqB,QAAQ,EAAE;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/numeric.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteNumericBuilderInitial<TName extends string> = SQLiteNumericBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteNumeric';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteNumeric'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'SQLiteNumeric');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumeric<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumeric<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumeric<T extends ColumnBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumeric';\n\n\toverride mapFromDriverValue(value: unknown): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\treturn String(value);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport type SQLiteNumericNumberBuilderInitial<TName extends string> = SQLiteNumericNumberBuilder<{\n\tname: TName;\n\tdataType: 'number';\n\tcolumnType: 'SQLiteNumericNumber';\n\tdata: number;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'SQLiteNumericNumber'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericNumberBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'number', 'SQLiteNumericNumber');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumericNumber<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumericNumber<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumericNumber<T extends ColumnBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericNumber';\n\n\toverride mapFromDriverValue(value: unknown): number {\n\t\tif (typeof value === 'number') return value;\n\n\t\treturn Number(value);\n\t}\n\n\toverride mapToDriverValue = String;\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport type SQLiteNumericBigIntBuilderInitial<TName extends string> = SQLiteNumericBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'SQLiteNumericBigInt';\n\tdata: bigint;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteNumericBigInt'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBigIntBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'bigint', 'SQLiteNumericBigInt');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumericBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumericBigInt<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumericBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBigInt';\n\n\toverride mapFromDriverValue = BigInt;\n\n\toverride mapToDriverValue = String;\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport type SQLiteNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> = {\n\tmode: T;\n};\n\nexport function numeric<TMode extends SQLiteNumericConfig['mode']>(\n\tconfig?: SQLiteNumericConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<''>\n\t: Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<''>\n\t: SQLiteNumericBuilderInitial<''>;\nexport function numeric<TName extends string, TMode extends SQLiteNumericConfig['mode']>(\n\tname: TName,\n\tconfig?: SQLiteNumericConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<TName>\n\t: Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<TName>\n\t: SQLiteNumericBuilderInitial<TName>;\nexport function numeric(a?: string | SQLiteNumericConfig, b?: SQLiteNumericConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SQLiteNumericConfig>(a, b);\n\tconst mode = config?.mode;\n\treturn mode === 'number'\n\t\t? new SQLiteNumericNumberBuilder(name)\n\t\t: mode === 'bigint'\n\t\t? new SQLiteNumericBigIntBuilder(name)\n\t\t: new SQLiteNumericBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAmD;AACnD,oBAAkD;AAW3C,MAAM,6BACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,eAAe;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA6E,2BAAgB;AAAA,EACzG,QAA0B,wBAAU,IAAY;AAAA,EAEvC,mBAAmB,OAAwB;AACnD,QAAI,OAAO,UAAU;AAAU,aAAO;AAEtC,WAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAWO,MAAM,mCACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,qBAAqB;AAAA,EAC5C;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,2BAAgB;AAAA,EACrH,QAA0B,wBAAU,IAAY;AAAA,EAEvC,mBAAmB,OAAwB;AACnD,QAAI,OAAO,UAAU;AAAU,aAAO;AAEtC,WAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EAES,mBAAmB;AAAA,EAE5B,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAWO,MAAM,mCACJ,kCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,qBAAqB;AAAA,EAC5C;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,2BAAgB;AAAA,EACrH,QAA0B,wBAAU,IAAY;AAAA,EAEvC,qBAAqB;AAAA,EAErB,mBAAmB;AAAA,EAE5B,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAiBO,SAAS,QAAQ,GAAkC,GAAyB;AAClF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA4C,GAAG,CAAC;AACzE,QAAM,OAAO,QAAQ;AACrB,SAAO,SAAS,WACb,IAAI,2BAA2B,IAAI,IACnC,SAAS,WACT,IAAI,2BAA2B,IAAI,IACnC,IAAI,qBAAqB,IAAI;AACjC;","names":[]}
@@ -1,6 +1,7 @@
1
1
  import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
2
2
  import type { ColumnBaseConfig } from "../../column.cjs";
3
3
  import { entityKind } from "../../entity.cjs";
4
+ import { type Equal } from "../../utils.cjs";
4
5
  import { SQLiteColumn, SQLiteColumnBuilder } from "./common.cjs";
5
6
  export type SQLiteNumericBuilderInitial<TName extends string> = SQLiteNumericBuilder<{
6
7
  name: TName;
@@ -16,7 +17,47 @@ export declare class SQLiteNumericBuilder<T extends ColumnBuilderBaseConfig<'str
16
17
  }
17
18
  export declare class SQLiteNumeric<T extends ColumnBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumn<T> {
18
19
  static readonly [entityKind]: string;
20
+ mapFromDriverValue(value: unknown): string;
19
21
  getSQLType(): string;
20
22
  }
21
- export declare function numeric(): SQLiteNumericBuilderInitial<''>;
22
- export declare function numeric<TName extends string>(name: TName): SQLiteNumericBuilderInitial<TName>;
23
+ export type SQLiteNumericNumberBuilderInitial<TName extends string> = SQLiteNumericNumberBuilder<{
24
+ name: TName;
25
+ dataType: 'number';
26
+ columnType: 'SQLiteNumericNumber';
27
+ data: number;
28
+ driverParam: string;
29
+ enumValues: undefined;
30
+ }>;
31
+ export declare class SQLiteNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumnBuilder<T> {
32
+ static readonly [entityKind]: string;
33
+ constructor(name: T['name']);
34
+ }
35
+ export declare class SQLiteNumericNumber<T extends ColumnBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumn<T> {
36
+ static readonly [entityKind]: string;
37
+ mapFromDriverValue(value: unknown): number;
38
+ mapToDriverValue: StringConstructor;
39
+ getSQLType(): string;
40
+ }
41
+ export type SQLiteNumericBigIntBuilderInitial<TName extends string> = SQLiteNumericBigIntBuilder<{
42
+ name: TName;
43
+ dataType: 'bigint';
44
+ columnType: 'SQLiteNumericBigInt';
45
+ data: bigint;
46
+ driverParam: string;
47
+ enumValues: undefined;
48
+ }>;
49
+ export declare class SQLiteNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumnBuilder<T> {
50
+ static readonly [entityKind]: string;
51
+ constructor(name: T['name']);
52
+ }
53
+ export declare class SQLiteNumericBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumn<T> {
54
+ static readonly [entityKind]: string;
55
+ mapFromDriverValue: BigIntConstructor;
56
+ mapToDriverValue: StringConstructor;
57
+ getSQLType(): string;
58
+ }
59
+ export type SQLiteNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> = {
60
+ mode: T;
61
+ };
62
+ export declare function numeric<TMode extends SQLiteNumericConfig['mode']>(config?: SQLiteNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<''> : Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<''> : SQLiteNumericBuilderInitial<''>;
63
+ export declare function numeric<TName extends string, TMode extends SQLiteNumericConfig['mode']>(name: TName, config?: SQLiteNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<TName> : Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<TName> : SQLiteNumericBuilderInitial<TName>;
@@ -1,6 +1,7 @@
1
1
  import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
2
2
  import type { ColumnBaseConfig } from "../../column.js";
3
3
  import { entityKind } from "../../entity.js";
4
+ import { type Equal } from "../../utils.js";
4
5
  import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js";
5
6
  export type SQLiteNumericBuilderInitial<TName extends string> = SQLiteNumericBuilder<{
6
7
  name: TName;
@@ -16,7 +17,47 @@ export declare class SQLiteNumericBuilder<T extends ColumnBuilderBaseConfig<'str
16
17
  }
17
18
  export declare class SQLiteNumeric<T extends ColumnBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumn<T> {
18
19
  static readonly [entityKind]: string;
20
+ mapFromDriverValue(value: unknown): string;
19
21
  getSQLType(): string;
20
22
  }
21
- export declare function numeric(): SQLiteNumericBuilderInitial<''>;
22
- export declare function numeric<TName extends string>(name: TName): SQLiteNumericBuilderInitial<TName>;
23
+ export type SQLiteNumericNumberBuilderInitial<TName extends string> = SQLiteNumericNumberBuilder<{
24
+ name: TName;
25
+ dataType: 'number';
26
+ columnType: 'SQLiteNumericNumber';
27
+ data: number;
28
+ driverParam: string;
29
+ enumValues: undefined;
30
+ }>;
31
+ export declare class SQLiteNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumnBuilder<T> {
32
+ static readonly [entityKind]: string;
33
+ constructor(name: T['name']);
34
+ }
35
+ export declare class SQLiteNumericNumber<T extends ColumnBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumn<T> {
36
+ static readonly [entityKind]: string;
37
+ mapFromDriverValue(value: unknown): number;
38
+ mapToDriverValue: StringConstructor;
39
+ getSQLType(): string;
40
+ }
41
+ export type SQLiteNumericBigIntBuilderInitial<TName extends string> = SQLiteNumericBigIntBuilder<{
42
+ name: TName;
43
+ dataType: 'bigint';
44
+ columnType: 'SQLiteNumericBigInt';
45
+ data: bigint;
46
+ driverParam: string;
47
+ enumValues: undefined;
48
+ }>;
49
+ export declare class SQLiteNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumnBuilder<T> {
50
+ static readonly [entityKind]: string;
51
+ constructor(name: T['name']);
52
+ }
53
+ export declare class SQLiteNumericBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumn<T> {
54
+ static readonly [entityKind]: string;
55
+ mapFromDriverValue: BigIntConstructor;
56
+ mapToDriverValue: StringConstructor;
57
+ getSQLType(): string;
58
+ }
59
+ export type SQLiteNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> = {
60
+ mode: T;
61
+ };
62
+ export declare function numeric<TMode extends SQLiteNumericConfig['mode']>(config?: SQLiteNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<''> : Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<''> : SQLiteNumericBuilderInitial<''>;
63
+ export declare function numeric<TName extends string, TMode extends SQLiteNumericConfig['mode']>(name: TName, config?: SQLiteNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<TName> : Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<TName> : SQLiteNumericBuilderInitial<TName>;
@@ -1,4 +1,5 @@
1
1
  import { entityKind } from "../../entity.js";
2
+ import { getColumnNameAndConfig } from "../../utils.js";
2
3
  import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js";
3
4
  class SQLiteNumericBuilder extends SQLiteColumnBuilder {
4
5
  static [entityKind] = "SQLiteNumericBuilder";
@@ -15,16 +16,73 @@ class SQLiteNumericBuilder extends SQLiteColumnBuilder {
15
16
  }
16
17
  class SQLiteNumeric extends SQLiteColumn {
17
18
  static [entityKind] = "SQLiteNumeric";
19
+ mapFromDriverValue(value) {
20
+ if (typeof value === "string")
21
+ return value;
22
+ return String(value);
23
+ }
24
+ getSQLType() {
25
+ return "numeric";
26
+ }
27
+ }
28
+ class SQLiteNumericNumberBuilder extends SQLiteColumnBuilder {
29
+ static [entityKind] = "SQLiteNumericNumberBuilder";
30
+ constructor(name) {
31
+ super(name, "number", "SQLiteNumericNumber");
32
+ }
33
+ /** @internal */
34
+ build(table) {
35
+ return new SQLiteNumericNumber(
36
+ table,
37
+ this.config
38
+ );
39
+ }
40
+ }
41
+ class SQLiteNumericNumber extends SQLiteColumn {
42
+ static [entityKind] = "SQLiteNumericNumber";
43
+ mapFromDriverValue(value) {
44
+ if (typeof value === "number")
45
+ return value;
46
+ return Number(value);
47
+ }
48
+ mapToDriverValue = String;
49
+ getSQLType() {
50
+ return "numeric";
51
+ }
52
+ }
53
+ class SQLiteNumericBigIntBuilder extends SQLiteColumnBuilder {
54
+ static [entityKind] = "SQLiteNumericBigIntBuilder";
55
+ constructor(name) {
56
+ super(name, "bigint", "SQLiteNumericBigInt");
57
+ }
58
+ /** @internal */
59
+ build(table) {
60
+ return new SQLiteNumericBigInt(
61
+ table,
62
+ this.config
63
+ );
64
+ }
65
+ }
66
+ class SQLiteNumericBigInt extends SQLiteColumn {
67
+ static [entityKind] = "SQLiteNumericBigInt";
68
+ mapFromDriverValue = BigInt;
69
+ mapToDriverValue = String;
18
70
  getSQLType() {
19
71
  return "numeric";
20
72
  }
21
73
  }
22
- function numeric(name) {
23
- return new SQLiteNumericBuilder(name ?? "");
74
+ function numeric(a, b) {
75
+ const { name, config } = getColumnNameAndConfig(a, b);
76
+ const mode = config?.mode;
77
+ return mode === "number" ? new SQLiteNumericNumberBuilder(name) : mode === "bigint" ? new SQLiteNumericBigIntBuilder(name) : new SQLiteNumericBuilder(name);
24
78
  }
25
79
  export {
26
80
  SQLiteNumeric,
81
+ SQLiteNumericBigInt,
82
+ SQLiteNumericBigIntBuilder,
27
83
  SQLiteNumericBuilder,
84
+ SQLiteNumericNumber,
85
+ SQLiteNumericNumberBuilder,
28
86
  numeric
29
87
  };
30
88
  //# sourceMappingURL=numeric.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/numeric.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteNumericBuilderInitial<TName extends string> = SQLiteNumericBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteNumeric';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteNumeric'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'SQLiteNumeric');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumeric<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumeric<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumeric<T extends ColumnBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumeric';\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport function numeric(): SQLiteNumericBuilderInitial<''>;\nexport function numeric<TName extends string>(name: TName): SQLiteNumericBuilderInitial<TName>;\nexport function numeric(name?: string) {\n\treturn new SQLiteNumericBuilder(name ?? '');\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,cAAc,2BAA2B;AAW3C,MAAM,6BACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,eAAe;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA6E,aAAgB;AAAA,EACzG,QAA0B,UAAU,IAAY;AAAA,EAEhD,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAIO,SAAS,QAAQ,MAAe;AACtC,SAAO,IAAI,qBAAqB,QAAQ,EAAE;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/numeric.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteNumericBuilderInitial<TName extends string> = SQLiteNumericBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteNumeric';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteNumeric'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'SQLiteNumeric');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumeric<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumeric<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumeric<T extends ColumnBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumeric';\n\n\toverride mapFromDriverValue(value: unknown): string {\n\t\tif (typeof value === 'string') return value;\n\n\t\treturn String(value);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport type SQLiteNumericNumberBuilderInitial<TName extends string> = SQLiteNumericNumberBuilder<{\n\tname: TName;\n\tdataType: 'number';\n\tcolumnType: 'SQLiteNumericNumber';\n\tdata: number;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'SQLiteNumericNumber'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericNumberBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'number', 'SQLiteNumericNumber');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumericNumber<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumericNumber<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumericNumber<T extends ColumnBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericNumber';\n\n\toverride mapFromDriverValue(value: unknown): number {\n\t\tif (typeof value === 'number') return value;\n\n\t\treturn Number(value);\n\t}\n\n\toverride mapToDriverValue = String;\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport type SQLiteNumericBigIntBuilderInitial<TName extends string> = SQLiteNumericBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'SQLiteNumericBigInt';\n\tdata: bigint;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteNumericBigInt'>>\n\textends SQLiteColumnBuilder<T>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBigIntBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'bigint', 'SQLiteNumericBigInt');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteNumericBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new SQLiteNumericBigInt<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class SQLiteNumericBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumn<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteNumericBigInt';\n\n\toverride mapFromDriverValue = BigInt;\n\n\toverride mapToDriverValue = String;\n\n\tgetSQLType(): string {\n\t\treturn 'numeric';\n\t}\n}\n\nexport type SQLiteNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> = {\n\tmode: T;\n};\n\nexport function numeric<TMode extends SQLiteNumericConfig['mode']>(\n\tconfig?: SQLiteNumericConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<''>\n\t: Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<''>\n\t: SQLiteNumericBuilderInitial<''>;\nexport function numeric<TName extends string, TMode extends SQLiteNumericConfig['mode']>(\n\tname: TName,\n\tconfig?: SQLiteNumericConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<TName>\n\t: Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<TName>\n\t: SQLiteNumericBuilderInitial<TName>;\nexport function numeric(a?: string | SQLiteNumericConfig, b?: SQLiteNumericConfig) {\n\tconst { name, config } = getColumnNameAndConfig<SQLiteNumericConfig>(a, b);\n\tconst mode = config?.mode;\n\treturn mode === 'number'\n\t\t? new SQLiteNumericNumberBuilder(name)\n\t\t: mode === 'bigint'\n\t\t? new SQLiteNumericBigIntBuilder(name)\n\t\t: new SQLiteNumericBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,cAAc,2BAA2B;AAW3C,MAAM,6BACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,eAAe;AAAA,EACtC;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA6E,aAAgB;AAAA,EACzG,QAA0B,UAAU,IAAY;AAAA,EAEvC,mBAAmB,OAAwB;AACnD,QAAI,OAAO,UAAU;AAAU,aAAO;AAEtC,WAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAWO,MAAM,mCACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,qBAAqB;AAAA,EAC5C;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,aAAgB;AAAA,EACrH,QAA0B,UAAU,IAAY;AAAA,EAEvC,mBAAmB,OAAwB;AACnD,QAAI,OAAO,UAAU;AAAU,aAAO;AAEtC,WAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EAES,mBAAmB;AAAA,EAE5B,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAWO,MAAM,mCACJ,oBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB;AAC5B,UAAM,MAAM,UAAU,qBAAqB;AAAA,EAC5C;AAAA;AAAA,EAGS,MACR,OACuD;AACvD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,4BAAyF,aAAgB;AAAA,EACrH,QAA0B,UAAU,IAAY;AAAA,EAEvC,qBAAqB;AAAA,EAErB,mBAAmB;AAAA,EAE5B,aAAqB;AACpB,WAAO;AAAA,EACR;AACD;AAiBO,SAAS,QAAQ,GAAkC,GAAyB;AAClF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA4C,GAAG,CAAC;AACzE,QAAM,OAAO,QAAQ;AACrB,SAAO,SAAS,WACb,IAAI,2BAA2B,IAAI,IACnC,SAAS,WACT,IAAI,2BAA2B,IAAI,IACnC,IAAI,qBAAqB,IAAI;AACjC;","names":[]}
@@ -605,6 +605,11 @@ class SQLiteDialect {
605
605
  case "SQLiteBlobBuffer": {
606
606
  return import_sql2.sql`hex(${name}) as ${import_sql2.sql.identifier(key)}`;
607
607
  }
608
+ case "SQLiteNumeric":
609
+ case "SQLiteNumericNumber":
610
+ case "SQLiteNumericBigInt": {
611
+ return import_sql2.sql`cast(${name} as text) as ${import_sql2.sql.identifier(key)}`;
612
+ }
608
613
  default: {
609
614
  return import_sql2.sql`${name} as ${import_sql2.sql.identifier(key)}`;
610
615
  }