drizzle-orm 0.40.1 → 0.41.0-014cdb8

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 (173) hide show
  1. package/aws-data-api/pg/driver.cjs +1 -1
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.js +1 -1
  4. package/aws-data-api/pg/driver.js.map +1 -1
  5. package/gel-core/expressions.cjs +3 -3
  6. package/gel-core/expressions.cjs.map +1 -1
  7. package/gel-core/expressions.d.cts +1 -1
  8. package/gel-core/expressions.d.ts +1 -1
  9. package/gel-core/expressions.js +2 -2
  10. package/gel-core/expressions.js.map +1 -1
  11. package/index.cjs +0 -2
  12. package/index.cjs.map +1 -1
  13. package/index.d.cts +0 -1
  14. package/index.d.ts +0 -1
  15. package/index.js +0 -1
  16. package/index.js.map +1 -1
  17. package/mysql-core/columns/binary.cjs +11 -0
  18. package/mysql-core/columns/binary.cjs.map +1 -1
  19. package/mysql-core/columns/binary.d.cts +1 -0
  20. package/mysql-core/columns/binary.d.ts +1 -0
  21. package/mysql-core/columns/binary.js +11 -0
  22. package/mysql-core/columns/binary.js.map +1 -1
  23. package/mysql-core/columns/decimal.cjs +91 -1
  24. package/mysql-core/columns/decimal.cjs.map +1 -1
  25. package/mysql-core/columns/decimal.d.cts +48 -3
  26. package/mysql-core/columns/decimal.d.ts +48 -3
  27. package/mysql-core/columns/decimal.js +87 -1
  28. package/mysql-core/columns/decimal.js.map +1 -1
  29. package/mysql-core/columns/varbinary.cjs +11 -0
  30. package/mysql-core/columns/varbinary.cjs.map +1 -1
  31. package/mysql-core/columns/varbinary.d.cts +1 -0
  32. package/mysql-core/columns/varbinary.d.ts +1 -0
  33. package/mysql-core/columns/varbinary.js +11 -0
  34. package/mysql-core/columns/varbinary.js.map +1 -1
  35. package/mysql-core/columns/varchar.cjs.map +1 -1
  36. package/mysql-core/columns/varchar.d.cts +1 -1
  37. package/mysql-core/columns/varchar.d.ts +1 -1
  38. package/mysql-core/columns/varchar.js.map +1 -1
  39. package/mysql-core/dialect.cjs +3 -3
  40. package/mysql-core/dialect.cjs.map +1 -1
  41. package/mysql-core/dialect.js +3 -3
  42. package/mysql-core/dialect.js.map +1 -1
  43. package/mysql-core/expressions.cjs +3 -3
  44. package/mysql-core/expressions.cjs.map +1 -1
  45. package/mysql-core/expressions.d.cts +1 -1
  46. package/mysql-core/expressions.d.ts +1 -1
  47. package/mysql-core/expressions.js +2 -2
  48. package/mysql-core/expressions.js.map +1 -1
  49. package/mysql2/driver.cjs +2 -1
  50. package/mysql2/driver.cjs.map +1 -1
  51. package/mysql2/driver.js +2 -1
  52. package/mysql2/driver.js.map +1 -1
  53. package/neon-http/driver.cjs +5 -0
  54. package/neon-http/driver.cjs.map +1 -1
  55. package/neon-http/driver.js +5 -0
  56. package/neon-http/driver.js.map +1 -1
  57. package/neon-serverless/session.cjs +30 -0
  58. package/neon-serverless/session.cjs.map +1 -1
  59. package/neon-serverless/session.js +30 -0
  60. package/neon-serverless/session.js.map +1 -1
  61. package/node-postgres/session.cjs +30 -0
  62. package/node-postgres/session.cjs.map +1 -1
  63. package/node-postgres/session.js +30 -0
  64. package/node-postgres/session.js.map +1 -1
  65. package/package.json +53 -63
  66. package/pg-core/columns/numeric.cjs +91 -1
  67. package/pg-core/columns/numeric.cjs.map +1 -1
  68. package/pg-core/columns/numeric.d.cts +62 -6
  69. package/pg-core/columns/numeric.d.ts +62 -6
  70. package/pg-core/columns/numeric.js +87 -1
  71. package/pg-core/columns/numeric.js.map +1 -1
  72. package/pg-core/dialect.cjs +1 -1
  73. package/pg-core/dialect.cjs.map +1 -1
  74. package/pg-core/dialect.js +1 -1
  75. package/pg-core/dialect.js.map +1 -1
  76. package/pg-core/expressions.cjs +3 -3
  77. package/pg-core/expressions.cjs.map +1 -1
  78. package/pg-core/expressions.d.cts +1 -1
  79. package/pg-core/expressions.d.ts +1 -1
  80. package/pg-core/expressions.js +2 -2
  81. package/pg-core/expressions.js.map +1 -1
  82. package/pglite/session.cjs +22 -2
  83. package/pglite/session.cjs.map +1 -1
  84. package/pglite/session.js +22 -2
  85. package/pglite/session.js.map +1 -1
  86. package/postgres-js/driver.cjs +1 -1
  87. package/postgres-js/driver.cjs.map +1 -1
  88. package/postgres-js/driver.js +1 -1
  89. package/postgres-js/driver.js.map +1 -1
  90. package/relations.d.cts +6 -6
  91. package/relations.d.ts +6 -6
  92. package/singlestore/driver.cjs +1 -3
  93. package/singlestore/driver.cjs.map +1 -1
  94. package/singlestore/driver.js +1 -3
  95. package/singlestore/driver.js.map +1 -1
  96. package/singlestore-core/columns/binary.cjs +11 -0
  97. package/singlestore-core/columns/binary.cjs.map +1 -1
  98. package/singlestore-core/columns/binary.d.cts +1 -0
  99. package/singlestore-core/columns/binary.d.ts +1 -0
  100. package/singlestore-core/columns/binary.js +11 -0
  101. package/singlestore-core/columns/binary.js.map +1 -1
  102. package/singlestore-core/columns/decimal.cjs +92 -5
  103. package/singlestore-core/columns/decimal.cjs.map +1 -1
  104. package/singlestore-core/columns/decimal.d.cts +50 -3
  105. package/singlestore-core/columns/decimal.d.ts +50 -3
  106. package/singlestore-core/columns/decimal.js +88 -5
  107. package/singlestore-core/columns/decimal.js.map +1 -1
  108. package/singlestore-core/columns/varbinary.cjs +11 -0
  109. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  110. package/singlestore-core/columns/varbinary.d.cts +1 -0
  111. package/singlestore-core/columns/varbinary.d.ts +1 -0
  112. package/singlestore-core/columns/varbinary.js +11 -0
  113. package/singlestore-core/columns/varbinary.js.map +1 -1
  114. package/singlestore-core/columns/varchar.cjs.map +1 -1
  115. package/singlestore-core/columns/varchar.d.cts +1 -1
  116. package/singlestore-core/columns/varchar.d.ts +1 -1
  117. package/singlestore-core/columns/varchar.js.map +1 -1
  118. package/singlestore-core/dialect.cjs +3 -3
  119. package/singlestore-core/dialect.cjs.map +1 -1
  120. package/singlestore-core/dialect.js +3 -3
  121. package/singlestore-core/dialect.js.map +1 -1
  122. package/singlestore-core/expressions.cjs +3 -3
  123. package/singlestore-core/expressions.cjs.map +1 -1
  124. package/singlestore-core/expressions.d.cts +1 -1
  125. package/singlestore-core/expressions.d.ts +1 -1
  126. package/singlestore-core/expressions.js +2 -2
  127. package/singlestore-core/expressions.js.map +1 -1
  128. package/sql-js/session.cjs +18 -42
  129. package/sql-js/session.cjs.map +1 -1
  130. package/sql-js/session.d.cts +3 -6
  131. package/sql-js/session.d.ts +3 -6
  132. package/sql-js/session.js +18 -42
  133. package/sql-js/session.js.map +1 -1
  134. package/sqlite-core/columns/blob.cjs +6 -0
  135. package/sqlite-core/columns/blob.cjs.map +1 -1
  136. package/sqlite-core/columns/blob.d.cts +1 -0
  137. package/sqlite-core/columns/blob.d.ts +1 -0
  138. package/sqlite-core/columns/blob.js +6 -0
  139. package/sqlite-core/columns/blob.js.map +1 -1
  140. package/sqlite-core/columns/numeric.cjs +64 -2
  141. package/sqlite-core/columns/numeric.cjs.map +1 -1
  142. package/sqlite-core/columns/numeric.d.cts +43 -2
  143. package/sqlite-core/columns/numeric.d.ts +43 -2
  144. package/sqlite-core/columns/numeric.js +60 -2
  145. package/sqlite-core/columns/numeric.js.map +1 -1
  146. package/sqlite-core/dialect.cjs +15 -5
  147. package/sqlite-core/dialect.cjs.map +1 -1
  148. package/sqlite-core/dialect.js +15 -5
  149. package/sqlite-core/dialect.js.map +1 -1
  150. package/sqlite-core/expressions.cjs +3 -3
  151. package/sqlite-core/expressions.cjs.map +1 -1
  152. package/sqlite-core/expressions.d.cts +1 -1
  153. package/sqlite-core/expressions.d.ts +1 -1
  154. package/sqlite-core/expressions.js +2 -2
  155. package/sqlite-core/expressions.js.map +1 -1
  156. package/utils.cjs +2 -2
  157. package/utils.cjs.map +1 -1
  158. package/utils.js +2 -2
  159. package/utils.js.map +1 -1
  160. package/vercel-postgres/session.cjs +30 -0
  161. package/vercel-postgres/session.cjs.map +1 -1
  162. package/vercel-postgres/session.js +30 -0
  163. package/vercel-postgres/session.js.map +1 -1
  164. package/version.cjs +1 -1
  165. package/version.d.cts +1 -1
  166. package/version.d.ts +1 -1
  167. package/version.js +1 -1
  168. package/expressions.cjs +0 -23
  169. package/expressions.cjs.map +0 -1
  170. package/expressions.d.cts +0 -1
  171. package/expressions.d.ts +0 -1
  172. package/expressions.js +0 -2
  173. package/expressions.js.map +0 -1
