drizzle-orm 1.0.0-beta.1-5e64efc → 1.0.0-beta.1-00df263
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/_relations.d.cts +6 -6
- package/_relations.d.ts +6 -6
- 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/enum.cjs +40 -5
- package/mysql-core/columns/enum.cjs.map +1 -1
- package/mysql-core/columns/enum.d.cts +25 -2
- package/mysql-core/columns/enum.d.ts +25 -2
- package/mysql-core/columns/enum.js +38 -5
- package/mysql-core/columns/enum.js.map +1 -1
- package/mysql-core/dialect.cjs +1 -1
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.js +1 -1
- 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/package.json +7 -17
- package/pg-core/columns/enum.cjs +46 -2
- package/pg-core/columns/enum.cjs.map +1 -1
- package/pg-core/columns/enum.d.cts +39 -1
- package/pg-core/columns/enum.d.ts +39 -1
- package/pg-core/columns/enum.js +43 -2
- package/pg-core/columns/enum.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/pg-core/schema.cjs +6 -2
- package/pg-core/schema.cjs.map +1 -1
- package/pg-core/schema.d.cts +1 -2
- package/pg-core/schema.d.ts +1 -2
- package/pg-core/schema.js +7 -3
- package/pg-core/schema.js.map +1 -1
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.js.map +1 -1
- package/relations.d.cts +6 -6
- package/relations.d.ts +6 -6
- package/singlestore-core/dialect.cjs +1 -1
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.js +1 -1
- 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/expressions/conditions.cjs.map +1 -1
- package/sql/expressions/conditions.d.cts +2 -2
- package/sql/expressions/conditions.d.ts +2 -2
- package/sql/expressions/conditions.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/table.cjs.map +1 -1
- package/table.d.cts +3 -0
- package/table.d.ts +3 -0
- package/table.js.map +1 -1
- package/utils.cjs.map +1 -1
- package/utils.d.cts +1 -0
- package/utils.d.ts +1 -0
- package/utils.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
package/_relations.d.cts
CHANGED
|
@@ -68,18 +68,18 @@ export type ExtractRelationsFromTableExtraConfigSchema<TConfig extends unknown[]
|
|
|
68
68
|
export declare function getOperators(): {
|
|
69
69
|
and: typeof and;
|
|
70
70
|
between: typeof between;
|
|
71
|
-
eq: import("./
|
|
71
|
+
eq: import("./index.ts").BinaryOperator;
|
|
72
72
|
exists: typeof exists;
|
|
73
|
-
gt: import("./
|
|
74
|
-
gte: import("./
|
|
73
|
+
gt: import("./index.ts").BinaryOperator;
|
|
74
|
+
gte: import("./index.ts").BinaryOperator;
|
|
75
75
|
ilike: typeof ilike;
|
|
76
76
|
inArray: typeof inArray;
|
|
77
77
|
isNull: typeof isNull;
|
|
78
78
|
isNotNull: typeof isNotNull;
|
|
79
79
|
like: typeof like;
|
|
80
|
-
lt: import("./
|
|
81
|
-
lte: import("./
|
|
82
|
-
ne: import("./
|
|
80
|
+
lt: import("./index.ts").BinaryOperator;
|
|
81
|
+
lte: import("./index.ts").BinaryOperator;
|
|
82
|
+
ne: import("./index.ts").BinaryOperator;
|
|
83
83
|
not: typeof not;
|
|
84
84
|
notBetween: typeof notBetween;
|
|
85
85
|
notExists: typeof notExists;
|
package/_relations.d.ts
CHANGED
|
@@ -68,18 +68,18 @@ export type ExtractRelationsFromTableExtraConfigSchema<TConfig extends unknown[]
|
|
|
68
68
|
export declare function getOperators(): {
|
|
69
69
|
and: typeof and;
|
|
70
70
|
between: typeof between;
|
|
71
|
-
eq: import("./
|
|
71
|
+
eq: import("./index.js").BinaryOperator;
|
|
72
72
|
exists: typeof exists;
|
|
73
|
-
gt: import("./
|
|
74
|
-
gte: import("./
|
|
73
|
+
gt: import("./index.js").BinaryOperator;
|
|
74
|
+
gte: import("./index.js").BinaryOperator;
|
|
75
75
|
ilike: typeof ilike;
|
|
76
76
|
inArray: typeof inArray;
|
|
77
77
|
isNull: typeof isNull;
|
|
78
78
|
isNotNull: typeof isNotNull;
|
|
79
79
|
like: typeof like;
|
|
80
|
-
lt: import("./
|
|
81
|
-
lte: import("./
|
|
82
|
-
ne: import("./
|
|
80
|
+
lt: import("./index.js").BinaryOperator;
|
|
81
|
+
lte: import("./index.js").BinaryOperator;
|
|
82
|
+
ne: import("./index.js").BinaryOperator;
|
|
83
83
|
not: typeof not;
|
|
84
84
|
notBetween: typeof notBetween;
|
|
85
85
|
notExists: typeof notExists;
|
package/gel-core/expressions.cjs
CHANGED
|
@@ -23,9 +23,9 @@ __export(expressions_exports, {
|
|
|
23
23
|
substring: () => substring
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(expressions_exports);
|
|
26
|
-
var import_expressions = require("../expressions.cjs");
|
|
26
|
+
var import_expressions = require("../sql/expressions/index.cjs");
|
|
27
27
|
var import_sql = require("../sql/sql.cjs");
|
|
28
|
-
__reExport(expressions_exports, require("../expressions.cjs"), module.exports);
|
|
28
|
+
__reExport(expressions_exports, require("../sql/expressions/index.cjs"), module.exports);
|
|
29
29
|
function concat(column, value) {
|
|
30
30
|
return import_sql.sql`${column} || ${(0, import_expressions.bindIfParam)(value, column)}`;
|
|
31
31
|
}
|
|
@@ -44,6 +44,6 @@ function substring(column, { from, for: _for }) {
|
|
|
44
44
|
0 && (module.exports = {
|
|
45
45
|
concat,
|
|
46
46
|
substring,
|
|
47
|
-
...require("../expressions.cjs")
|
|
47
|
+
...require("../sql/expressions/index.cjs")
|
|
48
48
|
});
|
|
49
49
|
//# sourceMappingURL=expressions.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/gel-core/expressions.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/gel-core/expressions.ts"],"sourcesContent":["import type { GelColumn } from '~/gel-core/columns/index.ts';\nimport { bindIfParam } from '~/sql/expressions/index.ts';\nimport type { Placeholder, SQL, SQLChunk, SQLWrapper } from '~/sql/sql.ts';\nimport { sql } from '~/sql/sql.ts';\n\nexport * from '~/sql/expressions/index.ts';\n\nexport function concat(column: GelColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL {\n\treturn sql`${column} || ${bindIfParam(value, column)}`;\n}\n\nexport function substring(\n\tcolumn: GelColumn | SQL.Aliased,\n\t{ from, for: _for }: { from?: number | Placeholder | SQLWrapper; for?: number | Placeholder | SQLWrapper },\n): SQL {\n\tconst chunks: SQLChunk[] = [sql`substring(`, column];\n\tif (from !== undefined) {\n\t\tchunks.push(sql` from `, bindIfParam(from, column));\n\t}\n\tif (_for !== undefined) {\n\t\tchunks.push(sql` for `, bindIfParam(_for, column));\n\t}\n\tchunks.push(sql`)`);\n\treturn sql.join(chunks);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yBAA4B;AAE5B,iBAAoB;AAEpB,gCAAc,uCALd;AAOO,SAAS,OAAO,QAAiC,OAA+C;AACtG,SAAO,iBAAM,MAAM,WAAO,gCAAY,OAAO,MAAM,CAAC;AACrD;AAEO,SAAS,UACf,QACA,EAAE,MAAM,KAAK,KAAK,GACZ;AACN,QAAM,SAAqB,CAAC,4BAAiB,MAAM;AACnD,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,4BAAa,gCAAY,MAAM,MAAM,CAAC;AAAA,EACnD;AACA,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,2BAAY,gCAAY,MAAM,MAAM,CAAC;AAAA,EAClD;AACA,SAAO,KAAK,iBAAM;AAClB,SAAO,eAAI,KAAK,MAAM;AACvB;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GelColumn } from "./columns/index.cjs";
|
|
2
2
|
import type { Placeholder, SQL, SQLWrapper } from "../sql/sql.cjs";
|
|
3
|
-
export * from "../expressions.cjs";
|
|
3
|
+
export * from "../sql/expressions/index.cjs";
|
|
4
4
|
export declare function concat(column: GelColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL;
|
|
5
5
|
export declare function substring(column: GelColumn | SQL.Aliased, { from, for: _for }: {
|
|
6
6
|
from?: number | Placeholder | SQLWrapper;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GelColumn } from "./columns/index.js";
|
|
2
2
|
import type { Placeholder, SQL, SQLWrapper } from "../sql/sql.js";
|
|
3
|
-
export * from "../expressions.js";
|
|
3
|
+
export * from "../sql/expressions/index.js";
|
|
4
4
|
export declare function concat(column: GelColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL;
|
|
5
5
|
export declare function substring(column: GelColumn | SQL.Aliased, { from, for: _for }: {
|
|
6
6
|
from?: number | Placeholder | SQLWrapper;
|
package/gel-core/expressions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { bindIfParam } from "../expressions.js";
|
|
1
|
+
import { bindIfParam } from "../sql/expressions/index.js";
|
|
2
2
|
import { sql } from "../sql/sql.js";
|
|
3
|
-
export * from "../expressions.js";
|
|
3
|
+
export * from "../sql/expressions/index.js";
|
|
4
4
|
function concat(column, value) {
|
|
5
5
|
return sql`${column} || ${bindIfParam(value, column)}`;
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/gel-core/expressions.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/gel-core/expressions.ts"],"sourcesContent":["import type { GelColumn } from '~/gel-core/columns/index.ts';\nimport { bindIfParam } from '~/sql/expressions/index.ts';\nimport type { Placeholder, SQL, SQLChunk, SQLWrapper } from '~/sql/sql.ts';\nimport { sql } from '~/sql/sql.ts';\n\nexport * from '~/sql/expressions/index.ts';\n\nexport function concat(column: GelColumn | SQL.Aliased, value: string | Placeholder | SQLWrapper): SQL {\n\treturn sql`${column} || ${bindIfParam(value, column)}`;\n}\n\nexport function substring(\n\tcolumn: GelColumn | SQL.Aliased,\n\t{ from, for: _for }: { from?: number | Placeholder | SQLWrapper; for?: number | Placeholder | SQLWrapper },\n): SQL {\n\tconst chunks: SQLChunk[] = [sql`substring(`, column];\n\tif (from !== undefined) {\n\t\tchunks.push(sql` from `, bindIfParam(from, column));\n\t}\n\tif (_for !== undefined) {\n\t\tchunks.push(sql` for `, bindIfParam(_for, column));\n\t}\n\tchunks.push(sql`)`);\n\treturn sql.join(chunks);\n}\n"],"mappings":"AACA,SAAS,mBAAmB;AAE5B,SAAS,WAAW;AAEpB,cAAc;AAEP,SAAS,OAAO,QAAiC,OAA+C;AACtG,SAAO,MAAM,MAAM,OAAO,YAAY,OAAO,MAAM,CAAC;AACrD;AAEO,SAAS,UACf,QACA,EAAE,MAAM,KAAK,KAAK,GACZ;AACN,QAAM,SAAqB,CAAC,iBAAiB,MAAM;AACnD,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,aAAa,YAAY,MAAM,MAAM,CAAC;AAAA,EACnD;AACA,MAAI,SAAS,QAAW;AACvB,WAAO,KAAK,YAAY,YAAY,MAAM,MAAM,CAAC;AAAA,EAClD;AACA,SAAO,KAAK,MAAM;AAClB,SAAO,IAAI,KAAK,MAAM;AACvB;","names":[]}
|
package/index.cjs
CHANGED
|
@@ -20,7 +20,6 @@ __reExport(src_exports, require("./column-builder.cjs"), module.exports);
|
|
|
20
20
|
__reExport(src_exports, require("./column.cjs"), module.exports);
|
|
21
21
|
__reExport(src_exports, require("./entity.cjs"), module.exports);
|
|
22
22
|
__reExport(src_exports, require("./errors.cjs"), module.exports);
|
|
23
|
-
__reExport(src_exports, require("./expressions.cjs"), module.exports);
|
|
24
23
|
__reExport(src_exports, require("./logger.cjs"), module.exports);
|
|
25
24
|
__reExport(src_exports, require("./operations.cjs"), module.exports);
|
|
26
25
|
__reExport(src_exports, require("./query-promise.cjs"), module.exports);
|
|
@@ -37,7 +36,6 @@ __reExport(src_exports, require("./view-common.cjs"), module.exports);
|
|
|
37
36
|
...require("./column.cjs"),
|
|
38
37
|
...require("./entity.cjs"),
|
|
39
38
|
...require("./errors.cjs"),
|
|
40
|
-
...require("./expressions.cjs"),
|
|
41
39
|
...require("./logger.cjs"),
|
|
42
40
|
...require("./operations.cjs"),
|
|
43
41
|
...require("./query-promise.cjs"),
|
package/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './logger.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,uBAAd;AACA,wBAAc,gCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,wBAHd;AAIA,wBAAc,wBAJd;AAKA,wBAAc,wBALd;AAMA,wBAAc,4BANd;AAOA,wBAAc,+BAPd;AAQA,wBAAc,2BARd;AASA,wBAAc,2BATd;AAUA,wBAAc,0BAVd;AAWA,wBAAc,uBAXd;AAYA,wBAAc,uBAZd;AAaA,wBAAc,6BAbd;","names":[]}
|
package/index.d.cts
CHANGED
|
@@ -3,7 +3,6 @@ export * from "./column-builder.cjs";
|
|
|
3
3
|
export * from "./column.cjs";
|
|
4
4
|
export * from "./entity.cjs";
|
|
5
5
|
export * from "./errors.cjs";
|
|
6
|
-
export * from "./expressions.cjs";
|
|
7
6
|
export * from "./logger.cjs";
|
|
8
7
|
export * from "./operations.cjs";
|
|
9
8
|
export * from "./query-promise.cjs";
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './logger.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -20,11 +20,12 @@ var enum_exports = {};
|
|
|
20
20
|
__export(enum_exports, {
|
|
21
21
|
MySqlEnumColumn: () => MySqlEnumColumn,
|
|
22
22
|
MySqlEnumColumnBuilder: () => MySqlEnumColumnBuilder,
|
|
23
|
+
MySqlEnumObjectColumn: () => MySqlEnumObjectColumn,
|
|
24
|
+
MySqlEnumObjectColumnBuilder: () => MySqlEnumObjectColumnBuilder,
|
|
23
25
|
mysqlEnum: () => mysqlEnum
|
|
24
26
|
});
|
|
25
27
|
module.exports = __toCommonJS(enum_exports);
|
|
26
28
|
var import_entity = require("../../entity.cjs");
|
|
27
|
-
var import_utils = require("../../utils.cjs");
|
|
28
29
|
var import_common = require("./common.cjs");
|
|
29
30
|
class MySqlEnumColumnBuilder extends import_common.MySqlColumnBuilder {
|
|
30
31
|
static [import_entity.entityKind] = "MySqlEnumColumnBuilder";
|
|
@@ -47,17 +48,51 @@ class MySqlEnumColumn extends import_common.MySqlColumn {
|
|
|
47
48
|
return `enum(${this.enumValues.map((value) => `'${value}'`).join(",")})`;
|
|
48
49
|
}
|
|
49
50
|
}
|
|
51
|
+
class MySqlEnumObjectColumnBuilder extends import_common.MySqlColumnBuilder {
|
|
52
|
+
static [import_entity.entityKind] = "MySqlEnumObjectColumnBuilder";
|
|
53
|
+
constructor(name, values) {
|
|
54
|
+
super(name, "string", "MySqlEnumObjectColumn");
|
|
55
|
+
this.config.enumValues = values;
|
|
56
|
+
}
|
|
57
|
+
/** @internal */
|
|
58
|
+
build(table) {
|
|
59
|
+
return new MySqlEnumObjectColumn(
|
|
60
|
+
table,
|
|
61
|
+
this.config
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
class MySqlEnumObjectColumn extends import_common.MySqlColumn {
|
|
66
|
+
static [import_entity.entityKind] = "MySqlEnumObjectColumn";
|
|
67
|
+
enumValues = this.config.enumValues;
|
|
68
|
+
getSQLType() {
|
|
69
|
+
return `enum(${this.enumValues.map((value) => `'${value}'`).join(",")})`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
50
72
|
function mysqlEnum(a, b) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
73
|
+
if (typeof a === "string" && Array.isArray(b) || Array.isArray(a)) {
|
|
74
|
+
const name = typeof a === "string" && a.length > 0 ? a : "";
|
|
75
|
+
const values = (typeof a === "string" ? b : a) ?? [];
|
|
76
|
+
if (values.length === 0) {
|
|
77
|
+
throw new Error(`You have an empty array for "${name}" enum values`);
|
|
78
|
+
}
|
|
79
|
+
return new MySqlEnumColumnBuilder(name, values);
|
|
80
|
+
}
|
|
81
|
+
if (typeof a === "string" && typeof b === "object" || typeof a === "object") {
|
|
82
|
+
const name = typeof a === "object" ? "" : a;
|
|
83
|
+
const values = typeof a === "object" ? Object.values(a) : typeof b === "object" ? Object.values(b) : [];
|
|
84
|
+
if (values.length === 0) {
|
|
85
|
+
throw new Error(`You have an empty array for "${name}" enum values`);
|
|
86
|
+
}
|
|
87
|
+
return new MySqlEnumObjectColumnBuilder(name, values);
|
|
54
88
|
}
|
|
55
|
-
return new MySqlEnumColumnBuilder(name, values);
|
|
56
89
|
}
|
|
57
90
|
// Annotate the CommonJS export names for ESM import in node:
|
|
58
91
|
0 && (module.exports = {
|
|
59
92
|
MySqlEnumColumn,
|
|
60
93
|
MySqlEnumColumnBuilder,
|
|
94
|
+
MySqlEnumObjectColumn,
|
|
95
|
+
MySqlEnumObjectColumnBuilder,
|
|
61
96
|
mysqlEnum
|
|
62
97
|
});
|
|
63
98
|
//# sourceMappingURL=enum.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mysql-core/columns/enum.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 {
|
|
1
|
+
{"version":3,"sources":["../../../src/mysql-core/columns/enum.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 { NonArray, Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\n// enum as string union\nexport type MySqlEnumColumnBuilderInitial<TName extends string, TEnum extends string[]> = MySqlEnumColumnBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlEnumColumn';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n}>;\n\nexport class MySqlEnumColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlEnumColumn'>>\n\textends MySqlColumnBuilder<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumColumnBuilder';\n\n\tconstructor(name: T['name'], values: T['enumValues']) {\n\t\tsuper(name, 'string', 'MySqlEnumColumn');\n\t\tthis.config.enumValues = values;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlEnumColumn<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlEnumColumn<MakeColumnConfig<T, TTableName> & { 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 MySqlEnumColumn<T extends ColumnBaseConfig<'string', 'MySqlEnumColumn'>>\n\textends MySqlColumn<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumColumn';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn `enum(${this.enumValues!.map((value) => `'${value}'`).join(',')})`;\n\t}\n}\n\n// enum as ts enum\n\nexport type MySqlEnumObjectColumnBuilderInitial<TName extends string, TEnum extends object> =\n\tMySqlEnumObjectColumnBuilder<{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlEnumObjectColumn';\n\t\tdata: TEnum[keyof TEnum];\n\t\tdriverParam: string;\n\t\tenumValues: string[];\n\t}>;\n\nexport class MySqlEnumObjectColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlEnumObjectColumn'>>\n\textends MySqlColumnBuilder<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumObjectColumnBuilder';\n\n\tconstructor(name: T['name'], values: T['enumValues']) {\n\t\tsuper(name, 'string', 'MySqlEnumObjectColumn');\n\t\tthis.config.enumValues = values;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlEnumObjectColumn<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlEnumObjectColumn<MakeColumnConfig<T, TTableName> & { 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 MySqlEnumObjectColumn<T extends ColumnBaseConfig<'string', 'MySqlEnumObjectColumn'>>\n\textends MySqlColumn<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumObjectColumn';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn `enum(${this.enumValues!.map((value) => `'${value}'`).join(',')})`;\n\t}\n}\n\nexport function mysqlEnum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tvalues: T | Writable<T>,\n): MySqlEnumColumnBuilderInitial<'', Writable<T>>;\nexport function mysqlEnum<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: TName,\n\tvalues: T | Writable<T>,\n): MySqlEnumColumnBuilderInitial<TName, Writable<T>>;\nexport function mysqlEnum<E extends Record<string, string>>(\n\tenumObj: NonArray<E>,\n): MySqlEnumObjectColumnBuilderInitial<'', E>;\nexport function mysqlEnum<TName extends string, E extends Record<string, string>>(\n\tname: TName,\n\tvalues: NonArray<E>,\n): MySqlEnumObjectColumnBuilderInitial<TName, E>;\nexport function mysqlEnum(\n\ta?: string | readonly [string, ...string[]] | [string, ...string[]] | Record<string, string>,\n\tb?: readonly [string, ...string[]] | [string, ...string[]] | Record<string, string>,\n): any {\n\t// if name + array or just array - it means we have string union passed\n\tif (typeof a === 'string' && Array.isArray(b) || Array.isArray(a)) {\n\t\tconst name = typeof a === 'string' && a.length > 0 ? a : '';\n\t\tconst values = (typeof a === 'string' ? b : a) ?? [];\n\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error(`You have an empty array for \"${name}\" enum values`);\n\t\t}\n\n\t\treturn new MySqlEnumColumnBuilder(name, values as any);\n\t}\n\n\tif (typeof a === 'string' && typeof b === 'object' || typeof a === 'object') {\n\t\tconst name = typeof a === 'object' ? '' : a;\n\t\tconst values = typeof a === 'object' ? Object.values(a) : typeof b === 'object' ? Object.values(b) : [];\n\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error(`You have an empty array for \"${name}\" enum values`);\n\t\t}\n\n\t\treturn new MySqlEnumObjectColumnBuilder(name, values as any);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAG3B,oBAAgD;AAYzC,MAAM,+BACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyB;AACrD,UAAM,MAAM,UAAU,iBAAiB;AACvC,SAAK,OAAO,aAAa;AAAA,EAC1B;AAAA;AAAA,EAGS,MACR,OACqF;AACrF,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,wBACJ,0BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,QAAQ,KAAK,WAAY,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,EACvE;AACD;AAcO,MAAM,qCACJ,iCACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyB;AACrD,UAAM,MAAM,UAAU,uBAAuB;AAC7C,SAAK,OAAO,aAAa;AAAA,EAC1B;AAAA;AAAA,EAGS,MACR,OAC2F;AAC3F,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,8BACJ,0BACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,QAAQ,KAAK,WAAY,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,EACvE;AACD;AAgBO,SAAS,UACf,GACA,GACM;AAEN,MAAI,OAAO,MAAM,YAAY,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,GAAG;AAClE,UAAM,OAAO,OAAO,MAAM,YAAY,EAAE,SAAS,IAAI,IAAI;AACzD,UAAM,UAAU,OAAO,MAAM,WAAW,IAAI,MAAM,CAAC;AAEnD,QAAI,OAAO,WAAW,GAAG;AACxB,YAAM,IAAI,MAAM,gCAAgC,IAAI,eAAe;AAAA,IACpE;AAEA,WAAO,IAAI,uBAAuB,MAAM,MAAa;AAAA,EACtD;AAEA,MAAI,OAAO,MAAM,YAAY,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AAC5E,UAAM,OAAO,OAAO,MAAM,WAAW,KAAK;AAC1C,UAAM,SAAS,OAAO,MAAM,WAAW,OAAO,OAAO,CAAC,IAAI,OAAO,MAAM,WAAW,OAAO,OAAO,CAAC,IAAI,CAAC;AAEtG,QAAI,OAAO,WAAW,GAAG;AACxB,YAAM,IAAI,MAAM,gCAAgC,IAAI,eAAe;AAAA,IACpE;AAEA,WAAO,IAAI,6BAA6B,MAAM,MAAa;AAAA,EAC5D;AACD;","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
|
|
2
2
|
import type { ColumnBaseConfig } from "../../column.cjs";
|
|
3
3
|
import { entityKind } from "../../entity.cjs";
|
|
4
|
-
import {
|
|
4
|
+
import type { NonArray, Writable } from "../../utils.cjs";
|
|
5
5
|
import { MySqlColumn, MySqlColumnBuilder } from "./common.cjs";
|
|
6
|
-
export type MySqlEnumColumnBuilderInitial<TName extends string, TEnum extends
|
|
6
|
+
export type MySqlEnumColumnBuilderInitial<TName extends string, TEnum extends string[]> = MySqlEnumColumnBuilder<{
|
|
7
7
|
name: TName;
|
|
8
8
|
dataType: 'string';
|
|
9
9
|
columnType: 'MySqlEnumColumn';
|
|
@@ -24,5 +24,28 @@ export declare class MySqlEnumColumn<T extends ColumnBaseConfig<'string', 'MySql
|
|
|
24
24
|
readonly enumValues: T["enumValues"];
|
|
25
25
|
getSQLType(): string;
|
|
26
26
|
}
|
|
27
|
+
export type MySqlEnumObjectColumnBuilderInitial<TName extends string, TEnum extends object> = MySqlEnumObjectColumnBuilder<{
|
|
28
|
+
name: TName;
|
|
29
|
+
dataType: 'string';
|
|
30
|
+
columnType: 'MySqlEnumObjectColumn';
|
|
31
|
+
data: TEnum[keyof TEnum];
|
|
32
|
+
driverParam: string;
|
|
33
|
+
enumValues: string[];
|
|
34
|
+
}>;
|
|
35
|
+
export declare class MySqlEnumObjectColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlEnumObjectColumn'>> extends MySqlColumnBuilder<T, {
|
|
36
|
+
enumValues: T['enumValues'];
|
|
37
|
+
}> {
|
|
38
|
+
static readonly [entityKind]: string;
|
|
39
|
+
constructor(name: T['name'], values: T['enumValues']);
|
|
40
|
+
}
|
|
41
|
+
export declare class MySqlEnumObjectColumn<T extends ColumnBaseConfig<'string', 'MySqlEnumObjectColumn'>> extends MySqlColumn<T, {
|
|
42
|
+
enumValues: T['enumValues'];
|
|
43
|
+
}> {
|
|
44
|
+
static readonly [entityKind]: string;
|
|
45
|
+
readonly enumValues: T["enumValues"];
|
|
46
|
+
getSQLType(): string;
|
|
47
|
+
}
|
|
27
48
|
export declare function mysqlEnum<U extends string, T extends Readonly<[U, ...U[]]>>(values: T | Writable<T>): MySqlEnumColumnBuilderInitial<'', Writable<T>>;
|
|
28
49
|
export declare function mysqlEnum<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(name: TName, values: T | Writable<T>): MySqlEnumColumnBuilderInitial<TName, Writable<T>>;
|
|
50
|
+
export declare function mysqlEnum<E extends Record<string, string>>(enumObj: NonArray<E>): MySqlEnumObjectColumnBuilderInitial<'', E>;
|
|
51
|
+
export declare function mysqlEnum<TName extends string, E extends Record<string, string>>(name: TName, values: NonArray<E>): MySqlEnumObjectColumnBuilderInitial<TName, E>;
|
|
@@ -1,9 +1,9 @@
|
|
|
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 {
|
|
4
|
+
import type { NonArray, Writable } from "../../utils.js";
|
|
5
5
|
import { MySqlColumn, MySqlColumnBuilder } from "./common.js";
|
|
6
|
-
export type MySqlEnumColumnBuilderInitial<TName extends string, TEnum extends
|
|
6
|
+
export type MySqlEnumColumnBuilderInitial<TName extends string, TEnum extends string[]> = MySqlEnumColumnBuilder<{
|
|
7
7
|
name: TName;
|
|
8
8
|
dataType: 'string';
|
|
9
9
|
columnType: 'MySqlEnumColumn';
|
|
@@ -24,5 +24,28 @@ export declare class MySqlEnumColumn<T extends ColumnBaseConfig<'string', 'MySql
|
|
|
24
24
|
readonly enumValues: T["enumValues"];
|
|
25
25
|
getSQLType(): string;
|
|
26
26
|
}
|
|
27
|
+
export type MySqlEnumObjectColumnBuilderInitial<TName extends string, TEnum extends object> = MySqlEnumObjectColumnBuilder<{
|
|
28
|
+
name: TName;
|
|
29
|
+
dataType: 'string';
|
|
30
|
+
columnType: 'MySqlEnumObjectColumn';
|
|
31
|
+
data: TEnum[keyof TEnum];
|
|
32
|
+
driverParam: string;
|
|
33
|
+
enumValues: string[];
|
|
34
|
+
}>;
|
|
35
|
+
export declare class MySqlEnumObjectColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlEnumObjectColumn'>> extends MySqlColumnBuilder<T, {
|
|
36
|
+
enumValues: T['enumValues'];
|
|
37
|
+
}> {
|
|
38
|
+
static readonly [entityKind]: string;
|
|
39
|
+
constructor(name: T['name'], values: T['enumValues']);
|
|
40
|
+
}
|
|
41
|
+
export declare class MySqlEnumObjectColumn<T extends ColumnBaseConfig<'string', 'MySqlEnumObjectColumn'>> extends MySqlColumn<T, {
|
|
42
|
+
enumValues: T['enumValues'];
|
|
43
|
+
}> {
|
|
44
|
+
static readonly [entityKind]: string;
|
|
45
|
+
readonly enumValues: T["enumValues"];
|
|
46
|
+
getSQLType(): string;
|
|
47
|
+
}
|
|
27
48
|
export declare function mysqlEnum<U extends string, T extends Readonly<[U, ...U[]]>>(values: T | Writable<T>): MySqlEnumColumnBuilderInitial<'', Writable<T>>;
|
|
28
49
|
export declare function mysqlEnum<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(name: TName, values: T | Writable<T>): MySqlEnumColumnBuilderInitial<TName, Writable<T>>;
|
|
50
|
+
export declare function mysqlEnum<E extends Record<string, string>>(enumObj: NonArray<E>): MySqlEnumObjectColumnBuilderInitial<'', E>;
|
|
51
|
+
export declare function mysqlEnum<TName extends string, E extends Record<string, string>>(name: TName, values: NonArray<E>): MySqlEnumObjectColumnBuilderInitial<TName, E>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { entityKind } from "../../entity.js";
|
|
2
|
-
import { getColumnNameAndConfig } from "../../utils.js";
|
|
3
2
|
import { MySqlColumn, MySqlColumnBuilder } from "./common.js";
|
|
4
3
|
class MySqlEnumColumnBuilder extends MySqlColumnBuilder {
|
|
5
4
|
static [entityKind] = "MySqlEnumColumnBuilder";
|
|
@@ -22,16 +21,50 @@ class MySqlEnumColumn extends MySqlColumn {
|
|
|
22
21
|
return `enum(${this.enumValues.map((value) => `'${value}'`).join(",")})`;
|
|
23
22
|
}
|
|
24
23
|
}
|
|
24
|
+
class MySqlEnumObjectColumnBuilder extends MySqlColumnBuilder {
|
|
25
|
+
static [entityKind] = "MySqlEnumObjectColumnBuilder";
|
|
26
|
+
constructor(name, values) {
|
|
27
|
+
super(name, "string", "MySqlEnumObjectColumn");
|
|
28
|
+
this.config.enumValues = values;
|
|
29
|
+
}
|
|
30
|
+
/** @internal */
|
|
31
|
+
build(table) {
|
|
32
|
+
return new MySqlEnumObjectColumn(
|
|
33
|
+
table,
|
|
34
|
+
this.config
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
class MySqlEnumObjectColumn extends MySqlColumn {
|
|
39
|
+
static [entityKind] = "MySqlEnumObjectColumn";
|
|
40
|
+
enumValues = this.config.enumValues;
|
|
41
|
+
getSQLType() {
|
|
42
|
+
return `enum(${this.enumValues.map((value) => `'${value}'`).join(",")})`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
25
45
|
function mysqlEnum(a, b) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
46
|
+
if (typeof a === "string" && Array.isArray(b) || Array.isArray(a)) {
|
|
47
|
+
const name = typeof a === "string" && a.length > 0 ? a : "";
|
|
48
|
+
const values = (typeof a === "string" ? b : a) ?? [];
|
|
49
|
+
if (values.length === 0) {
|
|
50
|
+
throw new Error(`You have an empty array for "${name}" enum values`);
|
|
51
|
+
}
|
|
52
|
+
return new MySqlEnumColumnBuilder(name, values);
|
|
53
|
+
}
|
|
54
|
+
if (typeof a === "string" && typeof b === "object" || typeof a === "object") {
|
|
55
|
+
const name = typeof a === "object" ? "" : a;
|
|
56
|
+
const values = typeof a === "object" ? Object.values(a) : typeof b === "object" ? Object.values(b) : [];
|
|
57
|
+
if (values.length === 0) {
|
|
58
|
+
throw new Error(`You have an empty array for "${name}" enum values`);
|
|
59
|
+
}
|
|
60
|
+
return new MySqlEnumObjectColumnBuilder(name, values);
|
|
29
61
|
}
|
|
30
|
-
return new MySqlEnumColumnBuilder(name, values);
|
|
31
62
|
}
|
|
32
63
|
export {
|
|
33
64
|
MySqlEnumColumn,
|
|
34
65
|
MySqlEnumColumnBuilder,
|
|
66
|
+
MySqlEnumObjectColumn,
|
|
67
|
+
MySqlEnumObjectColumnBuilder,
|
|
35
68
|
mysqlEnum
|
|
36
69
|
};
|
|
37
70
|
//# sourceMappingURL=enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mysql-core/columns/enum.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 {
|
|
1
|
+
{"version":3,"sources":["../../../src/mysql-core/columns/enum.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 { NonArray, Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\n// enum as string union\nexport type MySqlEnumColumnBuilderInitial<TName extends string, TEnum extends string[]> = MySqlEnumColumnBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlEnumColumn';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n}>;\n\nexport class MySqlEnumColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlEnumColumn'>>\n\textends MySqlColumnBuilder<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumColumnBuilder';\n\n\tconstructor(name: T['name'], values: T['enumValues']) {\n\t\tsuper(name, 'string', 'MySqlEnumColumn');\n\t\tthis.config.enumValues = values;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlEnumColumn<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlEnumColumn<MakeColumnConfig<T, TTableName> & { 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 MySqlEnumColumn<T extends ColumnBaseConfig<'string', 'MySqlEnumColumn'>>\n\textends MySqlColumn<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumColumn';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn `enum(${this.enumValues!.map((value) => `'${value}'`).join(',')})`;\n\t}\n}\n\n// enum as ts enum\n\nexport type MySqlEnumObjectColumnBuilderInitial<TName extends string, TEnum extends object> =\n\tMySqlEnumObjectColumnBuilder<{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlEnumObjectColumn';\n\t\tdata: TEnum[keyof TEnum];\n\t\tdriverParam: string;\n\t\tenumValues: string[];\n\t}>;\n\nexport class MySqlEnumObjectColumnBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlEnumObjectColumn'>>\n\textends MySqlColumnBuilder<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumObjectColumnBuilder';\n\n\tconstructor(name: T['name'], values: T['enumValues']) {\n\t\tsuper(name, 'string', 'MySqlEnumObjectColumn');\n\t\tthis.config.enumValues = values;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlEnumObjectColumn<MakeColumnConfig<T, TTableName> & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlEnumObjectColumn<MakeColumnConfig<T, TTableName> & { 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 MySqlEnumObjectColumn<T extends ColumnBaseConfig<'string', 'MySqlEnumObjectColumn'>>\n\textends MySqlColumn<T, { enumValues: T['enumValues'] }>\n{\n\tstatic override readonly [entityKind]: string = 'MySqlEnumObjectColumn';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn `enum(${this.enumValues!.map((value) => `'${value}'`).join(',')})`;\n\t}\n}\n\nexport function mysqlEnum<U extends string, T extends Readonly<[U, ...U[]]>>(\n\tvalues: T | Writable<T>,\n): MySqlEnumColumnBuilderInitial<'', Writable<T>>;\nexport function mysqlEnum<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>>(\n\tname: TName,\n\tvalues: T | Writable<T>,\n): MySqlEnumColumnBuilderInitial<TName, Writable<T>>;\nexport function mysqlEnum<E extends Record<string, string>>(\n\tenumObj: NonArray<E>,\n): MySqlEnumObjectColumnBuilderInitial<'', E>;\nexport function mysqlEnum<TName extends string, E extends Record<string, string>>(\n\tname: TName,\n\tvalues: NonArray<E>,\n): MySqlEnumObjectColumnBuilderInitial<TName, E>;\nexport function mysqlEnum(\n\ta?: string | readonly [string, ...string[]] | [string, ...string[]] | Record<string, string>,\n\tb?: readonly [string, ...string[]] | [string, ...string[]] | Record<string, string>,\n): any {\n\t// if name + array or just array - it means we have string union passed\n\tif (typeof a === 'string' && Array.isArray(b) || Array.isArray(a)) {\n\t\tconst name = typeof a === 'string' && a.length > 0 ? a : '';\n\t\tconst values = (typeof a === 'string' ? b : a) ?? [];\n\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error(`You have an empty array for \"${name}\" enum values`);\n\t\t}\n\n\t\treturn new MySqlEnumColumnBuilder(name, values as any);\n\t}\n\n\tif (typeof a === 'string' && typeof b === 'object' || typeof a === 'object') {\n\t\tconst name = typeof a === 'object' ? '' : a;\n\t\tconst values = typeof a === 'object' ? Object.values(a) : typeof b === 'object' ? Object.values(b) : [];\n\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error(`You have an empty array for \"${name}\" enum values`);\n\t\t}\n\n\t\treturn new MySqlEnumObjectColumnBuilder(name, values as any);\n\t}\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAG3B,SAAS,aAAa,0BAA0B;AAYzC,MAAM,+BACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyB;AACrD,UAAM,MAAM,UAAU,iBAAiB;AACvC,SAAK,OAAO,aAAa;AAAA,EAC1B;AAAA;AAAA,EAGS,MACR,OACqF;AACrF,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,wBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,QAAQ,KAAK,WAAY,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,EACvE;AACD;AAcO,MAAM,qCACJ,mBACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAEhD,YAAY,MAAiB,QAAyB;AACrD,UAAM,MAAM,UAAU,uBAAuB;AAC7C,SAAK,OAAO,aAAa;AAAA,EAC1B;AAAA;AAAA,EAGS,MACR,OAC2F;AAC3F,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,8BACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAE3C,aAAqB;AACpB,WAAO,QAAQ,KAAK,WAAY,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,EACvE;AACD;AAgBO,SAAS,UACf,GACA,GACM;AAEN,MAAI,OAAO,MAAM,YAAY,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,GAAG;AAClE,UAAM,OAAO,OAAO,MAAM,YAAY,EAAE,SAAS,IAAI,IAAI;AACzD,UAAM,UAAU,OAAO,MAAM,WAAW,IAAI,MAAM,CAAC;AAEnD,QAAI,OAAO,WAAW,GAAG;AACxB,YAAM,IAAI,MAAM,gCAAgC,IAAI,eAAe;AAAA,IACpE;AAEA,WAAO,IAAI,uBAAuB,MAAM,MAAa;AAAA,EACtD;AAEA,MAAI,OAAO,MAAM,YAAY,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU;AAC5E,UAAM,OAAO,OAAO,MAAM,WAAW,KAAK;AAC1C,UAAM,SAAS,OAAO,MAAM,WAAW,OAAO,OAAO,CAAC,IAAI,OAAO,MAAM,WAAW,OAAO,OAAO,CAAC,IAAI,CAAC;AAEtG,QAAI,OAAO,WAAW,GAAG;AACxB,YAAM,IAAI,MAAM,gCAAgC,IAAI,eAAe;AAAA,IACpE;AAEA,WAAO,IAAI,6BAA6B,MAAM,MAAa;AAAA,EAC5D;AACD;","names":[]}
|
package/mysql-core/dialect.cjs
CHANGED
|
@@ -37,8 +37,8 @@ var import_casing = require("../casing.cjs");
|
|
|
37
37
|
var import_column = require("../column.cjs");
|
|
38
38
|
var import_entity = require("../entity.cjs");
|
|
39
39
|
var import_errors = require("../errors.cjs");
|
|
40
|
-
var import_expressions = require("../expressions.cjs");
|
|
41
40
|
var import_relations = require("../relations.cjs");
|
|
41
|
+
var import_expressions = require("../sql/expressions/index.cjs");
|
|
42
42
|
var import_sql = require("../sql/sql.cjs");
|
|
43
43
|
var import_subquery = require("../subquery.cjs");
|
|
44
44
|
var import_table = require("../table.cjs");
|