semola 0.5.2 → 0.5.3
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/README.md +88 -13
- package/dist/cron/builder/index.cjs +166 -0
- package/dist/cron/builder/index.d.cts +28 -0
- package/dist/cron/builder/index.d.cts.map +1 -0
- package/dist/cron/builder/index.d.mts +28 -0
- package/dist/cron/builder/index.d.mts.map +1 -0
- package/dist/cron/builder/index.mjs +163 -0
- package/dist/cron/builder/index.mjs.map +1 -0
- package/dist/cron/builder/types.cjs +27 -0
- package/dist/cron/builder/types.d.cts +79 -0
- package/dist/cron/builder/types.d.cts.map +1 -0
- package/dist/cron/builder/types.d.mts +79 -0
- package/dist/cron/builder/types.d.mts.map +1 -0
- package/dist/cron/builder/types.mjs +28 -0
- package/dist/cron/builder/types.mjs.map +1 -0
- package/dist/cron/core/index.cjs +308 -0
- package/dist/cron/core/index.d.cts +39 -0
- package/dist/cron/core/index.d.cts.map +1 -0
- package/dist/cron/core/index.d.mts +39 -0
- package/dist/cron/core/index.d.mts.map +1 -0
- package/dist/cron/core/index.mjs +310 -0
- package/dist/cron/core/index.mjs.map +1 -0
- package/dist/cron/{scanner.cjs → core/scanner.cjs} +2 -2
- package/dist/cron/{scanner.mjs → core/scanner.mjs} +2 -2
- package/dist/cron/core/scanner.mjs.map +1 -0
- package/dist/cron/{types.d.cts → core/types.d.cts} +1 -1
- package/dist/cron/core/types.d.cts.map +1 -0
- package/dist/cron/{types.d.mts → core/types.d.mts} +1 -1
- package/dist/cron/core/types.d.mts.map +1 -0
- package/dist/errors/types.d.cts +1 -1
- package/dist/errors/types.d.mts +1 -1
- package/dist/lib/cache/index.d.cts +3 -3
- package/dist/lib/cache/index.d.mts +3 -3
- package/dist/lib/cron/index.cjs +12 -275
- package/dist/lib/cron/index.d.cts +4 -39
- package/dist/lib/cron/index.d.mts +4 -39
- package/dist/lib/cron/index.mjs +4 -277
- package/dist/lib/errors/index.d.cts +2 -2
- package/dist/lib/errors/index.d.cts.map +1 -1
- package/dist/lib/errors/index.d.mts +2 -2
- package/dist/lib/errors/index.d.mts.map +1 -1
- package/dist/lib/errors/index.mjs.map +1 -1
- package/dist/lib/i18n/index.cjs +6 -1
- package/dist/lib/i18n/index.d.cts.map +1 -1
- package/dist/lib/i18n/index.d.mts.map +1 -1
- package/dist/lib/i18n/index.mjs +6 -1
- package/dist/lib/i18n/index.mjs.map +1 -1
- package/dist/lib/logging/index.cjs +18 -0
- package/dist/lib/logging/index.d.cts +7 -0
- package/dist/lib/logging/index.d.mts +7 -0
- package/dist/lib/logging/index.mjs +5 -0
- package/dist/lib/orm/index.cjs +20 -0
- package/dist/lib/orm/index.d.cts +7 -0
- package/dist/lib/orm/index.d.mts +7 -0
- package/dist/lib/orm/index.mjs +6 -0
- package/dist/lib/prompts/index.d.cts +8 -8
- package/dist/lib/prompts/index.d.mts +8 -8
- package/dist/lib/pubsub/index.cjs +82 -13
- package/dist/lib/pubsub/index.d.cts +14 -5
- package/dist/lib/pubsub/index.d.cts.map +1 -1
- package/dist/lib/pubsub/index.d.mts +14 -5
- package/dist/lib/pubsub/index.d.mts.map +1 -1
- package/dist/lib/pubsub/index.mjs +82 -13
- package/dist/lib/pubsub/index.mjs.map +1 -1
- package/dist/lib/queue/index.d.cts +2 -2
- package/dist/lib/queue/index.d.mts +2 -2
- package/dist/lib/workflow/index.cjs +534 -0
- package/dist/lib/workflow/index.d.cts +7 -0
- package/dist/lib/workflow/index.d.cts.map +1 -0
- package/dist/lib/workflow/index.d.mts +7 -0
- package/dist/lib/workflow/index.d.mts.map +1 -0
- package/dist/lib/workflow/index.mjs +535 -0
- package/dist/lib/workflow/index.mjs.map +1 -0
- package/dist/logging/core/index.cjs +99 -0
- package/dist/logging/core/index.d.cts +26 -0
- package/dist/logging/core/index.d.cts.map +1 -0
- package/dist/logging/core/index.d.mts +26 -0
- package/dist/logging/core/index.d.mts.map +1 -0
- package/dist/logging/core/index.mjs +99 -0
- package/dist/logging/core/index.mjs.map +1 -0
- package/dist/logging/core/types.cjs +10 -0
- package/dist/logging/core/types.d.cts +22 -0
- package/dist/logging/core/types.d.cts.map +1 -0
- package/dist/logging/core/types.d.mts +22 -0
- package/dist/logging/core/types.d.mts.map +1 -0
- package/dist/logging/core/types.mjs +12 -0
- package/dist/logging/core/types.mjs.map +1 -0
- package/dist/logging/formatter/index.cjs +119 -0
- package/dist/logging/formatter/index.d.cts +27 -0
- package/dist/logging/formatter/index.d.cts.map +1 -0
- package/dist/logging/formatter/index.d.mts +27 -0
- package/dist/logging/formatter/index.d.mts.map +1 -0
- package/dist/logging/formatter/index.mjs +115 -0
- package/dist/logging/formatter/index.mjs.map +1 -0
- package/dist/logging/formatter/types.d.cts +5 -0
- package/dist/logging/formatter/types.d.cts.map +1 -0
- package/dist/logging/formatter/types.d.mts +5 -0
- package/dist/logging/formatter/types.d.mts.map +1 -0
- package/dist/logging/provider/index.cjs +165 -0
- package/dist/logging/provider/index.d.cts +28 -0
- package/dist/logging/provider/index.d.cts.map +1 -0
- package/dist/logging/provider/index.d.mts +28 -0
- package/dist/logging/provider/index.d.mts.map +1 -0
- package/dist/logging/provider/index.mjs +165 -0
- package/dist/logging/provider/index.mjs.map +1 -0
- package/dist/logging/provider/types.d.cts +23 -0
- package/dist/logging/provider/types.d.cts.map +1 -0
- package/dist/logging/provider/types.d.mts +23 -0
- package/dist/logging/provider/types.d.mts.map +1 -0
- package/dist/orm/column.cjs +137 -0
- package/dist/orm/column.d.cts +121 -0
- package/dist/orm/column.d.cts.map +1 -0
- package/dist/orm/column.d.mts +121 -0
- package/dist/orm/column.d.mts.map +1 -0
- package/dist/orm/column.mjs +132 -0
- package/dist/orm/column.mjs.map +1 -0
- package/dist/orm/dialect/index.cjs +14 -0
- package/dist/orm/dialect/index.mjs +16 -0
- package/dist/orm/dialect/index.mjs.map +1 -0
- package/dist/orm/dialect/mysql.cjs +31 -0
- package/dist/orm/dialect/mysql.mjs +33 -0
- package/dist/orm/dialect/mysql.mjs.map +1 -0
- package/dist/orm/dialect/postgres.cjs +23 -0
- package/dist/orm/dialect/postgres.mjs +25 -0
- package/dist/orm/dialect/postgres.mjs.map +1 -0
- package/dist/orm/dialect/sqlite.cjs +31 -0
- package/dist/orm/dialect/sqlite.mjs +33 -0
- package/dist/orm/dialect/sqlite.mjs.map +1 -0
- package/dist/orm/dialect/utils.cjs +8 -0
- package/dist/orm/dialect/utils.mjs +10 -0
- package/dist/orm/dialect/utils.mjs.map +1 -0
- package/dist/orm/internal/table-columns.cjs +31 -0
- package/dist/orm/internal/table-columns.mjs +32 -0
- package/dist/orm/internal/table-columns.mjs.map +1 -0
- package/dist/orm/internal/table-lookup.cjs +35 -0
- package/dist/orm/internal/table-lookup.mjs +35 -0
- package/dist/orm/internal/table-lookup.mjs.map +1 -0
- package/dist/orm/internal/table-relations.cjs +28 -0
- package/dist/orm/internal/table-relations.mjs +29 -0
- package/dist/orm/internal/table-relations.mjs.map +1 -0
- package/dist/orm/migration/config.cjs +7 -0
- package/dist/orm/migration/config.d.cts +7 -0
- package/dist/orm/migration/config.d.cts.map +1 -0
- package/dist/orm/migration/config.d.mts +7 -0
- package/dist/orm/migration/config.d.mts.map +1 -0
- package/dist/orm/migration/config.mjs +8 -0
- package/dist/orm/migration/config.mjs.map +1 -0
- package/dist/orm/migration/types.d.cts +20 -0
- package/dist/orm/migration/types.d.cts.map +1 -0
- package/dist/orm/migration/types.d.mts +20 -0
- package/dist/orm/migration/types.d.mts.map +1 -0
- package/dist/orm/orm.cjs +41 -0
- package/dist/orm/orm.d.cts +18 -0
- package/dist/orm/orm.d.cts.map +1 -0
- package/dist/orm/orm.d.mts +18 -0
- package/dist/orm/orm.d.mts.map +1 -0
- package/dist/orm/orm.mjs +43 -0
- package/dist/orm/orm.mjs.map +1 -0
- package/dist/orm/relation.cjs +18 -0
- package/dist/orm/relation.d.cts +8 -0
- package/dist/orm/relation.d.cts.map +1 -0
- package/dist/orm/relation.d.mts +8 -0
- package/dist/orm/relation.d.mts.map +1 -0
- package/dist/orm/relation.mjs +19 -0
- package/dist/orm/relation.mjs.map +1 -0
- package/dist/orm/runtime/builders/mutations.cjs +29 -0
- package/dist/orm/runtime/builders/mutations.mjs +28 -0
- package/dist/orm/runtime/builders/mutations.mjs.map +1 -0
- package/dist/orm/runtime/builders/select.cjs +18 -0
- package/dist/orm/runtime/builders/select.mjs +19 -0
- package/dist/orm/runtime/builders/select.mjs.map +1 -0
- package/dist/orm/runtime/client.cjs +90 -0
- package/dist/orm/runtime/client.mjs +92 -0
- package/dist/orm/runtime/client.mjs.map +1 -0
- package/dist/orm/runtime/context.cjs +49 -0
- package/dist/orm/runtime/context.mjs +51 -0
- package/dist/orm/runtime/context.mjs.map +1 -0
- package/dist/orm/runtime/dialect/index.cjs +11 -0
- package/dist/orm/runtime/dialect/index.mjs +13 -0
- package/dist/orm/runtime/dialect/index.mjs.map +1 -0
- package/dist/orm/runtime/dialect/mysql.cjs +95 -0
- package/dist/orm/runtime/dialect/mysql.mjs +97 -0
- package/dist/orm/runtime/dialect/mysql.mjs.map +1 -0
- package/dist/orm/runtime/dialect/postgres.cjs +51 -0
- package/dist/orm/runtime/dialect/postgres.mjs +53 -0
- package/dist/orm/runtime/dialect/postgres.mjs.map +1 -0
- package/dist/orm/runtime/dialect/sqlite.cjs +4 -0
- package/dist/orm/runtime/dialect/sqlite.mjs +7 -0
- package/dist/orm/runtime/dialect/sqlite.mjs.map +1 -0
- package/dist/orm/runtime/errors.cjs +19 -0
- package/dist/orm/runtime/errors.mjs +21 -0
- package/dist/orm/runtime/errors.mjs.map +1 -0
- package/dist/orm/runtime/hydrate/many.cjs +46 -0
- package/dist/orm/runtime/hydrate/many.mjs +48 -0
- package/dist/orm/runtime/hydrate/many.mjs.map +1 -0
- package/dist/orm/runtime/hydrate/one.cjs +38 -0
- package/dist/orm/runtime/hydrate/one.mjs +40 -0
- package/dist/orm/runtime/hydrate/one.mjs.map +1 -0
- package/dist/orm/runtime/hydrate.cjs +49 -0
- package/dist/orm/runtime/hydrate.mjs +51 -0
- package/dist/orm/runtime/hydrate.mjs.map +1 -0
- package/dist/orm/runtime/rows.cjs +30 -0
- package/dist/orm/runtime/rows.mjs +31 -0
- package/dist/orm/runtime/rows.mjs.map +1 -0
- package/dist/orm/runtime/utils.cjs +27 -0
- package/dist/orm/runtime/utils.mjs +27 -0
- package/dist/orm/runtime/utils.mjs.map +1 -0
- package/dist/orm/sql/parse-array.cjs +64 -0
- package/dist/orm/sql/parse-array.mjs +66 -0
- package/dist/orm/sql/parse-array.mjs.map +1 -0
- package/dist/orm/sql/plan/select.cjs +36 -0
- package/dist/orm/sql/plan/select.mjs +38 -0
- package/dist/orm/sql/plan/select.mjs.map +1 -0
- package/dist/orm/sql/plan/where/operators.cjs +95 -0
- package/dist/orm/sql/plan/where/operators.mjs +97 -0
- package/dist/orm/sql/plan/where/operators.mjs.map +1 -0
- package/dist/orm/sql/plan/where.cjs +59 -0
- package/dist/orm/sql/plan/where.mjs +61 -0
- package/dist/orm/sql/plan/where.mjs.map +1 -0
- package/dist/orm/sql/serialize/clauses.cjs +36 -0
- package/dist/orm/sql/serialize/clauses.mjs +37 -0
- package/dist/orm/sql/serialize/clauses.mjs.map +1 -0
- package/dist/orm/sql/serialize/joins.cjs +31 -0
- package/dist/orm/sql/serialize/joins.mjs +33 -0
- package/dist/orm/sql/serialize/joins.mjs.map +1 -0
- package/dist/orm/sql/serialize/values.cjs +30 -0
- package/dist/orm/sql/serialize/values.mjs +32 -0
- package/dist/orm/sql/serialize/values.mjs.map +1 -0
- package/dist/orm/sql/serialize/where/predicate.cjs +73 -0
- package/dist/orm/sql/serialize/where/predicate.mjs +75 -0
- package/dist/orm/sql/serialize/where/predicate.mjs.map +1 -0
- package/dist/orm/sql/serialize/where/tree.cjs +26 -0
- package/dist/orm/sql/serialize/where/tree.mjs +28 -0
- package/dist/orm/sql/serialize/where/tree.mjs.map +1 -0
- package/dist/orm/sql/serialize/where.cjs +10 -0
- package/dist/orm/sql/serialize/where.mjs +12 -0
- package/dist/orm/sql/serialize/where.mjs.map +1 -0
- package/dist/orm/sql/serialize.cjs +24 -0
- package/dist/orm/sql/serialize.mjs +25 -0
- package/dist/orm/sql/serialize.mjs.map +1 -0
- package/dist/orm/table.cjs +12 -0
- package/dist/orm/table.d.cts +12 -0
- package/dist/orm/table.d.cts.map +1 -0
- package/dist/orm/table.d.mts +12 -0
- package/dist/orm/table.d.mts.map +1 -0
- package/dist/orm/table.mjs +14 -0
- package/dist/orm/table.mjs.map +1 -0
- package/dist/orm/types.d.cts +183 -0
- package/dist/orm/types.d.cts.map +1 -0
- package/dist/orm/types.d.mts +183 -0
- package/dist/orm/types.d.mts.map +1 -0
- package/dist/workflow/types.d.cts +83 -0
- package/dist/workflow/types.d.cts.map +1 -0
- package/dist/workflow/types.d.mts +83 -0
- package/dist/workflow/types.d.mts.map +1 -0
- package/package.json +29 -3
- package/dist/cron/scanner.mjs.map +0 -1
- package/dist/cron/types.d.cts.map +0 -1
- package/dist/cron/types.d.mts.map +0 -1
- package/dist/lib/cron/index.d.cts.map +0 -1
- package/dist/lib/cron/index.d.mts.map +0 -1
- package/dist/lib/cron/index.mjs.map +0 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { ColumnKind, ColumnMetaBase, KindToType } from "./types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/orm/column.d.ts
|
|
4
|
+
declare class ColumnDef<K extends ColumnKind, TMeta extends ColumnMetaBase, TValue = KindToType<K>> {
|
|
5
|
+
readonly kind: K;
|
|
6
|
+
readonly meta: TMeta;
|
|
7
|
+
constructor(kind: K, meta: TMeta);
|
|
8
|
+
primaryKey(): ColumnDef<K, TMeta & {
|
|
9
|
+
isPrimaryKey: true;
|
|
10
|
+
isNotNull: true;
|
|
11
|
+
}, TValue>;
|
|
12
|
+
asArray(): ColumnDef<K, TMeta & {
|
|
13
|
+
isSqlArray: true;
|
|
14
|
+
}, [TValue] extends [unknown[]] ? TValue : TValue[]>;
|
|
15
|
+
notNull(): ColumnDef<K, TMeta & {
|
|
16
|
+
isNotNull: true;
|
|
17
|
+
}, TValue>;
|
|
18
|
+
unique(): ColumnDef<K, TMeta & {
|
|
19
|
+
isUnique: true;
|
|
20
|
+
}, TValue>;
|
|
21
|
+
references(fn: () => ColumnDef<ColumnKind, ColumnMetaBase, unknown>): ColumnDef<K, TMeta & {
|
|
22
|
+
references: () => ColumnDef<ColumnKind, ColumnMetaBase, unknown>;
|
|
23
|
+
}, TValue>;
|
|
24
|
+
onDelete(action: "CASCADE" | "RESTRICT" | "SET NULL"): ColumnDef<K, TMeta & {
|
|
25
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL";
|
|
26
|
+
}, TValue>;
|
|
27
|
+
default(value: TValue): ColumnDef<K, TMeta & {
|
|
28
|
+
hasDefault: true;
|
|
29
|
+
defaultKind: "value";
|
|
30
|
+
}, TValue>;
|
|
31
|
+
defaultFn(fn: () => TValue): ColumnDef<K, TMeta & {
|
|
32
|
+
hasDefault: true;
|
|
33
|
+
defaultKind: "fn";
|
|
34
|
+
}, TValue>;
|
|
35
|
+
}
|
|
36
|
+
declare function uuid(sqlName: string): ColumnDef<"uuid", {
|
|
37
|
+
sqlName: string;
|
|
38
|
+
defaultValue: unknown;
|
|
39
|
+
isSqlArray: boolean;
|
|
40
|
+
isPrimaryKey: boolean;
|
|
41
|
+
isNotNull: boolean;
|
|
42
|
+
isUnique: boolean;
|
|
43
|
+
isEnum: boolean;
|
|
44
|
+
enumValues: string[] | null;
|
|
45
|
+
enumName: string | null;
|
|
46
|
+
hasDefault: boolean;
|
|
47
|
+
defaultKind: "value" | "fn" | null;
|
|
48
|
+
defaultFn: (() => unknown) | null;
|
|
49
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
50
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
51
|
+
}, string>;
|
|
52
|
+
declare function string(sqlName: string): ColumnDef<"string", {
|
|
53
|
+
sqlName: string;
|
|
54
|
+
defaultValue: unknown;
|
|
55
|
+
isSqlArray: boolean;
|
|
56
|
+
isPrimaryKey: boolean;
|
|
57
|
+
isNotNull: boolean;
|
|
58
|
+
isUnique: boolean;
|
|
59
|
+
isEnum: boolean;
|
|
60
|
+
enumValues: string[] | null;
|
|
61
|
+
enumName: string | null;
|
|
62
|
+
hasDefault: boolean;
|
|
63
|
+
defaultKind: "value" | "fn" | null;
|
|
64
|
+
defaultFn: (() => unknown) | null;
|
|
65
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
66
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
67
|
+
}, string>;
|
|
68
|
+
declare function enumeration<const TValues extends string[]>(sqlName: string, enumName: string, values: TValues): ColumnDef<"enum", ColumnMetaBase, TValues[number]>;
|
|
69
|
+
declare function number(sqlName: string): ColumnDef<"number", {
|
|
70
|
+
sqlName: string;
|
|
71
|
+
defaultValue: unknown;
|
|
72
|
+
isSqlArray: boolean;
|
|
73
|
+
isPrimaryKey: boolean;
|
|
74
|
+
isNotNull: boolean;
|
|
75
|
+
isUnique: boolean;
|
|
76
|
+
isEnum: boolean;
|
|
77
|
+
enumValues: string[] | null;
|
|
78
|
+
enumName: string | null;
|
|
79
|
+
hasDefault: boolean;
|
|
80
|
+
defaultKind: "value" | "fn" | null;
|
|
81
|
+
defaultFn: (() => unknown) | null;
|
|
82
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
83
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
84
|
+
}, number>;
|
|
85
|
+
declare function boolean(sqlName: string): ColumnDef<"boolean", {
|
|
86
|
+
sqlName: string;
|
|
87
|
+
defaultValue: unknown;
|
|
88
|
+
isSqlArray: boolean;
|
|
89
|
+
isPrimaryKey: boolean;
|
|
90
|
+
isNotNull: boolean;
|
|
91
|
+
isUnique: boolean;
|
|
92
|
+
isEnum: boolean;
|
|
93
|
+
enumValues: string[] | null;
|
|
94
|
+
enumName: string | null;
|
|
95
|
+
hasDefault: boolean;
|
|
96
|
+
defaultKind: "value" | "fn" | null;
|
|
97
|
+
defaultFn: (() => unknown) | null;
|
|
98
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
99
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
100
|
+
}, boolean>;
|
|
101
|
+
declare function date(sqlName: string): ColumnDef<"date", {
|
|
102
|
+
sqlName: string;
|
|
103
|
+
defaultValue: unknown;
|
|
104
|
+
isSqlArray: boolean;
|
|
105
|
+
isPrimaryKey: boolean;
|
|
106
|
+
isNotNull: boolean;
|
|
107
|
+
isUnique: boolean;
|
|
108
|
+
isEnum: boolean;
|
|
109
|
+
enumValues: string[] | null;
|
|
110
|
+
enumName: string | null;
|
|
111
|
+
hasDefault: boolean;
|
|
112
|
+
defaultKind: "value" | "fn" | null;
|
|
113
|
+
defaultFn: (() => unknown) | null;
|
|
114
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
115
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
116
|
+
}, Date>;
|
|
117
|
+
declare function json<const T>(sqlName: string): ColumnDef<"json", ColumnMetaBase, T>;
|
|
118
|
+
declare function jsonb<const T>(sqlName: string): ColumnDef<"jsonb", ColumnMetaBase, T>;
|
|
119
|
+
//#endregion
|
|
120
|
+
export { ColumnDef, boolean, date, enumeration, json, jsonb, number, string, uuid };
|
|
121
|
+
//# sourceMappingURL=column.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.d.cts","names":[],"sources":["../../src/lib/orm/column.ts"],"mappings":";;;cAEa,SAAA,WACD,UAAA,gBACI,cAAA,WACL,UAAA,CAAW,CAAA;EAAA,SAGF,IAAA,EAAM,CAAA;EAAA,SACN,IAAA,EAAM,KAAA;cADN,IAAA,EAAM,CAAA,EACN,IAAA,EAAM,KAAA;EAGjB,UAAA,CAAA,GAAU,SAAA,CAAA,CAAA,EAAA,KAAA;;;;EAYV,OAAA,CAAA,GAAO,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAWP,OAAA,CAAA,GAAO,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAOP,MAAA,CAAA,GAAM,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAON,UAAA,CAAW,EAAA,QAAU,SAAA,CAAU,UAAA,EAAY,cAAA,aAAwB,SAAA,CAAA,CAAA,EAAA,KAAA;sBAIlD,SAAA,CAAU,UAAA,EAAY,cAAA;EAAA;EAMvC,QAAA,CAAS,MAAA,wCAA2C,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAQpD,OAAA,CAAQ,KAAA,EAAO,MAAA,GAAM,SAAA,CAAA,CAAA,EAAA,KAAA;;;;EAcrB,SAAA,CAAU,EAAA,QAAU,MAAA,GAAM,SAAA,CAAA,CAAA,EAAA,KAAA;;;;;iBAmCnB,IAAA,CAAK,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAIpB,MAAA,CAAO,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAItB,WAAA,gCAAA,CACd,OAAA,UACA,QAAA,UACA,MAAA,EAAQ,OAAA,GAAO,SAAA,SAAA,cAAA,EAAA,OAAA;AAAA,iBAaD,MAAA,CAAO,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAItB,OAAA,CAAQ,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAIvB,IAAA,CAAK,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAIpB,IAAA,SAAA,CAAc,OAAA,WAAe,SAAA,SAAA,cAAA,EAAA,CAAA;AAAA,iBAO7B,KAAA,SAAA,CAAe,OAAA,WAAe,SAAA,UAAA,cAAA,EAAA,CAAA"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { ColumnKind, ColumnMetaBase, KindToType } from "./types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/orm/column.d.ts
|
|
4
|
+
declare class ColumnDef<K extends ColumnKind, TMeta extends ColumnMetaBase, TValue = KindToType<K>> {
|
|
5
|
+
readonly kind: K;
|
|
6
|
+
readonly meta: TMeta;
|
|
7
|
+
constructor(kind: K, meta: TMeta);
|
|
8
|
+
primaryKey(): ColumnDef<K, TMeta & {
|
|
9
|
+
isPrimaryKey: true;
|
|
10
|
+
isNotNull: true;
|
|
11
|
+
}, TValue>;
|
|
12
|
+
asArray(): ColumnDef<K, TMeta & {
|
|
13
|
+
isSqlArray: true;
|
|
14
|
+
}, [TValue] extends [unknown[]] ? TValue : TValue[]>;
|
|
15
|
+
notNull(): ColumnDef<K, TMeta & {
|
|
16
|
+
isNotNull: true;
|
|
17
|
+
}, TValue>;
|
|
18
|
+
unique(): ColumnDef<K, TMeta & {
|
|
19
|
+
isUnique: true;
|
|
20
|
+
}, TValue>;
|
|
21
|
+
references(fn: () => ColumnDef<ColumnKind, ColumnMetaBase, unknown>): ColumnDef<K, TMeta & {
|
|
22
|
+
references: () => ColumnDef<ColumnKind, ColumnMetaBase, unknown>;
|
|
23
|
+
}, TValue>;
|
|
24
|
+
onDelete(action: "CASCADE" | "RESTRICT" | "SET NULL"): ColumnDef<K, TMeta & {
|
|
25
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL";
|
|
26
|
+
}, TValue>;
|
|
27
|
+
default(value: TValue): ColumnDef<K, TMeta & {
|
|
28
|
+
hasDefault: true;
|
|
29
|
+
defaultKind: "value";
|
|
30
|
+
}, TValue>;
|
|
31
|
+
defaultFn(fn: () => TValue): ColumnDef<K, TMeta & {
|
|
32
|
+
hasDefault: true;
|
|
33
|
+
defaultKind: "fn";
|
|
34
|
+
}, TValue>;
|
|
35
|
+
}
|
|
36
|
+
declare function uuid(sqlName: string): ColumnDef<"uuid", {
|
|
37
|
+
sqlName: string;
|
|
38
|
+
defaultValue: unknown;
|
|
39
|
+
isSqlArray: boolean;
|
|
40
|
+
isPrimaryKey: boolean;
|
|
41
|
+
isNotNull: boolean;
|
|
42
|
+
isUnique: boolean;
|
|
43
|
+
isEnum: boolean;
|
|
44
|
+
enumValues: string[] | null;
|
|
45
|
+
enumName: string | null;
|
|
46
|
+
hasDefault: boolean;
|
|
47
|
+
defaultKind: "value" | "fn" | null;
|
|
48
|
+
defaultFn: (() => unknown) | null;
|
|
49
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
50
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
51
|
+
}, string>;
|
|
52
|
+
declare function string(sqlName: string): ColumnDef<"string", {
|
|
53
|
+
sqlName: string;
|
|
54
|
+
defaultValue: unknown;
|
|
55
|
+
isSqlArray: boolean;
|
|
56
|
+
isPrimaryKey: boolean;
|
|
57
|
+
isNotNull: boolean;
|
|
58
|
+
isUnique: boolean;
|
|
59
|
+
isEnum: boolean;
|
|
60
|
+
enumValues: string[] | null;
|
|
61
|
+
enumName: string | null;
|
|
62
|
+
hasDefault: boolean;
|
|
63
|
+
defaultKind: "value" | "fn" | null;
|
|
64
|
+
defaultFn: (() => unknown) | null;
|
|
65
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
66
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
67
|
+
}, string>;
|
|
68
|
+
declare function enumeration<const TValues extends string[]>(sqlName: string, enumName: string, values: TValues): ColumnDef<"enum", ColumnMetaBase, TValues[number]>;
|
|
69
|
+
declare function number(sqlName: string): ColumnDef<"number", {
|
|
70
|
+
sqlName: string;
|
|
71
|
+
defaultValue: unknown;
|
|
72
|
+
isSqlArray: boolean;
|
|
73
|
+
isPrimaryKey: boolean;
|
|
74
|
+
isNotNull: boolean;
|
|
75
|
+
isUnique: boolean;
|
|
76
|
+
isEnum: boolean;
|
|
77
|
+
enumValues: string[] | null;
|
|
78
|
+
enumName: string | null;
|
|
79
|
+
hasDefault: boolean;
|
|
80
|
+
defaultKind: "value" | "fn" | null;
|
|
81
|
+
defaultFn: (() => unknown) | null;
|
|
82
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
83
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
84
|
+
}, number>;
|
|
85
|
+
declare function boolean(sqlName: string): ColumnDef<"boolean", {
|
|
86
|
+
sqlName: string;
|
|
87
|
+
defaultValue: unknown;
|
|
88
|
+
isSqlArray: boolean;
|
|
89
|
+
isPrimaryKey: boolean;
|
|
90
|
+
isNotNull: boolean;
|
|
91
|
+
isUnique: boolean;
|
|
92
|
+
isEnum: boolean;
|
|
93
|
+
enumValues: string[] | null;
|
|
94
|
+
enumName: string | null;
|
|
95
|
+
hasDefault: boolean;
|
|
96
|
+
defaultKind: "value" | "fn" | null;
|
|
97
|
+
defaultFn: (() => unknown) | null;
|
|
98
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
99
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
100
|
+
}, boolean>;
|
|
101
|
+
declare function date(sqlName: string): ColumnDef<"date", {
|
|
102
|
+
sqlName: string;
|
|
103
|
+
defaultValue: unknown;
|
|
104
|
+
isSqlArray: boolean;
|
|
105
|
+
isPrimaryKey: boolean;
|
|
106
|
+
isNotNull: boolean;
|
|
107
|
+
isUnique: boolean;
|
|
108
|
+
isEnum: boolean;
|
|
109
|
+
enumValues: string[] | null;
|
|
110
|
+
enumName: string | null;
|
|
111
|
+
hasDefault: boolean;
|
|
112
|
+
defaultKind: "value" | "fn" | null;
|
|
113
|
+
defaultFn: (() => unknown) | null;
|
|
114
|
+
references: (() => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) | null;
|
|
115
|
+
onDeleteAction: "CASCADE" | "RESTRICT" | "SET NULL" | null;
|
|
116
|
+
}, Date>;
|
|
117
|
+
declare function json<const T>(sqlName: string): ColumnDef<"json", ColumnMetaBase, T>;
|
|
118
|
+
declare function jsonb<const T>(sqlName: string): ColumnDef<"jsonb", ColumnMetaBase, T>;
|
|
119
|
+
//#endregion
|
|
120
|
+
export { ColumnDef, boolean, date, enumeration, json, jsonb, number, string, uuid };
|
|
121
|
+
//# sourceMappingURL=column.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.d.mts","names":[],"sources":["../../src/lib/orm/column.ts"],"mappings":";;;cAEa,SAAA,WACD,UAAA,gBACI,cAAA,WACL,UAAA,CAAW,CAAA;EAAA,SAGF,IAAA,EAAM,CAAA;EAAA,SACN,IAAA,EAAM,KAAA;cADN,IAAA,EAAM,CAAA,EACN,IAAA,EAAM,KAAA;EAGjB,UAAA,CAAA,GAAU,SAAA,CAAA,CAAA,EAAA,KAAA;;;;EAYV,OAAA,CAAA,GAAO,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAWP,OAAA,CAAA,GAAO,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAOP,MAAA,CAAA,GAAM,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAON,UAAA,CAAW,EAAA,QAAU,SAAA,CAAU,UAAA,EAAY,cAAA,aAAwB,SAAA,CAAA,CAAA,EAAA,KAAA;sBAIlD,SAAA,CAAU,UAAA,EAAY,cAAA;EAAA;EAMvC,QAAA,CAAS,MAAA,wCAA2C,SAAA,CAAA,CAAA,EAAA,KAAA;;;EAQpD,OAAA,CAAQ,KAAA,EAAO,MAAA,GAAM,SAAA,CAAA,CAAA,EAAA,KAAA;;;;EAcrB,SAAA,CAAU,EAAA,QAAU,MAAA,GAAM,SAAA,CAAA,CAAA,EAAA,KAAA;;;;;iBAmCnB,IAAA,CAAK,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAIpB,MAAA,CAAO,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAItB,WAAA,gCAAA,CACd,OAAA,UACA,QAAA,UACA,MAAA,EAAQ,OAAA,GAAO,SAAA,SAAA,cAAA,EAAA,OAAA;AAAA,iBAaD,MAAA,CAAO,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAItB,OAAA,CAAQ,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAIvB,IAAA,CAAK,OAAA,WAAe,SAAA;;;;;;;;;;;;;;;;iBAIpB,IAAA,SAAA,CAAc,OAAA,WAAe,SAAA,SAAA,cAAA,EAAA,CAAA;AAAA,iBAO7B,KAAA,SAAA,CAAe,OAAA,WAAe,SAAA,UAAA,cAAA,EAAA,CAAA"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
//#region src/lib/orm/column.ts
|
|
2
|
+
var ColumnDef = class ColumnDef {
|
|
3
|
+
constructor(kind, meta) {
|
|
4
|
+
this.kind = kind;
|
|
5
|
+
this.meta = meta;
|
|
6
|
+
}
|
|
7
|
+
primaryKey() {
|
|
8
|
+
return new ColumnDef(this.kind, {
|
|
9
|
+
...this.meta,
|
|
10
|
+
isPrimaryKey: true,
|
|
11
|
+
isNotNull: true
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
asArray() {
|
|
15
|
+
return new ColumnDef(this.kind, {
|
|
16
|
+
...this.meta,
|
|
17
|
+
isSqlArray: true
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
notNull() {
|
|
21
|
+
return new ColumnDef(this.kind, {
|
|
22
|
+
...this.meta,
|
|
23
|
+
isNotNull: true
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
unique() {
|
|
27
|
+
return new ColumnDef(this.kind, {
|
|
28
|
+
...this.meta,
|
|
29
|
+
isUnique: true
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
references(fn) {
|
|
33
|
+
return new ColumnDef(this.kind, {
|
|
34
|
+
...this.meta,
|
|
35
|
+
references: fn
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
onDelete(action) {
|
|
39
|
+
return new ColumnDef(this.kind, {
|
|
40
|
+
...this.meta,
|
|
41
|
+
onDeleteAction: action
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
default(value) {
|
|
45
|
+
return new ColumnDef(this.kind, {
|
|
46
|
+
...this.meta,
|
|
47
|
+
hasDefault: true,
|
|
48
|
+
defaultKind: "value",
|
|
49
|
+
defaultValue: value,
|
|
50
|
+
defaultFn: null
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
defaultFn(fn) {
|
|
54
|
+
return new ColumnDef(this.kind, {
|
|
55
|
+
...this.meta,
|
|
56
|
+
hasDefault: true,
|
|
57
|
+
defaultKind: "fn",
|
|
58
|
+
defaultValue: void 0,
|
|
59
|
+
defaultFn: fn
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const defaultMeta = {
|
|
64
|
+
isSqlArray: false,
|
|
65
|
+
isPrimaryKey: false,
|
|
66
|
+
isNotNull: false,
|
|
67
|
+
isUnique: false,
|
|
68
|
+
isEnum: false,
|
|
69
|
+
enumValues: null,
|
|
70
|
+
enumName: null,
|
|
71
|
+
hasDefault: false,
|
|
72
|
+
defaultKind: null,
|
|
73
|
+
defaultValue: void 0,
|
|
74
|
+
defaultFn: null,
|
|
75
|
+
references: null,
|
|
76
|
+
onDeleteAction: null
|
|
77
|
+
};
|
|
78
|
+
function uuid(sqlName) {
|
|
79
|
+
return new ColumnDef("uuid", {
|
|
80
|
+
...defaultMeta,
|
|
81
|
+
sqlName
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function string(sqlName) {
|
|
85
|
+
return new ColumnDef("string", {
|
|
86
|
+
...defaultMeta,
|
|
87
|
+
sqlName
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function enumeration(sqlName, enumName, values) {
|
|
91
|
+
return new ColumnDef("enum", {
|
|
92
|
+
...defaultMeta,
|
|
93
|
+
isEnum: true,
|
|
94
|
+
enumValues: values,
|
|
95
|
+
enumName,
|
|
96
|
+
sqlName
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
function number(sqlName) {
|
|
100
|
+
return new ColumnDef("number", {
|
|
101
|
+
...defaultMeta,
|
|
102
|
+
sqlName
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function boolean(sqlName) {
|
|
106
|
+
return new ColumnDef("boolean", {
|
|
107
|
+
...defaultMeta,
|
|
108
|
+
sqlName
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function date(sqlName) {
|
|
112
|
+
return new ColumnDef("date", {
|
|
113
|
+
...defaultMeta,
|
|
114
|
+
sqlName
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function json(sqlName) {
|
|
118
|
+
return new ColumnDef("json", {
|
|
119
|
+
...defaultMeta,
|
|
120
|
+
sqlName
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function jsonb(sqlName) {
|
|
124
|
+
return new ColumnDef("jsonb", {
|
|
125
|
+
...defaultMeta,
|
|
126
|
+
sqlName
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//#endregion
|
|
130
|
+
export { boolean, date, enumeration, json, jsonb, number, string, uuid };
|
|
131
|
+
|
|
132
|
+
//# sourceMappingURL=column.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.mjs","names":[],"sources":["../../src/lib/orm/column.ts"],"sourcesContent":["import type { ColumnKind, ColumnMetaBase, KindToType } from \"./types.js\";\n\nexport class ColumnDef<\n K extends ColumnKind,\n TMeta extends ColumnMetaBase,\n TValue = KindToType<K>,\n> {\n public constructor(\n public readonly kind: K,\n public readonly meta: TMeta,\n ) {}\n\n public primaryKey() {\n return new ColumnDef<\n K,\n TMeta & { isPrimaryKey: true; isNotNull: true },\n TValue\n >(this.kind, {\n ...this.meta,\n isPrimaryKey: true as const,\n isNotNull: true as const,\n });\n }\n\n public asArray() {\n return new ColumnDef<\n K,\n TMeta & { isSqlArray: true },\n [TValue] extends [unknown[]] ? TValue : TValue[]\n >(this.kind, {\n ...this.meta,\n isSqlArray: true as const,\n });\n }\n\n public notNull() {\n return new ColumnDef<K, TMeta & { isNotNull: true }, TValue>(this.kind, {\n ...this.meta,\n isNotNull: true as const,\n });\n }\n\n public unique() {\n return new ColumnDef<K, TMeta & { isUnique: true }, TValue>(this.kind, {\n ...this.meta,\n isUnique: true as const,\n });\n }\n\n public references(fn: () => ColumnDef<ColumnKind, ColumnMetaBase, unknown>) {\n return new ColumnDef<\n K,\n TMeta & {\n references: () => ColumnDef<ColumnKind, ColumnMetaBase, unknown>;\n },\n TValue\n >(this.kind, { ...this.meta, references: fn });\n }\n\n public onDelete(action: \"CASCADE\" | \"RESTRICT\" | \"SET NULL\") {\n return new ColumnDef<\n K,\n TMeta & { onDeleteAction: \"CASCADE\" | \"RESTRICT\" | \"SET NULL\" },\n TValue\n >(this.kind, { ...this.meta, onDeleteAction: action });\n }\n\n public default(value: TValue) {\n return new ColumnDef<\n K,\n TMeta & { hasDefault: true; defaultKind: \"value\" },\n TValue\n >(this.kind, {\n ...this.meta,\n hasDefault: true as const,\n defaultKind: \"value\" as const,\n defaultValue: value,\n defaultFn: null,\n });\n }\n\n public defaultFn(fn: () => TValue) {\n return new ColumnDef<\n K,\n TMeta & { hasDefault: true; defaultKind: \"fn\" },\n TValue\n >(this.kind, {\n ...this.meta,\n hasDefault: true as const,\n defaultKind: \"fn\" as const,\n defaultValue: undefined,\n defaultFn: fn,\n });\n }\n}\n\n// Using explicit Omit<ColumnMetaBase, \"sqlName\"> annotation so boolean fields are typed\n// as `boolean` (not literal `false`). This is required for the chaining methods to work:\n// { isPrimaryKey: boolean } & { isPrimaryKey: true } = { isPrimaryKey: true }\n// vs { isPrimaryKey: false } & { isPrimaryKey: true } = { isPrimaryKey: never }\nconst defaultMeta: Omit<ColumnMetaBase, \"sqlName\"> = {\n isSqlArray: false,\n isPrimaryKey: false,\n isNotNull: false,\n isUnique: false,\n isEnum: false,\n enumValues: null,\n enumName: null,\n hasDefault: false,\n defaultKind: null,\n defaultValue: undefined,\n defaultFn: null,\n references: null,\n onDeleteAction: null,\n};\n\nexport function uuid(sqlName: string) {\n return new ColumnDef(\"uuid\", { ...defaultMeta, sqlName });\n}\n\nexport function string(sqlName: string) {\n return new ColumnDef(\"string\", { ...defaultMeta, sqlName });\n}\n\nexport function enumeration<const TValues extends string[]>(\n sqlName: string,\n enumName: string,\n values: TValues,\n) {\n return new ColumnDef<\"enum\", ColumnMetaBase, TValues[number]>(\"enum\", {\n ...defaultMeta,\n isEnum: true,\n enumValues: values,\n enumName,\n sqlName,\n });\n}\n\nexport { enumeration as enumColumn };\n\nexport function number(sqlName: string) {\n return new ColumnDef(\"number\", { ...defaultMeta, sqlName });\n}\n\nexport function boolean(sqlName: string) {\n return new ColumnDef(\"boolean\", { ...defaultMeta, sqlName });\n}\n\nexport function date(sqlName: string) {\n return new ColumnDef(\"date\", { ...defaultMeta, sqlName });\n}\n\nexport function json<const T>(sqlName: string) {\n return new ColumnDef<\"json\", ColumnMetaBase, T>(\"json\", {\n ...defaultMeta,\n sqlName,\n });\n}\n\nexport function jsonb<const T>(sqlName: string) {\n return new ColumnDef<\"jsonb\", ColumnMetaBase, T>(\"jsonb\", {\n ...defaultMeta,\n sqlName,\n });\n}\n"],"mappings":";AAEA,IAAa,YAAb,MAAa,UAIX;CACA,YACE,MACA,MACA;AAFgB,OAAA,OAAA;AACA,OAAA,OAAA;;CAGlB,aAAoB;AAClB,SAAO,IAAI,UAIT,KAAK,MAAM;GACX,GAAG,KAAK;GACR,cAAc;GACd,WAAW;GACZ,CAAC;;CAGJ,UAAiB;AACf,SAAO,IAAI,UAIT,KAAK,MAAM;GACX,GAAG,KAAK;GACR,YAAY;GACb,CAAC;;CAGJ,UAAiB;AACf,SAAO,IAAI,UAAkD,KAAK,MAAM;GACtE,GAAG,KAAK;GACR,WAAW;GACZ,CAAC;;CAGJ,SAAgB;AACd,SAAO,IAAI,UAAiD,KAAK,MAAM;GACrE,GAAG,KAAK;GACR,UAAU;GACX,CAAC;;CAGJ,WAAkB,IAA0D;AAC1E,SAAO,IAAI,UAMT,KAAK,MAAM;GAAE,GAAG,KAAK;GAAM,YAAY;GAAI,CAAC;;CAGhD,SAAgB,QAA6C;AAC3D,SAAO,IAAI,UAIT,KAAK,MAAM;GAAE,GAAG,KAAK;GAAM,gBAAgB;GAAQ,CAAC;;CAGxD,QAAe,OAAe;AAC5B,SAAO,IAAI,UAIT,KAAK,MAAM;GACX,GAAG,KAAK;GACR,YAAY;GACZ,aAAa;GACb,cAAc;GACd,WAAW;GACZ,CAAC;;CAGJ,UAAiB,IAAkB;AACjC,SAAO,IAAI,UAIT,KAAK,MAAM;GACX,GAAG,KAAK;GACR,YAAY;GACZ,aAAa;GACb,cAAc,KAAA;GACd,WAAW;GACZ,CAAC;;;AAQN,MAAM,cAA+C;CACnD,YAAY;CACZ,cAAc;CACd,WAAW;CACX,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,UAAU;CACV,YAAY;CACZ,aAAa;CACb,cAAc,KAAA;CACd,WAAW;CACX,YAAY;CACZ,gBAAgB;CACjB;AAED,SAAgB,KAAK,SAAiB;AACpC,QAAO,IAAI,UAAU,QAAQ;EAAE,GAAG;EAAa;EAAS,CAAC;;AAG3D,SAAgB,OAAO,SAAiB;AACtC,QAAO,IAAI,UAAU,UAAU;EAAE,GAAG;EAAa;EAAS,CAAC;;AAG7D,SAAgB,YACd,SACA,UACA,QACA;AACA,QAAO,IAAI,UAAmD,QAAQ;EACpE,GAAG;EACH,QAAQ;EACR,YAAY;EACZ;EACA;EACD,CAAC;;AAKJ,SAAgB,OAAO,SAAiB;AACtC,QAAO,IAAI,UAAU,UAAU;EAAE,GAAG;EAAa;EAAS,CAAC;;AAG7D,SAAgB,QAAQ,SAAiB;AACvC,QAAO,IAAI,UAAU,WAAW;EAAE,GAAG;EAAa;EAAS,CAAC;;AAG9D,SAAgB,KAAK,SAAiB;AACpC,QAAO,IAAI,UAAU,QAAQ;EAAE,GAAG;EAAa;EAAS,CAAC;;AAG3D,SAAgB,KAAc,SAAiB;AAC7C,QAAO,IAAI,UAAqC,QAAQ;EACtD,GAAG;EACH;EACD,CAAC;;AAGJ,SAAgB,MAAe,SAAiB;AAC9C,QAAO,IAAI,UAAsC,SAAS;EACxD,GAAG;EACH;EACD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const require_mysql = require("./mysql.cjs");
|
|
2
|
+
const require_postgres = require("./postgres.cjs");
|
|
3
|
+
const require_sqlite = require("./sqlite.cjs");
|
|
4
|
+
//#region src/lib/orm/dialect/index.ts
|
|
5
|
+
const dialectAdapters = {
|
|
6
|
+
postgres: require_postgres.postgresDialectAdapter,
|
|
7
|
+
mysql: require_mysql.mysqlDialectAdapter,
|
|
8
|
+
sqlite: require_sqlite.sqliteDialectAdapter
|
|
9
|
+
};
|
|
10
|
+
function getDialectAdapter(dialect) {
|
|
11
|
+
return dialectAdapters[dialect];
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.getDialectAdapter = getDialectAdapter;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { mysqlDialectAdapter } from "./mysql.mjs";
|
|
2
|
+
import { postgresDialectAdapter } from "./postgres.mjs";
|
|
3
|
+
import { sqliteDialectAdapter } from "./sqlite.mjs";
|
|
4
|
+
//#region src/lib/orm/dialect/index.ts
|
|
5
|
+
const dialectAdapters = {
|
|
6
|
+
postgres: postgresDialectAdapter,
|
|
7
|
+
mysql: mysqlDialectAdapter,
|
|
8
|
+
sqlite: sqliteDialectAdapter
|
|
9
|
+
};
|
|
10
|
+
function getDialectAdapter(dialect) {
|
|
11
|
+
return dialectAdapters[dialect];
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { getDialectAdapter };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/lib/orm/dialect/index.ts"],"sourcesContent":["import type { Dialect, DialectAdapter } from \"../types.js\";\nimport { mysqlDialectAdapter } from \"./mysql.js\";\nimport { postgresDialectAdapter } from \"./postgres.js\";\nimport { sqliteDialectAdapter } from \"./sqlite.js\";\n\nconst dialectAdapters = {\n postgres: postgresDialectAdapter,\n mysql: mysqlDialectAdapter,\n sqlite: sqliteDialectAdapter,\n} satisfies Record<Dialect, DialectAdapter>;\n\nexport function getDialectAdapter(dialect: Dialect): DialectAdapter {\n return dialectAdapters[dialect];\n}\n"],"mappings":";;;;AAKA,MAAM,kBAAkB;CACtB,UAAU;CACV,OAAO;CACP,QAAQ;CACT;AAED,SAAgB,kBAAkB,SAAkC;AAClE,QAAO,gBAAgB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/mysql.ts
|
|
2
|
+
function escapeLike(s) {
|
|
3
|
+
return s.replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
4
|
+
}
|
|
5
|
+
const mysqlDialectAdapter = {
|
|
6
|
+
dialect: "mysql",
|
|
7
|
+
likeKeyword: "LIKE",
|
|
8
|
+
quoteIdentifier(identifier) {
|
|
9
|
+
return `\`${identifier.replaceAll("`", "``")}\``;
|
|
10
|
+
},
|
|
11
|
+
serializeValue(kind, value) {
|
|
12
|
+
if (kind === "date") {
|
|
13
|
+
if (value instanceof Date) return value.toISOString();
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (kind === "json" || kind === "jsonb") return JSON.stringify(value);
|
|
17
|
+
if (kind === "boolean") {
|
|
18
|
+
if (value === true) return 1;
|
|
19
|
+
if (value === false) return 0;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
},
|
|
23
|
+
renderLikePattern(mode, value) {
|
|
24
|
+
const escaped = escapeLike(value);
|
|
25
|
+
if (mode === "startsWith") return `${escaped}%`;
|
|
26
|
+
if (mode === "endsWith") return `%${escaped}`;
|
|
27
|
+
return `%${escaped}%`;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.mysqlDialectAdapter = mysqlDialectAdapter;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/mysql.ts
|
|
2
|
+
function escapeLike(s) {
|
|
3
|
+
return s.replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
4
|
+
}
|
|
5
|
+
const mysqlDialectAdapter = {
|
|
6
|
+
dialect: "mysql",
|
|
7
|
+
likeKeyword: "LIKE",
|
|
8
|
+
quoteIdentifier(identifier) {
|
|
9
|
+
return `\`${identifier.replaceAll("`", "``")}\``;
|
|
10
|
+
},
|
|
11
|
+
serializeValue(kind, value) {
|
|
12
|
+
if (kind === "date") {
|
|
13
|
+
if (value instanceof Date) return value.toISOString();
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (kind === "json" || kind === "jsonb") return JSON.stringify(value);
|
|
17
|
+
if (kind === "boolean") {
|
|
18
|
+
if (value === true) return 1;
|
|
19
|
+
if (value === false) return 0;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
},
|
|
23
|
+
renderLikePattern(mode, value) {
|
|
24
|
+
const escaped = escapeLike(value);
|
|
25
|
+
if (mode === "startsWith") return `${escaped}%`;
|
|
26
|
+
if (mode === "endsWith") return `%${escaped}`;
|
|
27
|
+
return `%${escaped}%`;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { mysqlDialectAdapter };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=mysql.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mysql.mjs","names":[],"sources":["../../../src/lib/orm/dialect/mysql.ts"],"sourcesContent":["import type { DialectAdapter } from \"../types.js\";\n\nfunction escapeLike(s: string) {\n return s.replaceAll(\"%\", \"\\\\%\").replaceAll(\"_\", \"\\\\_\");\n}\n\nexport const mysqlDialectAdapter: DialectAdapter = {\n dialect: \"mysql\",\n likeKeyword: \"LIKE\",\n\n quoteIdentifier(identifier: string) {\n return `\\`${identifier.replaceAll(\"`\", \"``\")}\\``;\n },\n\n serializeValue(kind, value) {\n if (kind === \"date\") {\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n return value;\n }\n\n if (kind === \"json\" || kind === \"jsonb\") {\n return JSON.stringify(value);\n }\n\n if (kind === \"boolean\") {\n if (value === true) return 1;\n if (value === false) return 0;\n }\n\n return value;\n },\n\n renderLikePattern(mode, value) {\n const escaped = escapeLike(value);\n\n if (mode === \"startsWith\") {\n return `${escaped}%`;\n }\n\n if (mode === \"endsWith\") {\n return `%${escaped}`;\n }\n\n return `%${escaped}%`;\n },\n};\n"],"mappings":";AAEA,SAAS,WAAW,GAAW;AAC7B,QAAO,EAAE,WAAW,KAAK,MAAM,CAAC,WAAW,KAAK,MAAM;;AAGxD,MAAa,sBAAsC;CACjD,SAAS;CACT,aAAa;CAEb,gBAAgB,YAAoB;AAClC,SAAO,KAAK,WAAW,WAAW,KAAK,KAAK,CAAC;;CAG/C,eAAe,MAAM,OAAO;AAC1B,MAAI,SAAS,QAAQ;AACnB,OAAI,iBAAiB,KACnB,QAAO,MAAM,aAAa;AAG5B,UAAO;;AAGT,MAAI,SAAS,UAAU,SAAS,QAC9B,QAAO,KAAK,UAAU,MAAM;AAG9B,MAAI,SAAS,WAAW;AACtB,OAAI,UAAU,KAAM,QAAO;AAC3B,OAAI,UAAU,MAAO,QAAO;;AAG9B,SAAO;;CAGT,kBAAkB,MAAM,OAAO;EAC7B,MAAM,UAAU,WAAW,MAAM;AAEjC,MAAI,SAAS,aACX,QAAO,GAAG,QAAQ;AAGpB,MAAI,SAAS,WACX,QAAO,IAAI;AAGb,SAAO,IAAI,QAAQ;;CAEtB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/postgres.ts
|
|
2
|
+
function escapeLike(s) {
|
|
3
|
+
return s.replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
4
|
+
}
|
|
5
|
+
const postgresDialectAdapter = {
|
|
6
|
+
dialect: "postgres",
|
|
7
|
+
likeKeyword: "ILIKE",
|
|
8
|
+
quoteIdentifier(identifier) {
|
|
9
|
+
return `"${identifier.replaceAll("\"", "\"\"")}"`;
|
|
10
|
+
},
|
|
11
|
+
serializeValue(_kind, value) {
|
|
12
|
+
if (value instanceof Date) return value.toISOString();
|
|
13
|
+
return value;
|
|
14
|
+
},
|
|
15
|
+
renderLikePattern(mode, value) {
|
|
16
|
+
const escaped = escapeLike(value);
|
|
17
|
+
if (mode === "startsWith") return `${escaped}%`;
|
|
18
|
+
if (mode === "endsWith") return `%${escaped}`;
|
|
19
|
+
return `%${escaped}%`;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.postgresDialectAdapter = postgresDialectAdapter;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/postgres.ts
|
|
2
|
+
function escapeLike(s) {
|
|
3
|
+
return s.replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
4
|
+
}
|
|
5
|
+
const postgresDialectAdapter = {
|
|
6
|
+
dialect: "postgres",
|
|
7
|
+
likeKeyword: "ILIKE",
|
|
8
|
+
quoteIdentifier(identifier) {
|
|
9
|
+
return `"${identifier.replaceAll("\"", "\"\"")}"`;
|
|
10
|
+
},
|
|
11
|
+
serializeValue(_kind, value) {
|
|
12
|
+
if (value instanceof Date) return value.toISOString();
|
|
13
|
+
return value;
|
|
14
|
+
},
|
|
15
|
+
renderLikePattern(mode, value) {
|
|
16
|
+
const escaped = escapeLike(value);
|
|
17
|
+
if (mode === "startsWith") return `${escaped}%`;
|
|
18
|
+
if (mode === "endsWith") return `%${escaped}`;
|
|
19
|
+
return `%${escaped}%`;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { postgresDialectAdapter };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=postgres.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres.mjs","names":[],"sources":["../../../src/lib/orm/dialect/postgres.ts"],"sourcesContent":["import type { DialectAdapter } from \"../types.js\";\n\nfunction escapeLike(s: string) {\n return s.replaceAll(\"%\", \"\\\\%\").replaceAll(\"_\", \"\\\\_\");\n}\n\nexport const postgresDialectAdapter: DialectAdapter = {\n dialect: \"postgres\",\n likeKeyword: \"ILIKE\",\n\n quoteIdentifier(identifier: string) {\n return `\"${identifier.replaceAll('\"', '\"\"')}\"`;\n },\n\n serializeValue(_kind, value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n return value;\n },\n\n renderLikePattern(mode, value) {\n const escaped = escapeLike(value);\n\n if (mode === \"startsWith\") {\n return `${escaped}%`;\n }\n\n if (mode === \"endsWith\") {\n return `%${escaped}`;\n }\n\n return `%${escaped}%`;\n },\n};\n"],"mappings":";AAEA,SAAS,WAAW,GAAW;AAC7B,QAAO,EAAE,WAAW,KAAK,MAAM,CAAC,WAAW,KAAK,MAAM;;AAGxD,MAAa,yBAAyC;CACpD,SAAS;CACT,aAAa;CAEb,gBAAgB,YAAoB;AAClC,SAAO,IAAI,WAAW,WAAW,MAAK,OAAK,CAAC;;CAG9C,eAAe,OAAO,OAAO;AAC3B,MAAI,iBAAiB,KACnB,QAAO,MAAM,aAAa;AAG5B,SAAO;;CAGT,kBAAkB,MAAM,OAAO;EAC7B,MAAM,UAAU,WAAW,MAAM;AAEjC,MAAI,SAAS,aACX,QAAO,GAAG,QAAQ;AAGpB,MAAI,SAAS,WACX,QAAO,IAAI;AAGb,SAAO,IAAI,QAAQ;;CAEtB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/sqlite.ts
|
|
2
|
+
function escapeLike(s) {
|
|
3
|
+
return s.replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
4
|
+
}
|
|
5
|
+
const sqliteDialectAdapter = {
|
|
6
|
+
dialect: "sqlite",
|
|
7
|
+
likeKeyword: "LIKE",
|
|
8
|
+
quoteIdentifier(identifier) {
|
|
9
|
+
return `"${identifier.replaceAll("\"", "\"\"")}"`;
|
|
10
|
+
},
|
|
11
|
+
serializeValue(kind, value) {
|
|
12
|
+
if (kind === "date") {
|
|
13
|
+
if (value instanceof Date) return value.toISOString();
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (kind === "json" || kind === "jsonb") return JSON.stringify(value);
|
|
17
|
+
if (kind === "boolean") {
|
|
18
|
+
if (value === true) return 1;
|
|
19
|
+
if (value === false) return 0;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
},
|
|
23
|
+
renderLikePattern(mode, value) {
|
|
24
|
+
const escaped = escapeLike(value);
|
|
25
|
+
if (mode === "startsWith") return `${escaped}%`;
|
|
26
|
+
if (mode === "endsWith") return `%${escaped}`;
|
|
27
|
+
return `%${escaped}%`;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.sqliteDialectAdapter = sqliteDialectAdapter;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/sqlite.ts
|
|
2
|
+
function escapeLike(s) {
|
|
3
|
+
return s.replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
4
|
+
}
|
|
5
|
+
const sqliteDialectAdapter = {
|
|
6
|
+
dialect: "sqlite",
|
|
7
|
+
likeKeyword: "LIKE",
|
|
8
|
+
quoteIdentifier(identifier) {
|
|
9
|
+
return `"${identifier.replaceAll("\"", "\"\"")}"`;
|
|
10
|
+
},
|
|
11
|
+
serializeValue(kind, value) {
|
|
12
|
+
if (kind === "date") {
|
|
13
|
+
if (value instanceof Date) return value.toISOString();
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (kind === "json" || kind === "jsonb") return JSON.stringify(value);
|
|
17
|
+
if (kind === "boolean") {
|
|
18
|
+
if (value === true) return 1;
|
|
19
|
+
if (value === false) return 0;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
},
|
|
23
|
+
renderLikePattern(mode, value) {
|
|
24
|
+
const escaped = escapeLike(value);
|
|
25
|
+
if (mode === "startsWith") return `${escaped}%`;
|
|
26
|
+
if (mode === "endsWith") return `%${escaped}`;
|
|
27
|
+
return `%${escaped}%`;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { sqliteDialectAdapter };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=sqlite.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.mjs","names":[],"sources":["../../../src/lib/orm/dialect/sqlite.ts"],"sourcesContent":["import type { DialectAdapter } from \"../types.js\";\n\nfunction escapeLike(s: string) {\n return s.replaceAll(\"%\", \"\\\\%\").replaceAll(\"_\", \"\\\\_\");\n}\n\nexport const sqliteDialectAdapter: DialectAdapter = {\n dialect: \"sqlite\",\n likeKeyword: \"LIKE\",\n\n quoteIdentifier(identifier: string) {\n return `\"${identifier.replaceAll('\"', '\"\"')}\"`;\n },\n\n serializeValue(kind, value) {\n if (kind === \"date\") {\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n return value;\n }\n\n if (kind === \"json\" || kind === \"jsonb\") {\n return JSON.stringify(value);\n }\n\n if (kind === \"boolean\") {\n if (value === true) return 1;\n if (value === false) return 0;\n }\n\n return value;\n },\n\n renderLikePattern(mode, value) {\n const escaped = escapeLike(value);\n\n if (mode === \"startsWith\") {\n return `${escaped}%`;\n }\n\n if (mode === \"endsWith\") {\n return `%${escaped}`;\n }\n\n return `%${escaped}%`;\n },\n};\n"],"mappings":";AAEA,SAAS,WAAW,GAAW;AAC7B,QAAO,EAAE,WAAW,KAAK,MAAM,CAAC,WAAW,KAAK,MAAM;;AAGxD,MAAa,uBAAuC;CAClD,SAAS;CACT,aAAa;CAEb,gBAAgB,YAAoB;AAClC,SAAO,IAAI,WAAW,WAAW,MAAK,OAAK,CAAC;;CAG9C,eAAe,MAAM,OAAO;AAC1B,MAAI,SAAS,QAAQ;AACnB,OAAI,iBAAiB,KACnB,QAAO,MAAM,aAAa;AAG5B,UAAO;;AAGT,MAAI,SAAS,UAAU,SAAS,QAC9B,QAAO,KAAK,UAAU,MAAM;AAG9B,MAAI,SAAS,WAAW;AACtB,OAAI,UAAU,KAAM,QAAO;AAC3B,OAAI,UAAU,MAAO,QAAO;;AAG9B,SAAO;;CAGT,kBAAkB,MAAM,OAAO;EAC7B,MAAM,UAAU,WAAW,MAAM;AAEjC,MAAI,SAAS,aACX,QAAO,GAAG,QAAQ;AAGpB,MAAI,SAAS,WACX,QAAO,IAAI;AAGb,SAAO,IAAI,QAAQ;;CAEtB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/utils.ts
|
|
2
|
+
function inferDialectFromUrl(url) {
|
|
3
|
+
if (url.startsWith("postgres://") || url.startsWith("postgresql://")) return "postgres";
|
|
4
|
+
if (url.startsWith("mysql://") || url.startsWith("mysql2://")) return "mysql";
|
|
5
|
+
return "sqlite";
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
exports.inferDialectFromUrl = inferDialectFromUrl;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/lib/orm/dialect/utils.ts
|
|
2
|
+
function inferDialectFromUrl(url) {
|
|
3
|
+
if (url.startsWith("postgres://") || url.startsWith("postgresql://")) return "postgres";
|
|
4
|
+
if (url.startsWith("mysql://") || url.startsWith("mysql2://")) return "mysql";
|
|
5
|
+
return "sqlite";
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { inferDialectFromUrl };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":[],"sources":["../../../src/lib/orm/dialect/utils.ts"],"sourcesContent":["import type { Dialect } from \"../types.js\";\n\nexport function inferDialectFromUrl(url: string): Dialect {\n if (url.startsWith(\"postgres://\") || url.startsWith(\"postgresql://\")) {\n return \"postgres\";\n }\n\n if (url.startsWith(\"mysql://\") || url.startsWith(\"mysql2://\")) {\n return \"mysql\";\n }\n\n return \"sqlite\";\n}\n\nexport function isDialect(value: Dialect) {\n return value === \"postgres\" || value === \"mysql\" || value === \"sqlite\";\n}\n"],"mappings":";AAEA,SAAgB,oBAAoB,KAAsB;AACxD,KAAI,IAAI,WAAW,cAAc,IAAI,IAAI,WAAW,gBAAgB,CAClE,QAAO;AAGT,KAAI,IAAI,WAAW,WAAW,IAAI,IAAI,WAAW,YAAY,CAC3D,QAAO;AAGT,QAAO"}
|