drizzle-orm 0.40.1-83f67e4 → 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.
- package/aws-data-api/pg/driver.cjs +1 -1
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.js +1 -1
- package/aws-data-api/pg/driver.js.map +1 -1
- package/gel-core/expressions.cjs +3 -3
- package/gel-core/expressions.cjs.map +1 -1
- package/gel-core/expressions.d.cts +1 -1
- package/gel-core/expressions.d.ts +1 -1
- package/gel-core/expressions.js +2 -2
- package/gel-core/expressions.js.map +1 -1
- package/index.cjs +0 -2
- package/index.cjs.map +1 -1
- package/index.d.cts +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/mysql-core/columns/binary.cjs +11 -0
- package/mysql-core/columns/binary.cjs.map +1 -1
- package/mysql-core/columns/binary.d.cts +1 -0
- package/mysql-core/columns/binary.d.ts +1 -0
- package/mysql-core/columns/binary.js +11 -0
- package/mysql-core/columns/binary.js.map +1 -1
- package/mysql-core/columns/decimal.cjs +91 -1
- package/mysql-core/columns/decimal.cjs.map +1 -1
- package/mysql-core/columns/decimal.d.cts +48 -3
- package/mysql-core/columns/decimal.d.ts +48 -3
- package/mysql-core/columns/decimal.js +87 -1
- package/mysql-core/columns/decimal.js.map +1 -1
- package/mysql-core/columns/varbinary.cjs +11 -0
- package/mysql-core/columns/varbinary.cjs.map +1 -1
- package/mysql-core/columns/varbinary.d.cts +1 -0
- package/mysql-core/columns/varbinary.d.ts +1 -0
- package/mysql-core/columns/varbinary.js +11 -0
- package/mysql-core/columns/varbinary.js.map +1 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +1 -1
- package/mysql-core/columns/varchar.d.ts +1 -1
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/dialect.cjs +3 -3
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.js +3 -3
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/expressions.cjs +3 -3
- package/mysql-core/expressions.cjs.map +1 -1
- package/mysql-core/expressions.d.cts +1 -1
- package/mysql-core/expressions.d.ts +1 -1
- package/mysql-core/expressions.js +2 -2
- package/mysql-core/expressions.js.map +1 -1
- package/mysql2/driver.cjs +2 -1
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.js +2 -1
- package/mysql2/driver.js.map +1 -1
- package/neon-http/driver.cjs +5 -0
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.js +5 -0
- package/neon-http/driver.js.map +1 -1
- package/neon-serverless/session.cjs +30 -0
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.js +30 -0
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/session.cjs +30 -0
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.js +30 -0
- package/node-postgres/session.js.map +1 -1
- package/package.json +5 -15
- package/pg-core/columns/numeric.cjs +91 -1
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +62 -6
- package/pg-core/columns/numeric.d.ts +62 -6
- package/pg-core/columns/numeric.js +87 -1
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/dialect.cjs +1 -1
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.js +1 -1
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/expressions.cjs +3 -3
- package/pg-core/expressions.cjs.map +1 -1
- package/pg-core/expressions.d.cts +1 -1
- package/pg-core/expressions.d.ts +1 -1
- package/pg-core/expressions.js +2 -2
- package/pg-core/expressions.js.map +1 -1
- package/pglite/session.cjs +22 -2
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.js +22 -2
- package/pglite/session.js.map +1 -1
- package/postgres-js/driver.cjs +1 -1
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.js +1 -1
- package/postgres-js/driver.js.map +1 -1
- package/relations.d.cts +6 -6
- package/relations.d.ts +6 -6
- package/singlestore/driver.cjs +1 -3
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.js +1 -3
- package/singlestore/driver.js.map +1 -1
- package/singlestore-core/columns/binary.cjs +11 -0
- package/singlestore-core/columns/binary.cjs.map +1 -1
- package/singlestore-core/columns/binary.d.cts +1 -0
- package/singlestore-core/columns/binary.d.ts +1 -0
- package/singlestore-core/columns/binary.js +11 -0
- package/singlestore-core/columns/binary.js.map +1 -1
- package/singlestore-core/columns/decimal.cjs +92 -5
- package/singlestore-core/columns/decimal.cjs.map +1 -1
- package/singlestore-core/columns/decimal.d.cts +50 -3
- package/singlestore-core/columns/decimal.d.ts +50 -3
- package/singlestore-core/columns/decimal.js +88 -5
- package/singlestore-core/columns/decimal.js.map +1 -1
- package/singlestore-core/columns/varbinary.cjs +11 -0
- package/singlestore-core/columns/varbinary.cjs.map +1 -1
- package/singlestore-core/columns/varbinary.d.cts +1 -0
- package/singlestore-core/columns/varbinary.d.ts +1 -0
- package/singlestore-core/columns/varbinary.js +11 -0
- package/singlestore-core/columns/varbinary.js.map +1 -1
- package/singlestore-core/columns/varchar.cjs.map +1 -1
- package/singlestore-core/columns/varchar.d.cts +1 -1
- package/singlestore-core/columns/varchar.d.ts +1 -1
- package/singlestore-core/columns/varchar.js.map +1 -1
- package/singlestore-core/dialect.cjs +3 -3
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.js +3 -3
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/expressions.cjs +3 -3
- package/singlestore-core/expressions.cjs.map +1 -1
- package/singlestore-core/expressions.d.cts +1 -1
- package/singlestore-core/expressions.d.ts +1 -1
- package/singlestore-core/expressions.js +2 -2
- package/singlestore-core/expressions.js.map +1 -1
- package/sql-js/session.cjs +18 -42
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +3 -6
- package/sql-js/session.d.ts +3 -6
- package/sql-js/session.js +18 -42
- package/sql-js/session.js.map +1 -1
- package/sqlite-core/columns/blob.cjs +6 -0
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.d.cts +1 -0
- package/sqlite-core/columns/blob.d.ts +1 -0
- package/sqlite-core/columns/blob.js +6 -0
- package/sqlite-core/columns/blob.js.map +1 -1
- package/sqlite-core/columns/numeric.cjs +64 -2
- package/sqlite-core/columns/numeric.cjs.map +1 -1
- package/sqlite-core/columns/numeric.d.cts +43 -2
- package/sqlite-core/columns/numeric.d.ts +43 -2
- package/sqlite-core/columns/numeric.js +60 -2
- package/sqlite-core/columns/numeric.js.map +1 -1
- package/sqlite-core/dialect.cjs +15 -5
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.js +15 -5
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/expressions.cjs +3 -3
- package/sqlite-core/expressions.cjs.map +1 -1
- package/sqlite-core/expressions.d.cts +1 -1
- package/sqlite-core/expressions.d.ts +1 -1
- package/sqlite-core/expressions.js +2 -2
- package/sqlite-core/expressions.js.map +1 -1
- package/utils.cjs +2 -2
- package/utils.cjs.map +1 -1
- package/utils.js +2 -2
- package/utils.js.map +1 -1
- package/vercel-postgres/session.cjs +30 -0
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.js +30 -0
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/expressions.cjs +0 -23
- package/expressions.cjs.map +0 -1
- package/expressions.d.cts +0 -1
- package/expressions.d.ts +0 -1
- package/expressions.js +0 -2
- 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
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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":[]}
|
package/mysql-core/dialect.cjs
CHANGED
|
@@ -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.
|
|
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
|
})();
|