@@ -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 { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from "./common.js";
5
6
  export type MySqlDecimalBuilderInitial<TName extends string> = MySqlDecimalBuilder<{
6
7
  name: TName;
@@ -19,13 +20,57 @@ export declare class MySqlDecimal<T extends ColumnBaseConfig<'string', 'MySqlDec
19
20
  readonly precision: number | undefined;
20
21
  readonly scale: number | undefined;
21
22
  readonly unsigned: boolean | undefined;
23
+ mapFromDriverValue(value: unknown): string;
22
24
  getSQLType(): string;
23
25
  }
24
- export interface MySqlDecimalConfig {
26
+ export type MySqlDecimalNumberBuilderInitial<TName extends string> = MySqlDecimalNumberBuilder<{
27
+ name: TName;
28
+ dataType: 'number';
29
+ columnType: 'MySqlDecimalNumber';
30
+ data: number;
31
+ driverParam: string;
32
+ enumValues: undefined;
33
+ }>;
34
+ export declare class MySqlDecimalNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'MySqlDecimalNumber'>> extends MySqlColumnBuilderWithAutoIncrement<T, MySqlDecimalConfig> {
35
+ static readonly [entityKind]: string;
36
+ constructor(name: T['name'], config: MySqlDecimalConfig | undefined);
37
+ }
38
+ export declare class MySqlDecimalNumber<T extends ColumnBaseConfig<'number', 'MySqlDecimalNumber'>> extends MySqlColumnWithAutoIncrement<T, MySqlDecimalConfig> {
39
+ static readonly [entityKind]: string;
40
+ readonly precision: number | undefined;
41
+ readonly scale: number | undefined;
42
+ readonly unsigned: boolean | undefined;
43
+ mapFromDriverValue(value: unknown): number;
44
+ mapToDriverValue: StringConstructor;
45
+ getSQLType(): string;
46
+ }
47
+ export type MySqlDecimalBigIntBuilderInitial<TName extends string> = MySqlDecimalBigIntBuilder<{
48
+ name: TName;
49
+ dataType: 'bigint';
50
+ columnType: 'MySqlDecimalBigInt';
51
+ data: bigint;
52
+ driverParam: string;
53
+ enumValues: undefined;
54
+ }>;
55
+ export declare class MySqlDecimalBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'MySqlDecimalBigInt'>> extends MySqlColumnBuilderWithAutoIncrement<T, MySqlDecimalConfig> {
56
+ static readonly [entityKind]: string;
57
+ constructor(name: T['name'], config: MySqlDecimalConfig | undefined);
58
+ }
59
+ export declare class MySqlDecimalBigInt<T extends ColumnBaseConfig<'bigint', 'MySqlDecimalBigInt'>> extends MySqlColumnWithAutoIncrement<T, MySqlDecimalConfig> {
60
+ static readonly [entityKind]: string;
61
+ readonly precision: number | undefined;
62
+ readonly scale: number | undefined;
63
+ readonly unsigned: boolean | undefined;
64
+ mapFromDriverValue: BigIntConstructor;
65
+ mapToDriverValue: StringConstructor;
66
+ getSQLType(): string;
67
+ }
68
+ export interface MySqlDecimalConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> {
25
69
  precision?: number;
26
70
  scale?: number;
27
71
  unsigned?: boolean;
72
+ mode?: T;
28
73
  }
29
74
  export declare function decimal(): MySqlDecimalBuilderInitial<''>;
30
- export declare function decimal(config: MySqlDecimalConfig): MySqlDecimalBuilderInitial<''>;
31
- export declare function decimal<TName extends string>(name: TName, config?: MySqlDecimalConfig): MySqlDecimalBuilderInitial<TName>;
75
+ export declare function decimal<TMode extends 'string' | 'number' | 'bigint'>(config: MySqlDecimalConfig<TMode>): Equal<TMode, 'number'> extends true ? MySqlDecimalNumberBuilderInitial<''> : Equal<TMode, 'bigint'> extends true ? MySqlDecimalBigIntBuilderInitial<''> : MySqlDecimalBuilderInitial<''>;
76
+ export declare function decimal<TName extends string, TMode extends 'string' | 'number' | 'bigint'>(name: TName, config?: MySqlDecimalConfig<TMode>): Equal<TMode, 'number'> extends true ? MySqlDecimalNumberBuilderInitial<TName> : Equal<TMode, 'bigint'> extends true ? MySqlDecimalBigIntBuilderInitial<TName> : MySqlDecimalBuilderInitial<TName>;
@@ -22,6 +22,87 @@ class MySqlDecimal extends MySqlColumnWithAutoIncrement {
22
22
  precision = this.config.precision;
23
23
  scale = this.config.scale;
24
24
  unsigned = this.config.unsigned;
25
+ mapFromDriverValue(value) {
26
+ if (typeof value === "string")
27
+ return value;
28
+ return String(value);
29
+ }
30
+ getSQLType() {
31
+ let type = "";
32
+ if (this.precision !== void 0 && this.scale !== void 0) {
33
+ type += `decimal(${this.precision},${this.scale})`;
34
+ } else if (this.precision === void 0) {
35
+ type += "decimal";
36
+ } else {
37
+ type += `decimal(${this.precision})`;
38
+ }
39
+ type = type === "decimal(10,0)" || type === "decimal(10)" ? "decimal" : type;
40
+ return this.unsigned ? `${type} unsigned` : type;
41
+ }
42
+ }
43
+ class MySqlDecimalNumberBuilder extends MySqlColumnBuilderWithAutoIncrement {
44
+ static [entityKind] = "MySqlDecimalNumberBuilder";
45
+ constructor(name, config) {
46
+ super(name, "number", "MySqlDecimalNumber");
47
+ this.config.precision = config?.precision;
48
+ this.config.scale = config?.scale;
49
+ this.config.unsigned = config?.unsigned;
50
+ }
51
+ /** @internal */
52
+ build(table) {
53
+ return new MySqlDecimalNumber(
54
+ table,
55
+ this.config
56
+ );
57
+ }
58
+ }
59
+ class MySqlDecimalNumber extends MySqlColumnWithAutoIncrement {
60
+ static [entityKind] = "MySqlDecimalNumber";
61
+ precision = this.config.precision;
62
+ scale = this.config.scale;
63
+ unsigned = this.config.unsigned;
64
+ mapFromDriverValue(value) {
65
+ if (typeof value === "number")
66
+ return value;
67
+ return Number(value);
68
+ }
69
+ mapToDriverValue = String;
70
+ getSQLType() {
71
+ let type = "";
72
+ if (this.precision !== void 0 && this.scale !== void 0) {
73
+ type += `decimal(${this.precision},${this.scale})`;
74
+ } else if (this.precision === void 0) {
75
+ type += "decimal";
76
+ } else {
77
+ type += `decimal(${this.precision})`;
78
+ }
79
+ type = type === "decimal(10,0)" || type === "decimal(10)" ? "decimal" : type;
80
+ return this.unsigned ? `${type} unsigned` : type;
81
+ }
82
+ }
83
+ class MySqlDecimalBigIntBuilder extends MySqlColumnBuilderWithAutoIncrement {
84
+ static [entityKind] = "MySqlDecimalBigIntBuilder";
85
+ constructor(name, config) {
86
+ super(name, "bigint", "MySqlDecimalBigInt");
87
+ this.config.precision = config?.precision;
88
+ this.config.scale = config?.scale;
89
+ this.config.unsigned = config?.unsigned;
90
+ }
91
+ /** @internal */
92
+ build(table) {
93
+ return new MySqlDecimalBigInt(
94
+ table,
95
+ this.config
96
+ );
97
+ }
98
+ }
99
+ class MySqlDecimalBigInt extends MySqlColumnWithAutoIncrement {
100
+ static [entityKind] = "MySqlDecimalBigInt";
101
+ precision = this.config.precision;
102
+ scale = this.config.scale;
103
+ unsigned = this.config.unsigned;
104
+ mapFromDriverValue = BigInt;
105
+ mapToDriverValue = String;
25
106
  getSQLType() {
26
107
  let type = "";
27
108
  if (this.precision !== void 0 && this.scale !== void 0) {
@@ -37,11 +118,16 @@ class MySqlDecimal extends MySqlColumnWithAutoIncrement {
37
118
  }
38
119
  function decimal(a, b = {}) {
39
120
  const { name, config } = getColumnNameAndConfig(a, b);
40
- return new MySqlDecimalBuilder(name, config);
121
+ const mode = config?.mode;
122
+ return mode === "number" ? new MySqlDecimalNumberBuilder(name, config) : mode === "bigint" ? new MySqlDecimalBigIntBuilder(name, config) : new MySqlDecimalBuilder(name, config);
41
123
  }
42
124
  export {
43
125
  MySqlDecimal,
126
+ MySqlDecimalBigInt,
127
+ MySqlDecimalBigIntBuilder,
44
128
  MySqlDecimalBuilder,
129
+ MySqlDecimalNumber,
130
+ MySqlDecimalNumberBuilder,
45
131
  decimal
46
132
  };
47
133
  //# sourceMappingURL=decimal.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/decimal.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from './common.ts';\n\nexport type MySqlDecimalBuilderInitial<TName extends string> = MySqlDecimalBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDecimal';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDecimalBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'MySqlDecimal'>,\n> extends MySqlColumnBuilderWithAutoIncrement<T, MySqlDecimalConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDecimalBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDecimalConfig | undefined) {\n\t\tsuper(name, 'string', 'MySqlDecimal');\n\t\tthis.config.precision = config?.precision;\n\t\tthis.config.scale = config?.scale;\n\t\tthis.config.unsigned = config?.unsigned;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDecimal<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDecimal<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 MySqlDecimal<T extends ColumnBaseConfig<'string', 'MySqlDecimal'>>\n\textends MySqlColumnWithAutoIncrement<T, MySqlDecimalConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDecimal';\n\n\treadonly precision: number | undefined = this.config.precision;\n\treadonly scale: number | undefined = this.config.scale;\n\treadonly unsigned: boolean | undefined = this.config.unsigned;\n\n\tgetSQLType(): string {\n\t\tlet type = '';\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\ttype += `decimal(${this.precision},${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\ttype += 'decimal';\n\t\t} else {\n\t\t\ttype += `decimal(${this.precision})`;\n\t\t}\n\t\ttype = type === 'decimal(10,0)' || type === 'decimal(10)' ? 'decimal' : type;\n\t\treturn this.unsigned ? `${type} unsigned` : type;\n\t}\n}\n\nexport interface MySqlDecimalConfig {\n\tprecision?: number;\n\tscale?: number;\n\tunsigned?: boolean;\n}\n\nexport function decimal(): MySqlDecimalBuilderInitial<''>;\nexport function decimal(\n\tconfig: MySqlDecimalConfig,\n): MySqlDecimalBuilderInitial<''>;\nexport function decimal<TName extends string>(\n\tname: TName,\n\tconfig?: MySqlDecimalConfig,\n): MySqlDecimalBuilderInitial<TName>;\nexport function decimal(a?: string | MySqlDecimalConfig, b: MySqlDecimalConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDecimalConfig>(a, b);\n\treturn new MySqlDecimalBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA8B;AACvC,SAAS,qCAAqC,oCAAoC;AAW3E,MAAM,4BAEH,oCAA2D;AAAA,EACpE,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAwC;AACpE,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,YAAY,QAAQ;AAChC,SAAK,OAAO,QAAQ,QAAQ;AAC5B,SAAK,OAAO,WAAW,QAAQ;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,6BACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,YAAgC,KAAK,OAAO;AAAA,EAC5C,QAA4B,KAAK,OAAO;AAAA,EACxC,WAAgC,KAAK,OAAO;AAAA,EAErD,aAAqB;AACpB,QAAI,OAAO;AACX,QAAI,KAAK,cAAc,UAAa,KAAK,UAAU,QAAW;AAC7D,cAAQ,WAAW,KAAK,SAAS,IAAI,KAAK,KAAK;AAAA,IAChD,WAAW,KAAK,cAAc,QAAW;AACxC,cAAQ;AAAA,IACT,OAAO;AACN,cAAQ,WAAW,KAAK,SAAS;AAAA,IAClC;AACA,WAAO,SAAS,mBAAmB,SAAS,gBAAgB,YAAY;AACxE,WAAO,KAAK,WAAW,GAAG,IAAI,cAAc;AAAA,EAC7C;AACD;AAgBO,SAAS,QAAQ,GAAiC,IAAwB,CAAC,GAAG;AACpF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA2C,GAAG,CAAC;AACxE,SAAO,IAAI,oBAAoB,MAAM,MAAM;AAC5C;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/decimal.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { type Equal, getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from './common.ts';\n\nexport type MySqlDecimalBuilderInitial<TName extends string> = MySqlDecimalBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlDecimal';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDecimalBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'MySqlDecimal'>,\n> extends MySqlColumnBuilderWithAutoIncrement<T, MySqlDecimalConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDecimalBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDecimalConfig | undefined) {\n\t\tsuper(name, 'string', 'MySqlDecimal');\n\t\tthis.config.precision = config?.precision;\n\t\tthis.config.scale = config?.scale;\n\t\tthis.config.unsigned = config?.unsigned;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDecimal<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDecimal<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 MySqlDecimal<T extends ColumnBaseConfig<'string', 'MySqlDecimal'>>\n\textends MySqlColumnWithAutoIncrement<T, MySqlDecimalConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDecimal';\n\n\treadonly precision: number | undefined = this.config.precision;\n\treadonly scale: number | undefined = this.config.scale;\n\treadonly unsigned: boolean | undefined = this.config.unsigned;\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\tlet type = '';\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\ttype += `decimal(${this.precision},${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\ttype += 'decimal';\n\t\t} else {\n\t\t\ttype += `decimal(${this.precision})`;\n\t\t}\n\t\ttype = type === 'decimal(10,0)' || type === 'decimal(10)' ? 'decimal' : type;\n\t\treturn this.unsigned ? `${type} unsigned` : type;\n\t}\n}\n\nexport type MySqlDecimalNumberBuilderInitial<TName extends string> = MySqlDecimalNumberBuilder<{\n\tname: TName;\n\tdataType: 'number';\n\tcolumnType: 'MySqlDecimalNumber';\n\tdata: number;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDecimalNumberBuilder<\n\tT extends ColumnBuilderBaseConfig<'number', 'MySqlDecimalNumber'>,\n> extends MySqlColumnBuilderWithAutoIncrement<T, MySqlDecimalConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDecimalNumberBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDecimalConfig | undefined) {\n\t\tsuper(name, 'number', 'MySqlDecimalNumber');\n\t\tthis.config.precision = config?.precision;\n\t\tthis.config.scale = config?.scale;\n\t\tthis.config.unsigned = config?.unsigned;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDecimalNumber<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDecimalNumber<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 MySqlDecimalNumber<T extends ColumnBaseConfig<'number', 'MySqlDecimalNumber'>>\n\textends MySqlColumnWithAutoIncrement<T, MySqlDecimalConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDecimalNumber';\n\n\treadonly precision: number | undefined = this.config.precision;\n\treadonly scale: number | undefined = this.config.scale;\n\treadonly unsigned: boolean | undefined = this.config.unsigned;\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\tlet type = '';\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\ttype += `decimal(${this.precision},${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\ttype += 'decimal';\n\t\t} else {\n\t\t\ttype += `decimal(${this.precision})`;\n\t\t}\n\t\ttype = type === 'decimal(10,0)' || type === 'decimal(10)' ? 'decimal' : type;\n\t\treturn this.unsigned ? `${type} unsigned` : type;\n\t}\n}\n\nexport type MySqlDecimalBigIntBuilderInitial<TName extends string> = MySqlDecimalBigIntBuilder<{\n\tname: TName;\n\tdataType: 'bigint';\n\tcolumnType: 'MySqlDecimalBigInt';\n\tdata: bigint;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlDecimalBigIntBuilder<\n\tT extends ColumnBuilderBaseConfig<'bigint', 'MySqlDecimalBigInt'>,\n> extends MySqlColumnBuilderWithAutoIncrement<T, MySqlDecimalConfig> {\n\tstatic override readonly [entityKind]: string = 'MySqlDecimalBigIntBuilder';\n\n\tconstructor(name: T['name'], config: MySqlDecimalConfig | undefined) {\n\t\tsuper(name, 'bigint', 'MySqlDecimalBigInt');\n\t\tthis.config.precision = config?.precision;\n\t\tthis.config.scale = config?.scale;\n\t\tthis.config.unsigned = config?.unsigned;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlDecimalBigInt<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlDecimalBigInt<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 MySqlDecimalBigInt<T extends ColumnBaseConfig<'bigint', 'MySqlDecimalBigInt'>>\n\textends MySqlColumnWithAutoIncrement<T, MySqlDecimalConfig>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlDecimalBigInt';\n\n\treadonly precision: number | undefined = this.config.precision;\n\treadonly scale: number | undefined = this.config.scale;\n\treadonly unsigned: boolean | undefined = this.config.unsigned;\n\n\toverride mapFromDriverValue = BigInt;\n\n\toverride mapToDriverValue = String;\n\n\tgetSQLType(): string {\n\t\tlet type = '';\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\ttype += `decimal(${this.precision},${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\ttype += 'decimal';\n\t\t} else {\n\t\t\ttype += `decimal(${this.precision})`;\n\t\t}\n\t\ttype = type === 'decimal(10,0)' || type === 'decimal(10)' ? 'decimal' : type;\n\t\treturn this.unsigned ? `${type} unsigned` : type;\n\t}\n}\n\nexport interface MySqlDecimalConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> {\n\tprecision?: number;\n\tscale?: number;\n\tunsigned?: boolean;\n\tmode?: T;\n}\n\nexport function decimal(): MySqlDecimalBuilderInitial<''>;\nexport function decimal<TMode extends 'string' | 'number' | 'bigint'>(\n\tconfig: MySqlDecimalConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? MySqlDecimalNumberBuilderInitial<''>\n\t: Equal<TMode, 'bigint'> extends true ? MySqlDecimalBigIntBuilderInitial<''>\n\t: MySqlDecimalBuilderInitial<''>;\nexport function decimal<TName extends string, TMode extends 'string' | 'number' | 'bigint'>(\n\tname: TName,\n\tconfig?: MySqlDecimalConfig<TMode>,\n): Equal<TMode, 'number'> extends true ? MySqlDecimalNumberBuilderInitial<TName>\n\t: Equal<TMode, 'bigint'> extends true ? MySqlDecimalBigIntBuilderInitial<TName>\n\t: MySqlDecimalBuilderInitial<TName>;\nexport function decimal(a?: string | MySqlDecimalConfig, b: MySqlDecimalConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlDecimalConfig>(a, b);\n\tconst mode = config?.mode;\n\treturn mode === 'number'\n\t\t? new MySqlDecimalNumberBuilder(name, config)\n\t\t: mode === 'bigint'\n\t\t? new MySqlDecimalBigIntBuilder(name, config)\n\t\t: new MySqlDecimalBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAqB,8BAA8B;AACnD,SAAS,qCAAqC,oCAAoC;AAW3E,MAAM,4BAEH,oCAA2D;AAAA,EACpE,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAwC;AACpE,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,YAAY,QAAQ;AAChC,SAAK,OAAO,QAAQ,QAAQ;AAC5B,SAAK,OAAO,WAAW,QAAQ;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,6BACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,YAAgC,KAAK,OAAO;AAAA,EAC5C,QAA4B,KAAK,OAAO;AAAA,EACxC,WAAgC,KAAK,OAAO;AAAA,EAE5C,mBAAmB,OAAwB;AACnD,QAAI,OAAO,UAAU;AAAU,aAAO;AAEtC,WAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EAEA,aAAqB;AACpB,QAAI,OAAO;AACX,QAAI,KAAK,cAAc,UAAa,KAAK,UAAU,QAAW;AAC7D,cAAQ,WAAW,KAAK,SAAS,IAAI,KAAK,KAAK;AAAA,IAChD,WAAW,KAAK,cAAc,QAAW;AACxC,cAAQ;AAAA,IACT,OAAO;AACN,cAAQ,WAAW,KAAK,SAAS;AAAA,IAClC;AACA,WAAO,SAAS,mBAAmB,SAAS,gBAAgB,YAAY;AACxE,WAAO,KAAK,WAAW,GAAG,IAAI,cAAc;AAAA,EAC7C;AACD;AAWO,MAAM,kCAEH,oCAA2D;AAAA,EACpE,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAwC;AACpE,UAAM,MAAM,UAAU,oBAAoB;AAC1C,SAAK,OAAO,YAAY,QAAQ;AAChC,SAAK,OAAO,QAAQ,QAAQ;AAC5B,SAAK,OAAO,WAAW,QAAQ;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OACsD;AACtD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BACJ,6BACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,YAAgC,KAAK,OAAO;AAAA,EAC5C,QAA4B,KAAK,OAAO;AAAA,EACxC,WAAgC,KAAK,OAAO;AAAA,EAE5C,mBAAmB,OAAwB;AACnD,QAAI,OAAO,UAAU;AAAU,aAAO;AAEtC,WAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EAES,mBAAmB;AAAA,EAE5B,aAAqB;AACpB,QAAI,OAAO;AACX,QAAI,KAAK,cAAc,UAAa,KAAK,UAAU,QAAW;AAC7D,cAAQ,WAAW,KAAK,SAAS,IAAI,KAAK,KAAK;AAAA,IAChD,WAAW,KAAK,cAAc,QAAW;AACxC,cAAQ;AAAA,IACT,OAAO;AACN,cAAQ,WAAW,KAAK,SAAS;AAAA,IAClC;AACA,WAAO,SAAS,mBAAmB,SAAS,gBAAgB,YAAY;AACxE,WAAO,KAAK,WAAW,GAAG,IAAI,cAAc;AAAA,EAC7C;AACD;AAWO,MAAM,kCAEH,oCAA2D;AAAA,EACpE,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAwC;AACpE,UAAM,MAAM,UAAU,oBAAoB;AAC1C,SAAK,OAAO,YAAY,QAAQ;AAChC,SAAK,OAAO,QAAQ,QAAQ;AAC5B,SAAK,OAAO,WAAW,QAAQ;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OACsD;AACtD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,2BACJ,6BACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,YAAgC,KAAK,OAAO;AAAA,EAC5C,QAA4B,KAAK,OAAO;AAAA,EACxC,WAAgC,KAAK,OAAO;AAAA,EAE5C,qBAAqB;AAAA,EAErB,mBAAmB;AAAA,EAE5B,aAAqB;AACpB,QAAI,OAAO;AACX,QAAI,KAAK,cAAc,UAAa,KAAK,UAAU,QAAW;AAC7D,cAAQ,WAAW,KAAK,SAAS,IAAI,KAAK,KAAK;AAAA,IAChD,WAAW,KAAK,cAAc,QAAW;AACxC,cAAQ;AAAA,IACT,OAAO;AACN,cAAQ,WAAW,KAAK,SAAS;AAAA,IAClC;AACA,WAAO,SAAS,mBAAmB,SAAS,gBAAgB,YAAY;AACxE,WAAO,KAAK,WAAW,GAAG,IAAI,cAAc;AAAA,EAC7C;AACD;AAqBO,SAAS,QAAQ,GAAiC,IAAwB,CAAC,GAAG;AACpF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA2C,GAAG,CAAC;AACxE,QAAM,OAAO,QAAQ;AACrB,SAAO,SAAS,WACb,IAAI,0BAA0B,MAAM,MAAM,IAC1C,SAAS,WACT,IAAI,0BAA0B,MAAM,MAAM,IAC1C,IAAI,oBAAoB,MAAM,MAAM;AACxC;","names":[]}
@@ -44,6 +44,17 @@ class MySqlVarBinaryBuilder extends import_common.MySqlColumnBuilder {
44
44
  class MySqlVarBinary extends import_common.MySqlColumn {
45
45
  static [import_entity.entityKind] = "MySqlVarBinary";
46
46
  length = this.config.length;
47
+ mapFromDriverValue(value) {
48
+ if (typeof value === "string")
49
+ return value;
50
+ if (Buffer.isBuffer(value))
51
+ return value.toString();
52
+ const str = [];
53
+ for (const v of value) {
54
+ str.push(v === 49 ? "1" : "0");
55
+ }
56
+ return str.join("");
57
+ }
47
58
  getSQLType() {
48
59
  return this.length === void 0 ? `varbinary` : `varbinary(${this.length})`;
49
60
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/varbinary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarBinaryBuilderInitial<TName extends string> = MySqlVarBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlVarBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlVarBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlVarBinary'>>\n\textends MySqlColumnBuilder<T, MySqlVarbinaryOptions>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinaryBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarbinaryOptions) {\n\t\tsuper(name, 'string', 'MySqlVarBinary');\n\t\tthis.config.length = config?.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlVarBinary<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 MySqlVarBinary<\n\tT extends ColumnBaseConfig<'string', 'MySqlVarBinary'>,\n> extends MySqlColumn<T, MySqlVarbinaryOptions> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varbinary` : `varbinary(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarbinaryOptions {\n\tlength: number;\n}\n\nexport function varbinary(\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<''>;\nexport function varbinary<TName extends string>(\n\tname: TName,\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<TName>;\nexport function varbinary(a?: string | MySqlVarbinaryOptions, b?: MySqlVarbinaryOptions) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarbinaryOptions>(a, b);\n\treturn new MySqlVarBinaryBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAuC;AACvC,oBAAgD;AAWzC,MAAM,8BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA+B;AAC3D,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,SAAS,QAAQ;AAAA,EAC9B;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAEH,0BAAsC;AAAA,EAC/C,QAA0B,wBAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEzC,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,cAAc,aAAa,KAAK,MAAM;AAAA,EAC1E;AACD;AAaO,SAAS,UAAU,GAAoC,GAA2B;AACxF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA8C,GAAG,CAAC;AAC3E,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/varbinary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarBinaryBuilderInitial<TName extends string> = MySqlVarBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlVarBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlVarBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlVarBinary'>>\n\textends MySqlColumnBuilder<T, MySqlVarbinaryOptions>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinaryBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarbinaryOptions) {\n\t\tsuper(name, 'string', 'MySqlVarBinary');\n\t\tthis.config.length = config?.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlVarBinary<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 MySqlVarBinary<\n\tT extends ColumnBaseConfig<'string', 'MySqlVarBinary'>,\n> extends MySqlColumn<T, MySqlVarbinaryOptions> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\toverride mapFromDriverValue(value: string | Buffer | Uint8Array): string {\n\t\tif (typeof value === 'string') return value;\n\t\tif (Buffer.isBuffer(value)) return value.toString();\n\n\t\tconst str: string[] = [];\n\t\tfor (const v of value) {\n\t\t\tstr.push(v === 49 ? '1' : '0');\n\t\t}\n\n\t\treturn str.join('');\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varbinary` : `varbinary(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarbinaryOptions {\n\tlength: number;\n}\n\nexport function varbinary(\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<''>;\nexport function varbinary<TName extends string>(\n\tname: TName,\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<TName>;\nexport function varbinary(a?: string | MySqlVarbinaryOptions, b?: MySqlVarbinaryOptions) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarbinaryOptions>(a, b);\n\treturn new MySqlVarBinaryBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAuC;AACvC,oBAAgD;AAWzC,MAAM,8BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA+B;AAC3D,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,SAAS,QAAQ;AAAA,EAC9B;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAEH,0BAAsC;AAAA,EAC/C,QAA0B,wBAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEhC,mBAAmB,OAA6C;AACxE,QAAI,OAAO,UAAU;AAAU,aAAO;AACtC,QAAI,OAAO,SAAS,KAAK;AAAG,aAAO,MAAM,SAAS;AAElD,UAAM,MAAgB,CAAC;AACvB,eAAW,KAAK,OAAO;AACtB,UAAI,KAAK,MAAM,KAAK,MAAM,GAAG;AAAA,IAC9B;AAEA,WAAO,IAAI,KAAK,EAAE;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,cAAc,aAAa,KAAK,MAAM;AAAA,EAC1E;AACD;AAaO,SAAS,UAAU,GAAoC,GAA2B;AACxF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA8C,GAAG,CAAC;AAC3E,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
@@ -16,6 +16,7 @@ export declare class MySqlVarBinaryBuilder<T extends ColumnBuilderBaseConfig<'st
16
16
  export declare class MySqlVarBinary<T extends ColumnBaseConfig<'string', 'MySqlVarBinary'>> extends MySqlColumn<T, MySqlVarbinaryOptions> {
17
17
  static readonly [entityKind]: string;
18
18
  length: number | undefined;
19
+ mapFromDriverValue(value: string | Buffer | Uint8Array): string;
19
20
  getSQLType(): string;
20
21
  }
21
22
  export interface MySqlVarbinaryOptions {
@@ -16,6 +16,7 @@ export declare class MySqlVarBinaryBuilder<T extends ColumnBuilderBaseConfig<'st
16
16
  export declare class MySqlVarBinary<T extends ColumnBaseConfig<'string', 'MySqlVarBinary'>> extends MySqlColumn<T, MySqlVarbinaryOptions> {
17
17
  static readonly [entityKind]: string;
18
18
  length: number | undefined;
19
+ mapFromDriverValue(value: string | Buffer | Uint8Array): string;
19
20
  getSQLType(): string;
20
21
  }
21
22
  export interface MySqlVarbinaryOptions {
@@ -19,6 +19,17 @@ class MySqlVarBinaryBuilder extends MySqlColumnBuilder {
19
19
  class MySqlVarBinary extends MySqlColumn {
20
20
  static [entityKind] = "MySqlVarBinary";
21
21
  length = this.config.length;
22
+ mapFromDriverValue(value) {
23
+ if (typeof value === "string")
24
+ return value;
25
+ if (Buffer.isBuffer(value))
26
+ return value.toString();
27
+ const str = [];
28
+ for (const v of value) {
29
+ str.push(v === 49 ? "1" : "0");
30
+ }
31
+ return str.join("");
32
+ }
22
33
  getSQLType() {
23
34
  return this.length === void 0 ? `varbinary` : `varbinary(${this.length})`;
24
35
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/varbinary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarBinaryBuilderInitial<TName extends string> = MySqlVarBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlVarBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlVarBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlVarBinary'>>\n\textends MySqlColumnBuilder<T, MySqlVarbinaryOptions>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinaryBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarbinaryOptions) {\n\t\tsuper(name, 'string', 'MySqlVarBinary');\n\t\tthis.config.length = config?.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlVarBinary<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 MySqlVarBinary<\n\tT extends ColumnBaseConfig<'string', 'MySqlVarBinary'>,\n> extends MySqlColumn<T, MySqlVarbinaryOptions> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varbinary` : `varbinary(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarbinaryOptions {\n\tlength: number;\n}\n\nexport function varbinary(\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<''>;\nexport function varbinary<TName extends string>(\n\tname: TName,\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<TName>;\nexport function varbinary(a?: string | MySqlVarbinaryOptions, b?: MySqlVarbinaryOptions) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarbinaryOptions>(a, b);\n\treturn new MySqlVarBinaryBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA8B;AACvC,SAAS,aAAa,0BAA0B;AAWzC,MAAM,8BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA+B;AAC3D,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,SAAS,QAAQ;AAAA,EAC9B;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAEH,YAAsC;AAAA,EAC/C,QAA0B,UAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEzC,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,cAAc,aAAa,KAAK,MAAM;AAAA,EAC1E;AACD;AAaO,SAAS,UAAU,GAAoC,GAA2B;AACxF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA8C,GAAG,CAAC;AAC3E,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/varbinary.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarBinaryBuilderInitial<TName extends string> = MySqlVarBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlVarBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlVarBinaryBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlVarBinary'>>\n\textends MySqlColumnBuilder<T, MySqlVarbinaryOptions>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinaryBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarbinaryOptions) {\n\t\tsuper(name, 'string', 'MySqlVarBinary');\n\t\tthis.config.length = config?.length;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarBinary<MakeColumnConfig<T, TTableName>> {\n\t\treturn new MySqlVarBinary<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 MySqlVarBinary<\n\tT extends ColumnBaseConfig<'string', 'MySqlVarBinary'>,\n> extends MySqlColumn<T, MySqlVarbinaryOptions> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\toverride mapFromDriverValue(value: string | Buffer | Uint8Array): string {\n\t\tif (typeof value === 'string') return value;\n\t\tif (Buffer.isBuffer(value)) return value.toString();\n\n\t\tconst str: string[] = [];\n\t\tfor (const v of value) {\n\t\t\tstr.push(v === 49 ? '1' : '0');\n\t\t}\n\n\t\treturn str.join('');\n\t}\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varbinary` : `varbinary(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarbinaryOptions {\n\tlength: number;\n}\n\nexport function varbinary(\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<''>;\nexport function varbinary<TName extends string>(\n\tname: TName,\n\tconfig: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial<TName>;\nexport function varbinary(a?: string | MySqlVarbinaryOptions, b?: MySqlVarbinaryOptions) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarbinaryOptions>(a, b);\n\treturn new MySqlVarBinaryBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA8B;AACvC,SAAS,aAAa,0BAA0B;AAWzC,MAAM,8BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA+B;AAC3D,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,SAAS,QAAQ;AAAA,EAC9B;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBAEH,YAAsC;AAAA,EAC/C,QAA0B,UAAU,IAAY;AAAA,EAEhD,SAA6B,KAAK,OAAO;AAAA,EAEhC,mBAAmB,OAA6C;AACxE,QAAI,OAAO,UAAU;AAAU,aAAO;AACtC,QAAI,OAAO,SAAS,KAAK;AAAG,aAAO,MAAM,SAAS;AAElD,UAAM,MAAgB,CAAC;AACvB,eAAW,KAAK,OAAO;AACtB,UAAI,KAAK,MAAM,KAAK,MAAM,GAAG;AAAA,IAC9B;AAEA,WAAO,IAAI,KAAK,EAAE;AAAA,EACnB;AAAA,EAEA,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,cAAc,aAAa,KAAK,MAAM;AAAA,EAC1E;AACD;AAaO,SAAS,UAAU,GAAoC,GAA2B;AACxF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA8C,GAAG,CAAC;AAC3E,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/varchar.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarCharBuilderInitial<\n\tTName extends string,\n\tTEnum extends [string, ...string[]],\n\tTLength extends number | undefined,\n> = MySqlVarCharBuilder<\n\t{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlVarChar';\n\t\tdata: TEnum[number];\n\t\tdriverParam: number | string;\n\t\tenumValues: TEnum;\n\t\tlength: TLength;\n\t}\n>;\n\nexport class MySqlVarCharBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined },\n> extends MySqlColumnBuilder<T, MySqlVarCharConfig<T['enumValues'], T['length']>> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarCharBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarCharConfig<T['enumValues'], T['length']>) {\n\t\tsuper(name, 'string', 'MySqlVarChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }> {\n\t\treturn new MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlVarChar<T extends ColumnBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined }>\n\textends MySqlColumn<T, MySqlVarCharConfig<T['enumValues'], T['length']>, { length: T['length'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarChar';\n\n\treadonly length: number | undefined = this.config.length;\n\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarCharConfig<\n\tTEnum extends string[] | readonly string[] | undefined = string[] | readonly string[] | undefined,\n\tTLength extends number | undefined = number | undefined,\n> {\n\tenum?: TEnum;\n\tlength?: TLength;\n}\n\nexport function varchar<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<'', Writable<T>, L>;\nexport function varchar<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tL extends number | undefined,\n>(\n\tname: TName,\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<TName, Writable<T>, L>;\nexport function varchar(a?: string | MySqlVarCharConfig, b?: MySqlVarCharConfig): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarCharConfig>(a, b);\n\treturn new MySqlVarCharBuilder(name, config as any);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAsD;AACtD,oBAAgD;AAkBzC,MAAM,4BAEH,iCAAwE;AAAA,EACjF,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA0D;AACtF,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuG;AACvG,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,0BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAEhC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,YAAY,WAAW,KAAK,MAAM;AAAA,EACtE;AACD;AAsBO,SAAS,QAAQ,GAAiC,GAA6B;AACrF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA2C,GAAG,CAAC;AACxE,SAAO,IAAI,oBAAoB,MAAM,MAAa;AACnD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/varchar.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarCharBuilderInitial<\n\tTName extends string,\n\tTEnum extends [string, ...string[]],\n\tTLength extends number | undefined,\n> = MySqlVarCharBuilder<\n\t{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlVarChar';\n\t\tdata: TEnum[number];\n\t\tdriverParam: number | string;\n\t\tenumValues: TEnum;\n\t\tlength: TLength;\n\t}\n>;\n\nexport class MySqlVarCharBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined },\n> extends MySqlColumnBuilder<T, MySqlVarCharConfig<T['enumValues'], T['length']>> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarCharBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarCharConfig<T['enumValues'], T['length']>) {\n\t\tsuper(name, 'string', 'MySqlVarChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }> {\n\t\treturn new MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlVarChar<T extends ColumnBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined }>\n\textends MySqlColumn<T, MySqlVarCharConfig<T['enumValues'], T['length']>, { length: T['length'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarChar';\n\n\treadonly length: number | undefined = this.config.length;\n\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarCharConfig<\n\tTEnum extends string[] | readonly string[] | undefined = string[] | readonly string[] | undefined,\n\tTLength extends number | undefined = number | undefined,\n> {\n\tenum?: TEnum;\n\tlength: TLength;\n}\n\nexport function varchar<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<'', Writable<T>, L>;\nexport function varchar<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tL extends number | undefined,\n>(\n\tname: TName,\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<TName, Writable<T>, L>;\nexport function varchar(a?: string | MySqlVarCharConfig, b?: MySqlVarCharConfig): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarCharConfig>(a, b);\n\treturn new MySqlVarCharBuilder(name, config as any);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,mBAAsD;AACtD,oBAAgD;AAkBzC,MAAM,4BAEH,iCAAwE;AAAA,EACjF,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA0D;AACtF,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuG;AACvG,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,0BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAEhC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,YAAY,WAAW,KAAK,MAAM;AAAA,EACtE;AACD;AAsBO,SAAS,QAAQ,GAAiC,GAA6B;AACrF,QAAM,EAAE,MAAM,OAAO,QAAI,qCAA2C,GAAG,CAAC;AACxE,SAAO,IAAI,oBAAoB,MAAM,MAAa;AACnD;","names":[]}
@@ -29,7 +29,7 @@ export declare class MySqlVarChar<T extends ColumnBaseConfig<'string', 'MySqlVar
29
29
  }
30
30
  export interface MySqlVarCharConfig<TEnum extends string[] | readonly string[] | undefined = string[] | readonly string[] | undefined, TLength extends number | undefined = number | undefined> {
31
31
  enum?: TEnum;
32
- length?: TLength;
32
+ length: TLength;
33
33
  }
34
34
  export declare function varchar<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(config: MySqlVarCharConfig<T | Writable<T>, L>): MySqlVarCharBuilderInitial<'', Writable<T>, L>;
35
35
  export declare function varchar<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(name: TName, config: MySqlVarCharConfig<T | Writable<T>, L>): MySqlVarCharBuilderInitial<TName, Writable<T>, L>;
@@ -29,7 +29,7 @@ export declare class MySqlVarChar<T extends ColumnBaseConfig<'string', 'MySqlVar
29
29
  }
30
30
  export interface MySqlVarCharConfig<TEnum extends string[] | readonly string[] | undefined = string[] | readonly string[] | undefined, TLength extends number | undefined = number | undefined> {
31
31
  enum?: TEnum;
32
- length?: TLength;
32
+ length: TLength;
33
33
  }
34
34
  export declare function varchar<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(config: MySqlVarCharConfig<T | Writable<T>, L>): MySqlVarCharBuilderInitial<'', Writable<T>, L>;
35
35
  export declare function varchar<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(name: TName, config: MySqlVarCharConfig<T | Writable<T>, L>): MySqlVarCharBuilderInitial<TName, Writable<T>, L>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/columns/varchar.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarCharBuilderInitial<\n\tTName extends string,\n\tTEnum extends [string, ...string[]],\n\tTLength extends number | undefined,\n> = MySqlVarCharBuilder<\n\t{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlVarChar';\n\t\tdata: TEnum[number];\n\t\tdriverParam: number | string;\n\t\tenumValues: TEnum;\n\t\tlength: TLength;\n\t}\n>;\n\nexport class MySqlVarCharBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined },\n> extends MySqlColumnBuilder<T, MySqlVarCharConfig<T['enumValues'], T['length']>> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarCharBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarCharConfig<T['enumValues'], T['length']>) {\n\t\tsuper(name, 'string', 'MySqlVarChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }> {\n\t\treturn new MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlVarChar<T extends ColumnBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined }>\n\textends MySqlColumn<T, MySqlVarCharConfig<T['enumValues'], T['length']>, { length: T['length'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarChar';\n\n\treadonly length: number | undefined = this.config.length;\n\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarCharConfig<\n\tTEnum extends string[] | readonly string[] | undefined = string[] | readonly string[] | undefined,\n\tTLength extends number | undefined = number | undefined,\n> {\n\tenum?: TEnum;\n\tlength?: TLength;\n}\n\nexport function varchar<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<'', Writable<T>, L>;\nexport function varchar<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tL extends number | undefined,\n>(\n\tname: TName,\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<TName, Writable<T>, L>;\nexport function varchar(a?: string | MySqlVarCharConfig, b?: MySqlVarCharConfig): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarCharConfig>(a, b);\n\treturn new MySqlVarCharBuilder(name, config as any);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA6C;AACtD,SAAS,aAAa,0BAA0B;AAkBzC,MAAM,4BAEH,mBAAwE;AAAA,EACjF,QAA0B,UAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA0D;AACtF,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuG;AACvG,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAEhC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,YAAY,WAAW,KAAK,MAAM;AAAA,EACtE;AACD;AAsBO,SAAS,QAAQ,GAAiC,GAA6B;AACrF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA2C,GAAG,CAAC;AACxE,SAAO,IAAI,oBAAoB,MAAM,MAAa;AACnD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/columns/varchar.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig, type Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarCharBuilderInitial<\n\tTName extends string,\n\tTEnum extends [string, ...string[]],\n\tTLength extends number | undefined,\n> = MySqlVarCharBuilder<\n\t{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlVarChar';\n\t\tdata: TEnum[number];\n\t\tdriverParam: number | string;\n\t\tenumValues: TEnum;\n\t\tlength: TLength;\n\t}\n>;\n\nexport class MySqlVarCharBuilder<\n\tT extends ColumnBuilderBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined },\n> extends MySqlColumnBuilder<T, MySqlVarCharConfig<T['enumValues'], T['length']>> {\n\tstatic override readonly [entityKind]: string = 'MySqlVarCharBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarCharConfig<T['enumValues'], T['length']>) {\n\t\tsuper(name, 'string', 'MySqlVarChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }> {\n\t\treturn new MySqlVarChar<MakeColumnConfig<T, TTableName> & { length: T['length']; enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class MySqlVarChar<T extends ColumnBaseConfig<'string', 'MySqlVarChar'> & { length?: number | undefined }>\n\textends MySqlColumn<T, MySqlVarCharConfig<T['enumValues'], T['length']>, { length: T['length'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlVarChar';\n\n\treadonly length: number | undefined = this.config.length;\n\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarCharConfig<\n\tTEnum extends string[] | readonly string[] | undefined = string[] | readonly string[] | undefined,\n\tTLength extends number | undefined = number | undefined,\n> {\n\tenum?: TEnum;\n\tlength: TLength;\n}\n\nexport function varchar<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<'', Writable<T>, L>;\nexport function varchar<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tL extends number | undefined,\n>(\n\tname: TName,\n\tconfig: MySqlVarCharConfig<T | Writable<T>, L>,\n): MySqlVarCharBuilderInitial<TName, Writable<T>, L>;\nexport function varchar(a?: string | MySqlVarCharConfig, b?: MySqlVarCharConfig): any {\n\tconst { name, config } = getColumnNameAndConfig<MySqlVarCharConfig>(a, b);\n\treturn new MySqlVarCharBuilder(name, config as any);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,8BAA6C;AACtD,SAAS,aAAa,0BAA0B;AAkBzC,MAAM,4BAEH,mBAAwE;AAAA,EACjF,QAA0B,UAAU,IAAY;AAAA;AAAA,EAGhD,YAAY,MAAiB,QAA0D;AACtF,UAAM,MAAM,UAAU,cAAc;AACpC,SAAK,OAAO,SAAS,OAAO;AAC5B,SAAK,OAAO,OAAO,OAAO;AAAA,EAC3B;AAAA;AAAA,EAGS,MACR,OACuG;AACvG,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEvC,SAA6B,KAAK,OAAO;AAAA,EAEhC,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,KAAK,WAAW,SAAY,YAAY,WAAW,KAAK,MAAM;AAAA,EACtE;AACD;AAsBO,SAAS,QAAQ,GAAiC,GAA6B;AACrF,QAAM,EAAE,MAAM,OAAO,IAAI,uBAA2C,GAAG,CAAC;AACxE,SAAO,IAAI,oBAAoB,MAAM,MAAa;AACnD;","names":[]}
@@ -26,8 +26,8 @@ var import_casing = require("../casing.cjs");
26
26
  var import_column = require("../column.cjs");
27
27
  var import_entity = require("../entity.cjs");
28
28
  var import_errors = require("../errors.cjs");
29
- var import_expressions = require("../expressions.cjs");
30
29
  var import_relations = require("../relations.cjs");
30
+ var import_expressions = require("../sql/expressions/index.cjs");
31
31
  var import_sql = require("../sql/sql.cjs");
32
32
  var import_subquery = require("../subquery.cjs");
33
33
  var import_table = require("../table.cjs");
@@ -222,8 +222,8 @@ class MySqlDialect {
222
222
  const distinctSql = distinct ? import_sql.sql` distinct` : void 0;
223
223
  const selection = this.buildSelection(fieldsList, { isSingleTable });
224
224
  const tableSql = (() => {
225
- if ((0, import_entity.is)(table, import_table.Table) && table[import_table.Table.Symbol.OriginalName] !== table[import_table.Table.Symbol.Name]) {
226
- return import_sql.sql`${import_sql.sql.identifier(table[import_table.Table.Symbol.OriginalName])} ${import_sql.sql.identifier(table[import_table.Table.Symbol.Name])}`;
225
+ if ((0, import_entity.is)(table, import_table.Table) && table[import_table.Table.Symbol.IsAlias]) {
226
+ return import_sql.sql`${import_sql.sql`${import_sql.sql.identifier(table[import_table.Table.Symbol.Schema] ?? "")}.`.if(table[import_table.Table.Symbol.Schema])}${import_sql.sql.identifier(table[import_table.Table.Symbol.OriginalName])} ${import_sql.sql.identifier(table[import_table.Table.Symbol.Name])}`;
227
227
  }
228
228
  return table;
229
229
  })();