@simplysm/orm-common 13.0.76 → 13.0.77
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 +575 -50
- package/dist/create-db-context.d.ts +1 -1
- package/dist/create-db-context.d.ts.map +1 -1
- package/dist/create-db-context.js +34 -27
- package/dist/create-db-context.js.map +1 -1
- package/dist/ddl/initialize.js +4 -4
- package/dist/ddl/initialize.js.map +1 -1
- package/dist/ddl/relation-ddl.d.ts +7 -7
- package/dist/ddl/relation-ddl.d.ts.map +1 -1
- package/dist/ddl/relation-ddl.js +18 -18
- package/dist/ddl/relation-ddl.js.map +1 -1
- package/dist/ddl/schema-ddl.d.ts +1 -1
- package/dist/ddl/schema-ddl.d.ts.map +1 -1
- package/dist/ddl/schema-ddl.js +2 -2
- package/dist/ddl/schema-ddl.js.map +1 -1
- package/dist/ddl/table-ddl.js +2 -2
- package/dist/ddl/table-ddl.js.map +1 -1
- package/dist/exec/queryable.d.ts +24 -24
- package/dist/exec/queryable.d.ts.map +1 -1
- package/dist/exec/queryable.js +37 -37
- package/dist/exec/queryable.js.map +1 -1
- package/dist/expr/expr-unit.js +1 -1
- package/dist/expr/expr-unit.js.map +1 -1
- package/dist/expr/expr.d.ts +9 -9
- package/dist/expr/expr.d.ts.map +1 -1
- package/dist/expr/expr.js +10 -10
- package/dist/expr/expr.js.map +1 -1
- package/dist/query-builder/base/expr-renderer-base.d.ts +2 -2
- package/dist/query-builder/base/expr-renderer-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.d.ts +7 -15
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +2 -2
- package/dist/query-builder/base/query-builder-base.js.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +8 -8
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.d.ts +7 -7
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +7 -7
- package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +9 -9
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.d.ts +7 -7
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +11 -11
- package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +8 -8
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +7 -7
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +7 -7
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
- package/dist/schema/procedure-builder.d.ts +1 -1
- package/dist/schema/table-builder.d.ts +1 -1
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +1 -1
- package/dist/schema/view-builder.d.ts +1 -1
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +1 -1
- package/dist/types/db-context-def.d.ts +18 -18
- package/dist/types/db-context-def.d.ts.map +1 -1
- package/dist/types/expr.d.ts +6 -6
- package/dist/types/expr.d.ts.map +1 -1
- package/dist/types/query-def.d.ts +15 -15
- package/dist/types/query-def.d.ts.map +1 -1
- package/dist/types/query-def.js +6 -6
- package/dist/utils/result-parser.d.ts.map +1 -1
- package/dist/utils/result-parser.js +44 -16
- package/dist/utils/result-parser.js.map +1 -1
- package/package.json +2 -2
- package/src/create-db-context.ts +36 -29
- package/src/ddl/initialize.ts +4 -4
- package/src/ddl/relation-ddl.ts +16 -16
- package/src/ddl/schema-ddl.ts +2 -2
- package/src/ddl/table-ddl.ts +2 -2
- package/src/exec/queryable.ts +58 -58
- package/src/expr/expr-unit.ts +1 -1
- package/src/expr/expr.ts +13 -13
- package/src/query-builder/base/expr-renderer-base.ts +2 -2
- package/src/query-builder/base/query-builder-base.ts +18 -14
- package/src/query-builder/mssql/mssql-expr-renderer.ts +11 -10
- package/src/query-builder/mssql/mssql-query-builder.ts +13 -13
- package/src/query-builder/mysql/mysql-expr-renderer.ts +12 -11
- package/src/query-builder/mysql/mysql-query-builder.ts +17 -17
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +11 -10
- package/src/query-builder/postgresql/postgresql-query-builder.ts +13 -13
- package/src/schema/procedure-builder.ts +1 -1
- package/src/schema/table-builder.ts +1 -1
- package/src/schema/view-builder.ts +1 -1
- package/src/types/db-context-def.ts +18 -18
- package/src/types/expr.ts +6 -6
- package/src/types/query-def.ts +31 -31
- package/src/utils/result-parser.ts +60 -16
- package/tests/db-context/create-db-context.spec.ts +6 -6
- package/tests/ddl/basic.expected.ts +8 -8
- package/tests/ddl/basic.spec.ts +24 -24
- package/tests/ddl/index-builder.spec.ts +10 -10
- package/tests/ddl/relation-builder.spec.ts +4 -4
- package/tests/dml/update.spec.ts +2 -2
- package/tests/expr/conditional.expected.ts +2 -2
- package/tests/expr/conditional.spec.ts +8 -8
- package/tests/expr/date.spec.ts +5 -5
- package/tests/select/basic.spec.ts +5 -5
- package/tests/utils/result-parser.spec.ts +4 -4
|
@@ -23,7 +23,7 @@ import type { DbContextExecutor } from "./types/db";
|
|
|
23
23
|
* const db = createDbContext(MyDb, executor, { database: "mydb" });
|
|
24
24
|
*
|
|
25
25
|
* await db.connect(async () => {
|
|
26
|
-
* const users = await db.user().
|
|
26
|
+
* const users = await db.user().execute();
|
|
27
27
|
* });
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-db-context.d.ts","sourceRoot":"","sources":["..\\src\\create-db-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAGZ,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAc,iBAAiB,EAA8B,MAAM,YAAY,CAAC;AAyB5F;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,iBAAiB,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"create-db-context.d.ts","sourceRoot":"","sources":["..\\src\\create-db-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAGZ,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAc,iBAAiB,EAA8B,MAAM,YAAY,CAAC;AAyB5F;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,iBAAiB,CAAC,IAAI,CAAC,CA0VzB"}
|
|
@@ -4,7 +4,7 @@ import { TableBuilder } from "./schema/table-builder.js";
|
|
|
4
4
|
import { ViewBuilder } from "./schema/view-builder.js";
|
|
5
5
|
import { queryable } from "./exec/queryable.js";
|
|
6
6
|
import { executable } from "./exec/executable.js";
|
|
7
|
-
import {
|
|
7
|
+
import { obj } from "@simplysm/core-common";
|
|
8
8
|
import * as tableDdl from "./ddl/table-ddl.js";
|
|
9
9
|
import * as columnDdl from "./ddl/column-ddl.js";
|
|
10
10
|
import * as relationDdl from "./ddl/relation-ddl.js";
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
function createDbContext(def, executor, opt) {
|
|
17
17
|
let aliasCounter = 0;
|
|
18
18
|
let status = "ready";
|
|
19
|
+
let relationsValidated = false;
|
|
19
20
|
const base = {
|
|
20
21
|
get status() {
|
|
21
22
|
return status;
|
|
@@ -42,14 +43,14 @@ function createDbContext(def, executor, opt) {
|
|
|
42
43
|
return executor.executeDefs(defs, resultMetas);
|
|
43
44
|
},
|
|
44
45
|
getQueryDefObjectName(tableOrView) {
|
|
45
|
-
return
|
|
46
|
+
return obj.clearUndefined({
|
|
46
47
|
database: tableOrView.meta.database ?? opt.database,
|
|
47
48
|
schema: tableOrView.meta.schema ?? opt.schema,
|
|
48
49
|
name: tableOrView.meta.name
|
|
49
50
|
});
|
|
50
51
|
},
|
|
51
|
-
async switchFk(table,
|
|
52
|
-
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table,
|
|
52
|
+
async switchFk(table, enabled) {
|
|
53
|
+
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table, enabled)]);
|
|
53
54
|
}
|
|
54
55
|
};
|
|
55
56
|
const db = {
|
|
@@ -78,7 +79,10 @@ function createDbContext(def, executor, opt) {
|
|
|
78
79
|
* If error occurs, automatically rollback and close connection
|
|
79
80
|
*/
|
|
80
81
|
async connect(fn, isolationLevel) {
|
|
81
|
-
|
|
82
|
+
if (!relationsValidated) {
|
|
83
|
+
validateRelationsImpl(def);
|
|
84
|
+
relationsValidated = true;
|
|
85
|
+
}
|
|
82
86
|
base.resetAliasCounter();
|
|
83
87
|
await executor.connect();
|
|
84
88
|
status = "connect";
|
|
@@ -120,7 +124,10 @@ function createDbContext(def, executor, opt) {
|
|
|
120
124
|
* Used for DDL operations or read operations that don't require transactions
|
|
121
125
|
*/
|
|
122
126
|
async connectWithoutTransaction(callback) {
|
|
123
|
-
|
|
127
|
+
if (!relationsValidated) {
|
|
128
|
+
validateRelationsImpl(def);
|
|
129
|
+
relationsValidated = true;
|
|
130
|
+
}
|
|
124
131
|
base.resetAliasCounter();
|
|
125
132
|
await executor.connect();
|
|
126
133
|
status = "connect";
|
|
@@ -141,7 +148,7 @@ function createDbContext(def, executor, opt) {
|
|
|
141
148
|
*
|
|
142
149
|
* Used when transaction is needed partially within connectWithoutTransaction
|
|
143
150
|
*/
|
|
144
|
-
async
|
|
151
|
+
async transaction(fn, isolationLevel) {
|
|
145
152
|
if (status === "transact") {
|
|
146
153
|
throw new Error("Already in TRANSACTION state.");
|
|
147
154
|
}
|
|
@@ -205,25 +212,25 @@ function createDbContext(def, executor, opt) {
|
|
|
205
212
|
async renameColumn(table, column, newName) {
|
|
206
213
|
await base.executeDefs([columnDdl.getRenameColumnQueryDef(table, column, newName)]);
|
|
207
214
|
},
|
|
208
|
-
async
|
|
209
|
-
await base.executeDefs([relationDdl.
|
|
215
|
+
async addPrimaryKey(table, columns) {
|
|
216
|
+
await base.executeDefs([relationDdl.getAddPrimaryKeyQueryDef(table, columns)]);
|
|
210
217
|
},
|
|
211
|
-
async
|
|
212
|
-
await base.executeDefs([relationDdl.
|
|
218
|
+
async dropPrimaryKey(table) {
|
|
219
|
+
await base.executeDefs([relationDdl.getDropPrimaryKeyQueryDef(table)]);
|
|
213
220
|
},
|
|
214
|
-
async
|
|
221
|
+
async addForeignKey(table, relationName, relationDef) {
|
|
215
222
|
await base.executeDefs([
|
|
216
|
-
relationDdl.
|
|
223
|
+
relationDdl.getAddForeignKeyQueryDef(base, table, relationName, relationDef)
|
|
217
224
|
]);
|
|
218
225
|
},
|
|
219
|
-
async
|
|
220
|
-
await base.executeDefs([relationDdl.
|
|
226
|
+
async addIndex(table, indexBuilder) {
|
|
227
|
+
await base.executeDefs([relationDdl.getAddIndexQueryDef(table, indexBuilder)]);
|
|
221
228
|
},
|
|
222
|
-
async
|
|
223
|
-
await base.executeDefs([relationDdl.
|
|
229
|
+
async dropForeignKey(table, relationName) {
|
|
230
|
+
await base.executeDefs([relationDdl.getDropForeignKeyQueryDef(table, relationName)]);
|
|
224
231
|
},
|
|
225
|
-
async
|
|
226
|
-
await base.executeDefs([relationDdl.
|
|
232
|
+
async dropIndex(table, columns) {
|
|
233
|
+
await base.executeDefs([relationDdl.getDropIndexQueryDef(table, columns)]);
|
|
227
234
|
},
|
|
228
235
|
async clearSchema(params) {
|
|
229
236
|
await base.executeDefs([schemaDdl.getClearSchemaQueryDef(params)]);
|
|
@@ -235,8 +242,8 @@ function createDbContext(def, executor, opt) {
|
|
|
235
242
|
async truncate(table) {
|
|
236
243
|
await base.executeDefs([schemaDdl.getTruncateQueryDef(table)]);
|
|
237
244
|
},
|
|
238
|
-
async switchFk(table,
|
|
239
|
-
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table,
|
|
245
|
+
async switchFk(table, enabled) {
|
|
246
|
+
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table, enabled)]);
|
|
240
247
|
},
|
|
241
248
|
//#endregion
|
|
242
249
|
//#region ========== DDL QueryDef generators ==========
|
|
@@ -252,12 +259,12 @@ function createDbContext(def, executor, opt) {
|
|
|
252
259
|
getDropColumnQueryDef: columnDdl.getDropColumnQueryDef,
|
|
253
260
|
getModifyColumnQueryDef: columnDdl.getModifyColumnQueryDef,
|
|
254
261
|
getRenameColumnQueryDef: columnDdl.getRenameColumnQueryDef,
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
262
|
+
getAddPrimaryKeyQueryDef: relationDdl.getAddPrimaryKeyQueryDef,
|
|
263
|
+
getDropPrimaryKeyQueryDef: relationDdl.getDropPrimaryKeyQueryDef,
|
|
264
|
+
getAddForeignKeyQueryDef: (table, relationName, relationDef) => relationDdl.getAddForeignKeyQueryDef(base, table, relationName, relationDef),
|
|
265
|
+
getAddIndexQueryDef: relationDdl.getAddIndexQueryDef,
|
|
266
|
+
getDropForeignKeyQueryDef: relationDdl.getDropForeignKeyQueryDef,
|
|
267
|
+
getDropIndexQueryDef: relationDdl.getDropIndexQueryDef,
|
|
261
268
|
getClearSchemaQueryDef: schemaDdl.getClearSchemaQueryDef,
|
|
262
269
|
getSchemaExistsQueryDef: schemaDdl.getSchemaExistsQueryDef,
|
|
263
270
|
getTruncateQueryDef: schemaDdl.getTruncateQueryDef,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/create-db-context.ts"],
|
|
4
|
-
"mappings": "AAQA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,0BAA0B;AAChD,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAE5B,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/ddl/initialize.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
RelationKeyTargetBuilder
|
|
9
9
|
} from "../schema/factory/relation-builder.js";
|
|
10
10
|
import { getCreateObjectQueryDef } from "./table-ddl.js";
|
|
11
|
-
import {
|
|
11
|
+
import { getAddForeignKeyQueryDef, getAddIndexQueryDef } from "./relation-ddl.js";
|
|
12
12
|
import { getClearSchemaQueryDef, getSchemaExistsQueryDef } from "./schema-ddl.js";
|
|
13
13
|
async function initialize(db, def, options) {
|
|
14
14
|
const dbNames = (options == null ? void 0 : options.dbs) ?? (db.database !== void 0 ? [db.database] : []);
|
|
@@ -36,7 +36,7 @@ async function initialize(db, def, options) {
|
|
|
36
36
|
} else {
|
|
37
37
|
let appliedMigrations;
|
|
38
38
|
try {
|
|
39
|
-
appliedMigrations = await db._migration().
|
|
39
|
+
appliedMigrations = await db._migration().execute();
|
|
40
40
|
} catch (err) {
|
|
41
41
|
if (!isTableNotExistsError(err)) {
|
|
42
42
|
throw err;
|
|
@@ -74,7 +74,7 @@ async function createAllObjects(db, def) {
|
|
|
74
74
|
const tableDef = db.getQueryDefObjectName(table);
|
|
75
75
|
for (const [relationName, relationDef] of Object.entries(relations)) {
|
|
76
76
|
if (!(relationDef instanceof ForeignKeyBuilder)) continue;
|
|
77
|
-
addFkDefs.push(
|
|
77
|
+
addFkDefs.push(getAddForeignKeyQueryDef(db, tableDef, relationName, relationDef));
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
if (addFkDefs.length > 0) {
|
|
@@ -86,7 +86,7 @@ async function createAllObjects(db, def) {
|
|
|
86
86
|
if (indexes == null || indexes.length === 0) continue;
|
|
87
87
|
const indexTableDef = db.getQueryDefObjectName(table);
|
|
88
88
|
for (const indexBuilder of indexes) {
|
|
89
|
-
createIndexDefs.push(
|
|
89
|
+
createIndexDefs.push(getAddIndexQueryDef(indexTableDef, indexBuilder));
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
if (createIndexDefs.length > 0) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ddl/initialize.ts"],
|
|
4
|
-
"mappings": "AAGA,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,+BAA+B;AACxC,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import type { ForeignKeyBuilder } from "../schema/factory/relation-builder";
|
|
2
2
|
import type { IndexBuilder } from "../schema/factory/index-builder";
|
|
3
|
-
import type { QueryDef, QueryDefObjectName,
|
|
3
|
+
import type { QueryDef, QueryDefObjectName, AddPrimaryKeyQueryDef, DropPrimaryKeyQueryDef, DropForeignKeyQueryDef, DropIndexQueryDef } from "../types/query-def";
|
|
4
4
|
import type { DbContextBase } from "../types/db-context-def";
|
|
5
5
|
/**
|
|
6
6
|
* Generate DROP PRIMARY KEY QueryDef
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function getDropPrimaryKeyQueryDef(table: QueryDefObjectName): DropPrimaryKeyQueryDef;
|
|
9
9
|
/**
|
|
10
10
|
* Generate ADD PRIMARY KEY QueryDef
|
|
11
11
|
*/
|
|
12
|
-
export declare function
|
|
12
|
+
export declare function getAddPrimaryKeyQueryDef(table: QueryDefObjectName, columns: string[]): AddPrimaryKeyQueryDef;
|
|
13
13
|
/**
|
|
14
14
|
* Generate ADD FOREIGN KEY QueryDef
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function getAddForeignKeyQueryDef(db: DbContextBase, table: QueryDefObjectName, relationName: string, relationDef: ForeignKeyBuilder<any, any>): QueryDef;
|
|
17
17
|
/**
|
|
18
18
|
* ADD INDEX QueryDef Generate
|
|
19
19
|
*/
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function getAddIndexQueryDef(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): QueryDef;
|
|
21
21
|
/**
|
|
22
22
|
* DROP FOREIGN KEY QueryDef Generate
|
|
23
23
|
*/
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function getDropForeignKeyQueryDef(table: QueryDefObjectName, relationName: string): DropForeignKeyQueryDef;
|
|
25
25
|
/**
|
|
26
26
|
* DROP INDEX QueryDef Generate
|
|
27
27
|
*/
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function getDropIndexQueryDef(table: QueryDefObjectName, columns: string[]): DropIndexQueryDef;
|
|
29
29
|
//# sourceMappingURL=relation-ddl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-ddl.d.ts","sourceRoot":"","sources":["..\\..\\src\\ddl\\relation-ddl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"relation-ddl.d.ts","sourceRoot":"","sources":["..\\..\\src\\ddl\\relation-ddl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,sBAAsB,CAE3F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAE5G;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,kBAAkB,EACzB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GACvC,QAAQ,CAeV;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,EACzB,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,GACnC,QAAQ,CAeV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAEjH;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAEpG"}
|
package/dist/ddl/relation-ddl.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { getMatchedPrimaryKeys } from "../exec/queryable.js";
|
|
2
2
|
import { getQueryDefObjectName } from "./table-ddl.js";
|
|
3
|
-
function
|
|
4
|
-
return { type: "
|
|
3
|
+
function getDropPrimaryKeyQueryDef(table) {
|
|
4
|
+
return { type: "dropPrimaryKey", table };
|
|
5
5
|
}
|
|
6
|
-
function
|
|
7
|
-
return { type: "
|
|
6
|
+
function getAddPrimaryKeyQueryDef(table, columns) {
|
|
7
|
+
return { type: "addPrimaryKey", table, columns };
|
|
8
8
|
}
|
|
9
|
-
function
|
|
9
|
+
function getAddForeignKeyQueryDef(db, table, relationName, relationDef) {
|
|
10
10
|
const targetTable = relationDef.meta.targetFn();
|
|
11
11
|
const fkColumns = relationDef.meta.columns;
|
|
12
12
|
const pk = getMatchedPrimaryKeys(fkColumns, targetTable);
|
|
13
13
|
return {
|
|
14
|
-
type: "
|
|
14
|
+
type: "addForeignKey",
|
|
15
15
|
table,
|
|
16
16
|
foreignKey: {
|
|
17
17
|
name: `FK_${table.name}_${relationName}`,
|
|
@@ -21,10 +21,10 @@ function getAddFkQueryDef(db, table, relationName, relationDef) {
|
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
function
|
|
24
|
+
function getAddIndexQueryDef(table, indexBuilder) {
|
|
25
25
|
const indexMeta = indexBuilder.meta;
|
|
26
26
|
return {
|
|
27
|
-
type: "
|
|
27
|
+
type: "addIndex",
|
|
28
28
|
table,
|
|
29
29
|
index: {
|
|
30
30
|
name: indexBuilder.meta.name ?? `IDX_${table.name}_${indexMeta.columns.join("_")}`,
|
|
@@ -39,18 +39,18 @@ function getAddIdxQueryDef(table, indexBuilder) {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
function
|
|
43
|
-
return { type: "
|
|
42
|
+
function getDropForeignKeyQueryDef(table, relationName) {
|
|
43
|
+
return { type: "dropForeignKey", table, foreignKey: `FK_${table.name}_${relationName}` };
|
|
44
44
|
}
|
|
45
|
-
function
|
|
46
|
-
return { type: "
|
|
45
|
+
function getDropIndexQueryDef(table, columns) {
|
|
46
|
+
return { type: "dropIndex", table, index: `IDX_${table.name}_${columns.join("_")}` };
|
|
47
47
|
}
|
|
48
48
|
export {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
getAddForeignKeyQueryDef,
|
|
50
|
+
getAddIndexQueryDef,
|
|
51
|
+
getAddPrimaryKeyQueryDef,
|
|
52
|
+
getDropForeignKeyQueryDef,
|
|
53
|
+
getDropIndexQueryDef,
|
|
54
|
+
getDropPrimaryKeyQueryDef
|
|
55
55
|
};
|
|
56
56
|
//# sourceMappingURL=relation-ddl.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ddl/relation-ddl.ts"],
|
|
4
|
-
"mappings": "AAWA,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AAK/B,SAAS,
|
|
4
|
+
"mappings": "AAWA,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AAK/B,SAAS,0BAA0B,OAAmD;AAC3F,SAAO,EAAE,MAAM,kBAAkB,MAAM;AACzC;AAKO,SAAS,yBAAyB,OAA2B,SAA0C;AAC5G,SAAO,EAAE,MAAM,iBAAiB,OAAO,QAAQ;AACjD;AAKO,SAAS,yBACd,IACA,OACA,cACA,aACU;AACV,QAAM,cAAc,YAAY,KAAK,SAAS;AAC9C,QAAM,YAAY,YAAY,KAAK;AACnC,QAAM,KAAK,sBAAsB,WAAW,WAAW;AAEvD,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,YAAY;AAAA,MACV,MAAM,MAAM,MAAM,IAAI,IAAI,YAAY;AAAA,MACtC;AAAA,MACA,aAAa,sBAAsB,IAAI,WAAW;AAAA,MAClD,iBAAiB;AAAA,IACnB;AAAA,EACF;AACF;AAKO,SAAS,oBACd,OACA,cACU;AACV,QAAM,YAAY,aAAa;AAE/B,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,OAAO;AAAA,MACL,MAAM,aAAa,KAAK,QAAQ,OAAO,MAAM,IAAI,IAAI,UAAU,QAAQ,KAAK,GAAG,CAAC;AAAA,MAChF,SAAS,UAAU,QAAQ,IAAI,CAAC,KAAK,MAAG;AAnE9C;AAmEkD;AAAA,UAC1C,MAAM;AAAA,UACN,WAAS,eAAU,YAAV,mBAAoB,OAAM;AAAA,QACrC;AAAA,OAAE;AAAA,MACF,QAAQ,UAAU;AAAA,IACpB;AAAA,EACF;AACF;AAKO,SAAS,0BAA0B,OAA2B,cAA8C;AACjH,SAAO,EAAE,MAAM,kBAAkB,OAAO,YAAY,MAAM,MAAM,IAAI,IAAI,YAAY,GAAG;AACzF;AAKO,SAAS,qBAAqB,OAA2B,SAAsC;AACpG,SAAO,EAAE,MAAM,aAAa,OAAO,OAAO,OAAO,MAAM,IAAI,IAAI,QAAQ,KAAK,GAAG,CAAC,GAAG;AACrF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/ddl/schema-ddl.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export declare function getTruncateQueryDef(table: QueryDefObjectName): Truncate
|
|
|
17
17
|
/**
|
|
18
18
|
* Generate SWITCH FK QueryDef
|
|
19
19
|
*/
|
|
20
|
-
export declare function getSwitchFkQueryDef(table: QueryDefObjectName,
|
|
20
|
+
export declare function getSwitchFkQueryDef(table: QueryDefObjectName, enabled: boolean): SwitchFkQueryDef;
|
|
21
21
|
//# sourceMappingURL=schema-ddl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-ddl.d.ts","sourceRoot":"","sources":["..\\..\\src\\ddl\\schema-ddl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,CAEtB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAE/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,gBAAgB,CAE/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"schema-ddl.d.ts","sourceRoot":"","sources":["..\\..\\src\\ddl\\schema-ddl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,CAEtB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAE/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,gBAAgB,CAE/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,OAAO,GACf,gBAAgB,CAElB"}
|
package/dist/ddl/schema-ddl.js
CHANGED
|
@@ -7,8 +7,8 @@ function getSchemaExistsQueryDef(database, schema) {
|
|
|
7
7
|
function getTruncateQueryDef(table) {
|
|
8
8
|
return { type: "truncate", table };
|
|
9
9
|
}
|
|
10
|
-
function getSwitchFkQueryDef(table,
|
|
11
|
-
return { type: "switchFk", table,
|
|
10
|
+
function getSwitchFkQueryDef(table, enabled) {
|
|
11
|
+
return { type: "switchFk", table, enabled };
|
|
12
12
|
}
|
|
13
13
|
export {
|
|
14
14
|
getClearSchemaQueryDef,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ddl/schema-ddl.ts"],
|
|
4
|
-
"mappings": "AAWO,SAAS,uBAAuB,QAGf;AACtB,SAAO,EAAE,MAAM,eAAe,UAAU,OAAO,UAAU,QAAQ,OAAO,OAAO;AACjF;AAKO,SAAS,wBAAwB,UAAkB,QAAuC;AAC/F,SAAO,EAAE,MAAM,gBAAgB,UAAU,OAAO;AAClD;AAKO,SAAS,oBAAoB,OAA6C;AAC/E,SAAO,EAAE,MAAM,YAAY,MAAM;AACnC;AAKO,SAAS,oBACd,OACA,SACkB;AAClB,SAAO,EAAE,MAAM,YAAY,OAAO,QAAQ
|
|
4
|
+
"mappings": "AAWO,SAAS,uBAAuB,QAGf;AACtB,SAAO,EAAE,MAAM,eAAe,UAAU,OAAO,UAAU,QAAQ,OAAO,OAAO;AACjF;AAKO,SAAS,wBAAwB,UAAkB,QAAuC;AAC/F,SAAO,EAAE,MAAM,gBAAgB,UAAU,OAAO;AAClD;AAKO,SAAS,oBAAoB,OAA6C;AAC/E,SAAO,EAAE,MAAM,YAAY,MAAM;AACnC;AAKO,SAAS,oBACd,OACA,SACkB;AAClB,SAAO,EAAE,MAAM,YAAY,OAAO,QAAQ;AAC5C;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/ddl/table-ddl.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TableBuilder } from "../schema/table-builder.js";
|
|
2
2
|
import { ViewBuilder } from "../schema/view-builder.js";
|
|
3
3
|
import { ProcedureBuilder } from "../schema/procedure-builder.js";
|
|
4
|
-
import {
|
|
4
|
+
import { obj } from "@simplysm/core-common";
|
|
5
5
|
function getCreateObjectQueryDef(db, builder) {
|
|
6
6
|
if (builder instanceof TableBuilder) {
|
|
7
7
|
return getCreateTableQueryDef(db, builder);
|
|
@@ -86,7 +86,7 @@ function getDropProcQueryDef(procedure) {
|
|
|
86
86
|
return { type: "dropProc", procedure };
|
|
87
87
|
}
|
|
88
88
|
function getQueryDefObjectName(db, tableOrView) {
|
|
89
|
-
return
|
|
89
|
+
return obj.clearUndefined({
|
|
90
90
|
database: tableOrView.meta.database ?? db.database,
|
|
91
91
|
schema: tableOrView.meta.schema ?? db.schema,
|
|
92
92
|
name: tableOrView.meta.name
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ddl/table-ddl.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AAWjC,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/exec/queryable.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ declare class JoinQueryable {
|
|
|
22
22
|
* @param table - Table to join
|
|
23
23
|
* @returns Joined Queryable
|
|
24
24
|
*/
|
|
25
|
-
from<T extends TableBuilder<any, any>>(table: T): Queryable<T["$
|
|
25
|
+
from<T extends TableBuilder<any, any>>(table: T): Queryable<T["$inferSelect"], T>;
|
|
26
26
|
/**
|
|
27
27
|
* Directly specify columns in join result
|
|
28
28
|
*
|
|
@@ -56,7 +56,7 @@ declare class RecursiveQueryable<TBaseData extends DataRecord> {
|
|
|
56
56
|
* @param table - Target table to recurse
|
|
57
57
|
* @returns Queryable with self property added (for self-reference)
|
|
58
58
|
*/
|
|
59
|
-
from<T extends TableBuilder<any, any>>(table: T): Queryable<T["$
|
|
59
|
+
from<T extends TableBuilder<any, any>>(table: T): Queryable<T["$inferSelect"] & {
|
|
60
60
|
self?: TBaseData[];
|
|
61
61
|
}, T>;
|
|
62
62
|
/**
|
|
@@ -93,12 +93,12 @@ declare class RecursiveQueryable<TBaseData extends DataRecord> {
|
|
|
93
93
|
* const users = await db.user()
|
|
94
94
|
* .where((u) => [expr.eq(u.isActive, true)])
|
|
95
95
|
* .orderBy((u) => u.name)
|
|
96
|
-
* .
|
|
96
|
+
* .execute();
|
|
97
97
|
*
|
|
98
98
|
* // JOIN query
|
|
99
99
|
* const posts = await db.post()
|
|
100
100
|
* .include((p) => p.user)
|
|
101
|
-
* .
|
|
101
|
+
* .execute();
|
|
102
102
|
*
|
|
103
103
|
* // INSERT
|
|
104
104
|
* await db.user().insert([{ name: "Gildong Hong", email: "test@test.com" }]);
|
|
@@ -272,7 +272,7 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
272
272
|
* 1:N 관계의 LEFT OUTER JOIN을 수행 (배열로 result Add)
|
|
273
273
|
*
|
|
274
274
|
* @param as - Result에 추가할 property 이름
|
|
275
|
-
* @param
|
|
275
|
+
* @param fn - Join 조건을 정의하는 콜백 function
|
|
276
276
|
* @returns join 결과가 배열로 추가된 Queryable
|
|
277
277
|
*
|
|
278
278
|
* @example
|
|
@@ -285,14 +285,14 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
285
285
|
* // Result: { id, name, posts: [{ id, title }, ...] }
|
|
286
286
|
* ```
|
|
287
287
|
*/
|
|
288
|
-
join<A extends string, R extends DataRecord>(as: A,
|
|
288
|
+
join<A extends string, R extends DataRecord>(as: A, fn: (qr: JoinQueryable, cols: QueryableRecord<TData>) => Queryable<R, any>): Queryable<TData & {
|
|
289
289
|
[K in A]?: R[];
|
|
290
290
|
}, TFrom>;
|
|
291
291
|
/**
|
|
292
292
|
* N:1 또는 1:1 관계의 LEFT OUTER JOIN을 수행 (단일 객체로 result Add)
|
|
293
293
|
*
|
|
294
294
|
* @param as - Result에 추가할 property 이름
|
|
295
|
-
* @param
|
|
295
|
+
* @param fn - Join 조건을 정의하는 콜백 function
|
|
296
296
|
* @returns join 결과가 단일 객체로 추가된 Queryable
|
|
297
297
|
*
|
|
298
298
|
* @example
|
|
@@ -305,7 +305,7 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
305
305
|
* // Result: { id, title, user: { id, name } | undefined }
|
|
306
306
|
* ```
|
|
307
307
|
*/
|
|
308
|
-
joinSingle<A extends string, R extends DataRecord>(as: A,
|
|
308
|
+
joinSingle<A extends string, R extends DataRecord>(as: A, fn: (qr: JoinQueryable, cols: QueryableRecord<TData>) => Queryable<R, any>): Queryable<{
|
|
309
309
|
[K in keyof TData as K extends A ? never : K]: TData[K];
|
|
310
310
|
} & {
|
|
311
311
|
[K in A]?: R;
|
|
@@ -373,7 +373,7 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
373
373
|
*
|
|
374
374
|
* 계층 structure data(조직도, 카테고리 트리 등)를 조회할 때 사용
|
|
375
375
|
*
|
|
376
|
-
* @param
|
|
376
|
+
* @param fn - recursive part을 정의하는 콜백 function
|
|
377
377
|
* @returns recursive CTE가 apply된 Queryable
|
|
378
378
|
*
|
|
379
379
|
* @example
|
|
@@ -387,7 +387,7 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
387
387
|
* )
|
|
388
388
|
* ```
|
|
389
389
|
*/
|
|
390
|
-
recursive(
|
|
390
|
+
recursive(fn: (qr: RecursiveQueryable<TData>) => Queryable<TData, any>): Queryable<TData, never>;
|
|
391
391
|
/**
|
|
392
392
|
* SELECT query를 실행하고 result 배열을 return
|
|
393
393
|
*
|
|
@@ -397,10 +397,10 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
397
397
|
* ```typescript
|
|
398
398
|
* const users = await db.user()
|
|
399
399
|
* .where((u) => [expr.eq(u.isActive, true)])
|
|
400
|
-
* .
|
|
400
|
+
* .execute();
|
|
401
401
|
* ```
|
|
402
402
|
*/
|
|
403
|
-
|
|
403
|
+
execute(): Promise<TData[]>;
|
|
404
404
|
/**
|
|
405
405
|
* 단일 결과를 return (2개 이상이면 Error)
|
|
406
406
|
*
|
|
@@ -435,7 +435,7 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
435
435
|
/**
|
|
436
436
|
* result row 수를 return
|
|
437
437
|
*
|
|
438
|
-
* @param
|
|
438
|
+
* @param fn - 카운트할 column을 지정하는 function (Select)
|
|
439
439
|
* @returns row 수
|
|
440
440
|
* @throws distinct() 또는 groupBy() 후 직접 호출 시 에러 (wrap() 필요)
|
|
441
441
|
*
|
|
@@ -446,7 +446,7 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
446
446
|
* .count();
|
|
447
447
|
* ```
|
|
448
448
|
*/
|
|
449
|
-
count(
|
|
449
|
+
count(fn?: (cols: QueryableRecord<TData>) => ExprUnit<ColumnPrimitive>): Promise<number>;
|
|
450
450
|
/**
|
|
451
451
|
* 조건에 맞는 data 존재 여부를 확인
|
|
452
452
|
*
|
|
@@ -580,8 +580,8 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
580
580
|
*
|
|
581
581
|
* WHERE condition에 맞는 data가 있으면 UPDATE, 없으면 INSERT
|
|
582
582
|
*
|
|
583
|
-
* @param
|
|
584
|
-
* @param
|
|
583
|
+
* @param updateFn - Update할 column과 값을 반환하는 function
|
|
584
|
+
* @param insertFn - Insert할 레코드를 반환하는 function (selection, 미지정 시 updateFn와 동일)
|
|
585
585
|
* @param outputColumns - column name array to receive (Select)
|
|
586
586
|
* @returns outputColumns 지정 시 영향받은 레코드 array return
|
|
587
587
|
*
|
|
@@ -604,15 +604,15 @@ export declare class Queryable<TData extends DataRecord, TFrom extends TableBuil
|
|
|
604
604
|
* );
|
|
605
605
|
* ```
|
|
606
606
|
*/
|
|
607
|
-
upsert(
|
|
608
|
-
upsert<K extends keyof TFrom["$inferColumns"] & string>(
|
|
609
|
-
upsert<U extends QueryableWriteRecord<TFrom["$inferUpdate"]>>(
|
|
610
|
-
upsert<U extends QueryableWriteRecord<TFrom["$inferUpdate"]>, K extends keyof TFrom["$inferColumns"] & string>(
|
|
611
|
-
getUpsertQueryDef<U extends QueryableWriteRecord<TFrom["$inferUpdate"]>>(
|
|
607
|
+
upsert(updateFn: (cols: QueryableRecord<TData>) => QueryableWriteRecord<TFrom["$inferUpdate"]>): Promise<void>;
|
|
608
|
+
upsert<K extends keyof TFrom["$inferColumns"] & string>(insertFn: (cols: QueryableRecord<TData>) => QueryableWriteRecord<TFrom["$inferInsert"]>, outputColumns?: K[]): Promise<Pick<TFrom["$inferColumns"], K>[]>;
|
|
609
|
+
upsert<U extends QueryableWriteRecord<TFrom["$inferUpdate"]>>(updateFn: (cols: QueryableRecord<TData>) => U, insertFn: (updateRecord: U) => QueryableWriteRecord<TFrom["$inferInsert"]>): Promise<void>;
|
|
610
|
+
upsert<U extends QueryableWriteRecord<TFrom["$inferUpdate"]>, K extends keyof TFrom["$inferColumns"] & string>(updateFn: (cols: QueryableRecord<TData>) => U, insertFn: (updateRecord: U) => QueryableWriteRecord<TFrom["$inferInsert"]>, outputColumns?: K[]): Promise<Pick<TFrom["$inferColumns"], K>[]>;
|
|
611
|
+
getUpsertQueryDef<U extends QueryableWriteRecord<TFrom["$inferUpdate"]>>(updateRecordFn: (cols: QueryableRecord<TData>) => U, insertRecordFn: (updateRecord: U) => QueryableWriteRecord<TFrom["$inferInsert"]>, outputColumns?: (keyof TFrom["$inferColumns"] & string)[]): UpsertQueryDef;
|
|
612
612
|
/**
|
|
613
613
|
* FK constraint on/off (transaction 내 사용 가능)
|
|
614
614
|
*/
|
|
615
|
-
switchFk(
|
|
615
|
+
switchFk(enabled: boolean): Promise<void>;
|
|
616
616
|
private _getCudOutputDef;
|
|
617
617
|
}
|
|
618
618
|
/**
|
|
@@ -712,11 +712,11 @@ export type PathProxy<TObject> = {
|
|
|
712
712
|
* async getActiveUsers() {
|
|
713
713
|
* return this.user()
|
|
714
714
|
* .where((u) => [expr.eq(u.isActive, true)])
|
|
715
|
-
* .
|
|
715
|
+
* .execute();
|
|
716
716
|
* }
|
|
717
717
|
* }
|
|
718
718
|
* ```
|
|
719
719
|
*/
|
|
720
|
-
export declare function queryable<TBuilder extends TableBuilder<any, any> | ViewBuilder<any, any, any>>(db: DbContextBase, tableOrView: TBuilder, as?: string): () => Queryable<TBuilder["$
|
|
720
|
+
export declare function queryable<TBuilder extends TableBuilder<any, any> | ViewBuilder<any, any, any>>(db: DbContextBase, tableOrView: TBuilder, as?: string): () => Queryable<TBuilder["$inferSelect"], TBuilder extends TableBuilder<any, any> ? TBuilder : never>;
|
|
721
721
|
export {};
|
|
722
722
|
//# sourceMappingURL=queryable.d.ts.map
|