@simplysm/orm-common 13.0.68 → 13.0.70
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 +54 -1447
- package/dist/create-db-context.d.ts +10 -10
- package/dist/create-db-context.js +9 -9
- package/dist/create-db-context.js.map +1 -1
- package/dist/ddl/column-ddl.d.ts +4 -4
- package/dist/ddl/initialize.d.ts +17 -17
- package/dist/ddl/initialize.js +2 -2
- package/dist/ddl/initialize.js.map +1 -1
- package/dist/ddl/relation-ddl.d.ts +6 -6
- package/dist/ddl/schema-ddl.d.ts +4 -4
- package/dist/ddl/table-ddl.d.ts +24 -24
- package/dist/ddl/table-ddl.js +4 -4
- package/dist/ddl/table-ddl.js.map +1 -1
- package/dist/errors/db-transaction-error.d.ts +15 -15
- package/dist/errors/db-transaction-error.d.ts.map +1 -1
- package/dist/exec/executable.d.ts +23 -23
- package/dist/exec/executable.js +3 -3
- package/dist/exec/executable.js.map +1 -1
- package/dist/exec/queryable.d.ts +160 -160
- package/dist/exec/queryable.js +119 -119
- package/dist/exec/queryable.js.map +1 -1
- package/dist/exec/search-parser.d.ts +37 -37
- package/dist/exec/search-parser.d.ts.map +1 -1
- package/dist/expr/expr-unit.d.ts +4 -4
- package/dist/expr/expr.d.ts +257 -257
- package/dist/expr/expr.js +265 -265
- package/dist/expr/expr.js.map +1 -1
- package/dist/query-builder/base/expr-renderer-base.d.ts +9 -9
- package/dist/query-builder/base/expr-renderer-base.js +2 -2
- package/dist/query-builder/base/expr-renderer-base.js.map +1 -1
- package/dist/query-builder/base/query-builder-base.d.ts +26 -26
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +22 -22
- 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 +18 -18
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +11 -11
- 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 +17 -17
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.d.ts +8 -8
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +5 -5
- 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 +17 -17
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +5 -5
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +8 -8
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
- package/dist/query-builder/query-builder.d.ts +1 -1
- package/dist/schema/factory/column-builder.d.ts +79 -79
- package/dist/schema/factory/column-builder.js +42 -42
- package/dist/schema/factory/index-builder.d.ts +39 -39
- package/dist/schema/factory/index-builder.js +26 -26
- package/dist/schema/factory/relation-builder.d.ts +99 -99
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js +38 -38
- package/dist/schema/procedure-builder.d.ts +49 -49
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js +33 -33
- package/dist/schema/table-builder.d.ts +59 -59
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +43 -43
- package/dist/schema/view-builder.d.ts +49 -49
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +32 -32
- package/dist/types/column.d.ts +22 -22
- package/dist/types/column.js +1 -1
- package/dist/types/column.js.map +1 -1
- package/dist/types/db.d.ts +40 -40
- package/dist/types/expr.d.ts +59 -59
- package/dist/types/expr.d.ts.map +1 -1
- package/dist/types/query-def.d.ts +44 -44
- package/dist/types/query-def.d.ts.map +1 -1
- package/dist/utils/result-parser.d.ts +11 -11
- package/dist/utils/result-parser.js +3 -3
- package/dist/utils/result-parser.js.map +1 -1
- package/package.json +5 -5
- package/src/create-db-context.ts +20 -20
- package/src/ddl/column-ddl.ts +4 -4
- package/src/ddl/initialize.ts +259 -259
- package/src/ddl/relation-ddl.ts +89 -89
- package/src/ddl/schema-ddl.ts +4 -4
- package/src/ddl/table-ddl.ts +189 -189
- package/src/errors/db-transaction-error.ts +13 -13
- package/src/exec/executable.ts +25 -25
- package/src/exec/queryable.ts +2033 -2033
- package/src/exec/search-parser.ts +57 -57
- package/src/expr/expr-unit.ts +4 -4
- package/src/expr/expr.ts +2140 -2140
- package/src/query-builder/base/expr-renderer-base.ts +237 -237
- package/src/query-builder/base/query-builder-base.ts +213 -213
- package/src/query-builder/mssql/mssql-expr-renderer.ts +607 -607
- package/src/query-builder/mssql/mssql-query-builder.ts +650 -650
- package/src/query-builder/mysql/mysql-expr-renderer.ts +613 -613
- package/src/query-builder/mysql/mysql-query-builder.ts +759 -759
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +611 -611
- package/src/query-builder/postgresql/postgresql-query-builder.ts +686 -686
- package/src/query-builder/query-builder.ts +19 -19
- package/src/schema/factory/column-builder.ts +423 -423
- package/src/schema/factory/index-builder.ts +164 -164
- package/src/schema/factory/relation-builder.ts +453 -453
- package/src/schema/procedure-builder.ts +232 -232
- package/src/schema/table-builder.ts +319 -319
- package/src/schema/view-builder.ts +221 -221
- package/src/types/column.ts +188 -188
- package/src/types/db.ts +208 -208
- package/src/types/expr.ts +697 -697
- package/src/types/query-def.ts +513 -513
- package/src/utils/result-parser.ts +458 -458
- package/tests/db-context/create-db-context.spec.ts +224 -0
- package/tests/db-context/define-db-context.spec.ts +68 -0
- package/tests/ddl/basic.expected.ts +341 -0
- package/tests/ddl/basic.spec.ts +714 -0
- package/tests/ddl/column-builder.expected.ts +310 -0
- package/tests/ddl/column-builder.spec.ts +637 -0
- package/tests/ddl/index-builder.expected.ts +38 -0
- package/tests/ddl/index-builder.spec.ts +202 -0
- package/tests/ddl/procedure-builder.expected.ts +52 -0
- package/tests/ddl/procedure-builder.spec.ts +234 -0
- package/tests/ddl/relation-builder.expected.ts +36 -0
- package/tests/ddl/relation-builder.spec.ts +372 -0
- package/tests/ddl/table-builder.expected.ts +113 -0
- package/tests/ddl/table-builder.spec.ts +433 -0
- package/tests/ddl/view-builder.expected.ts +38 -0
- package/tests/ddl/view-builder.spec.ts +176 -0
- package/tests/dml/delete.expected.ts +96 -0
- package/tests/dml/delete.spec.ts +160 -0
- package/tests/dml/insert.expected.ts +192 -0
- package/tests/dml/insert.spec.ts +288 -0
- package/tests/dml/update.expected.ts +176 -0
- package/tests/dml/update.spec.ts +318 -0
- package/tests/dml/upsert.expected.ts +215 -0
- package/tests/dml/upsert.spec.ts +242 -0
- package/tests/errors/queryable-errors.spec.ts +177 -0
- package/tests/escape.spec.ts +100 -0
- package/tests/examples/pivot.expected.ts +211 -0
- package/tests/examples/pivot.spec.ts +533 -0
- package/tests/examples/sampling.expected.ts +69 -0
- package/tests/examples/sampling.spec.ts +104 -0
- package/tests/examples/unpivot.expected.ts +120 -0
- package/tests/examples/unpivot.spec.ts +226 -0
- package/tests/exec/search-parser.spec.ts +283 -0
- package/tests/executable/basic.expected.ts +18 -0
- package/tests/executable/basic.spec.ts +54 -0
- package/tests/expr/comparison.expected.ts +282 -0
- package/tests/expr/comparison.spec.ts +400 -0
- package/tests/expr/conditional.expected.ts +134 -0
- package/tests/expr/conditional.spec.ts +276 -0
- package/tests/expr/date.expected.ts +332 -0
- package/tests/expr/date.spec.ts +526 -0
- package/tests/expr/math.expected.ts +62 -0
- package/tests/expr/math.spec.ts +106 -0
- package/tests/expr/string.expected.ts +218 -0
- package/tests/expr/string.spec.ts +356 -0
- package/tests/expr/utility.expected.ts +147 -0
- package/tests/expr/utility.spec.ts +182 -0
- package/tests/select/basic.expected.ts +322 -0
- package/tests/select/basic.spec.ts +502 -0
- package/tests/select/filter.expected.ts +357 -0
- package/tests/select/filter.spec.ts +1068 -0
- package/tests/select/group.expected.ts +169 -0
- package/tests/select/group.spec.ts +244 -0
- package/tests/select/join.expected.ts +582 -0
- package/tests/select/join.spec.ts +805 -0
- package/tests/select/order.expected.ts +150 -0
- package/tests/select/order.spec.ts +189 -0
- package/tests/select/recursive-cte.expected.ts +244 -0
- package/tests/select/recursive-cte.spec.ts +514 -0
- package/tests/select/result-meta.spec.ts +270 -0
- package/tests/select/subquery.expected.ts +363 -0
- package/tests/select/subquery.spec.ts +537 -0
- package/tests/select/view.expected.ts +155 -0
- package/tests/select/view.spec.ts +235 -0
- package/tests/select/window.expected.ts +345 -0
- package/tests/select/window.spec.ts +618 -0
- package/tests/setup/MockExecutor.ts +18 -0
- package/tests/setup/TestDbContext.ts +59 -0
- package/tests/setup/models/Company.ts +13 -0
- package/tests/setup/models/Employee.ts +10 -0
- package/tests/setup/models/MonthlySales.ts +11 -0
- package/tests/setup/models/Post.ts +16 -0
- package/tests/setup/models/Sales.ts +10 -0
- package/tests/setup/models/User.ts +19 -0
- package/tests/setup/procedure/GetAllUsers.ts +9 -0
- package/tests/setup/procedure/GetUserById.ts +12 -0
- package/tests/setup/test-utils.ts +72 -0
- package/tests/setup/views/ActiveUsers.ts +8 -0
- package/tests/setup/views/UserSummary.ts +11 -0
- package/tests/types/nullable-queryable-record.spec.ts +145 -0
- package/tests/utils/result-parser-perf.spec.ts +210 -0
- package/tests/utils/result-parser.spec.ts +701 -0
- package/docs/expressions.md +0 -172
- package/docs/queries.md +0 -444
- package/docs/schema.md +0 -245
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { DbContextDef, DbContextInstance } from "./types/db-context-def";
|
|
2
2
|
import type { DbContextExecutor } from "./types/db";
|
|
3
3
|
/**
|
|
4
|
-
* DbContext
|
|
4
|
+
* DbContext instance factory
|
|
5
5
|
*
|
|
6
|
-
* DbContextDef(
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Takes DbContextDef (definition) and DbContextExecutor (executor) and creates
|
|
7
|
+
* a complete DbContext instance including queryable accessors, DDL methods,
|
|
8
|
+
* and connection/transaction management
|
|
9
9
|
*
|
|
10
|
-
* @param def - defineDbContext()
|
|
11
|
-
* @param executor -
|
|
12
|
-
* @param opt -
|
|
13
|
-
* @param opt.database -
|
|
14
|
-
* @param opt.schema -
|
|
15
|
-
* @returns
|
|
10
|
+
* @param def - Definition object created by defineDbContext()
|
|
11
|
+
* @param executor - Query executor (NodeDbContextExecutor, ServiceDbContextExecutor, etc.)
|
|
12
|
+
* @param opt - Database options
|
|
13
|
+
* @param opt.database - Database name
|
|
14
|
+
* @param opt.schema - Schema name (MSSQL: dbo, PostgreSQL: public)
|
|
15
|
+
* @returns A complete DbContext instance
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```typescript
|
|
@@ -37,7 +37,7 @@ function createDbContext(def, executor, opt) {
|
|
|
37
37
|
},
|
|
38
38
|
executeDefs(defs, resultMetas) {
|
|
39
39
|
if (status === "transact" && defs.some((d) => DDL_TYPES.includes(d.type))) {
|
|
40
|
-
throw new Error("
|
|
40
|
+
throw new Error("Cannot execute DDL while in TRANSACTION state.");
|
|
41
41
|
}
|
|
42
42
|
return executor.executeDefs(defs, resultMetas);
|
|
43
43
|
},
|
|
@@ -72,10 +72,10 @@ function createDbContext(def, executor, opt) {
|
|
|
72
72
|
getQueryDefObjectName: base.getQueryDefObjectName,
|
|
73
73
|
//#region ========== Connection management ==========
|
|
74
74
|
/**
|
|
75
|
-
*
|
|
75
|
+
* Execute callback within a transaction (automatic commit/rollback)
|
|
76
76
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
77
|
+
* Connect -> Start transaction -> Execute callback -> Commit -> Close connection
|
|
78
|
+
* If error occurs, automatically rollback and close connection
|
|
79
79
|
*/
|
|
80
80
|
async connect(fn, isolationLevel) {
|
|
81
81
|
validateRelationsImpl(def);
|
|
@@ -115,9 +115,9 @@ function createDbContext(def, executor, opt) {
|
|
|
115
115
|
return result;
|
|
116
116
|
},
|
|
117
117
|
/**
|
|
118
|
-
*
|
|
118
|
+
* Connect without transaction, execute callback, and auto-close
|
|
119
119
|
*
|
|
120
|
-
* DDL
|
|
120
|
+
* Used for DDL operations or read operations that don't require transactions
|
|
121
121
|
*/
|
|
122
122
|
async connectWithoutTransaction(callback) {
|
|
123
123
|
validateRelationsImpl(def);
|
|
@@ -137,13 +137,13 @@ function createDbContext(def, executor, opt) {
|
|
|
137
137
|
return result;
|
|
138
138
|
},
|
|
139
139
|
/**
|
|
140
|
-
*
|
|
140
|
+
* Start transaction in already connected state (automatic commit/rollback)
|
|
141
141
|
*
|
|
142
|
-
*
|
|
142
|
+
* Used when transaction is needed partially within connectWithoutTransaction
|
|
143
143
|
*/
|
|
144
144
|
async trans(fn, isolationLevel) {
|
|
145
145
|
if (status === "transact") {
|
|
146
|
-
throw new Error("
|
|
146
|
+
throw new Error("Already in TRANSACTION state.");
|
|
147
147
|
}
|
|
148
148
|
await executor.beginTransaction(isolationLevel);
|
|
149
149
|
status = "transact";
|
|
@@ -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,yBAAyB;AAGlC,YAAY,cAAc;AAC1B,YAAY,eAAe;AAC3B,YAAY,iBAAiB;AAC7B,YAAY,eAAe;AAC3B;AAAA,EACE,cAAc;AAAA,EACd,qBAAqB;AAAA,OAChB;AAiCA,SAAS,gBACd,KACA,UACA,KACyB;AAEzB,MAAI,eAAe;AACnB,MAAI,SAA0B;AAG9B,QAAM,OAAsB;AAAA,IAC1B,IAAI,SAAS;AACX,aAAO;AAAA,IACT;AAAA,IACA,IAAI,OAAO,GAAoB;AAC7B,eAAS;AAAA,IACX;AAAA,IACA,IAAI,WAAW;AACb,aAAO,IAAI;AAAA,IACb;AAAA,IACA,IAAI,SAAS;AACX,aAAO,IAAI;AAAA,IACb;AAAA,IACA,eAAe;AACb,aAAO,IAAI,EAAE,YAAY;AAAA,IAC3B;AAAA,IACA,oBAAoB;AAClB,qBAAe;AAAA,IACjB;AAAA,IACA,YACE,MACA,aACgB;AAChB,UACE,WAAW,cACX,KAAK,KAAK,CAAC,MAAO,UAAgC,SAAS,EAAE,IAAI,CAAC,GAClE;AACA,cAAM,IAAI,MAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/ddl/column-ddl.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { ColumnBuilder } from "../schema/factory/column-builder";
|
|
2
2
|
import type { QueryDefObjectName, AddColumnQueryDef, DropColumnQueryDef, ModifyColumnQueryDef, RenameColumnQueryDef } from "../types/query-def";
|
|
3
3
|
/**
|
|
4
|
-
* ADD COLUMN QueryDef
|
|
4
|
+
* Generate ADD COLUMN QueryDef
|
|
5
5
|
*/
|
|
6
6
|
export declare function getAddColumnQueryDef(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): AddColumnQueryDef;
|
|
7
7
|
/**
|
|
8
|
-
* DROP COLUMN QueryDef
|
|
8
|
+
* Generate DROP COLUMN QueryDef
|
|
9
9
|
*/
|
|
10
10
|
export declare function getDropColumnQueryDef(table: QueryDefObjectName, column: string): DropColumnQueryDef;
|
|
11
11
|
/**
|
|
12
|
-
* MODIFY COLUMN QueryDef
|
|
12
|
+
* Generate MODIFY COLUMN QueryDef
|
|
13
13
|
*/
|
|
14
14
|
export declare function getModifyColumnQueryDef(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): ModifyColumnQueryDef;
|
|
15
15
|
/**
|
|
16
|
-
* RENAME COLUMN QueryDef
|
|
16
|
+
* Generate RENAME COLUMN QueryDef
|
|
17
17
|
*/
|
|
18
18
|
export declare function getRenameColumnQueryDef(table: QueryDefObjectName, column: string, newName: string): RenameColumnQueryDef;
|
|
19
19
|
//# sourceMappingURL=column-ddl.d.ts.map
|
package/dist/ddl/initialize.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import type { DbContextBase, DbContextDef, DbContextDdlMethods } from "../types/db-context-def";
|
|
2
2
|
import type { Queryable } from "../exec/queryable";
|
|
3
3
|
/**
|
|
4
|
-
* Code First
|
|
4
|
+
* Code First Database Initialize
|
|
5
5
|
*
|
|
6
|
-
* DbContext
|
|
7
|
-
*
|
|
6
|
+
* Creates Tables/Views/Procedures defined in DbContext to Database and
|
|
7
|
+
* applies migrations
|
|
8
8
|
*
|
|
9
|
-
* @param db - DbContext
|
|
10
|
-
* @param def - DbContext
|
|
11
|
-
* @param options -
|
|
12
|
-
* @param options.dbs -
|
|
13
|
-
* @param options.force - true
|
|
14
|
-
* @throws {Error}
|
|
15
|
-
* @throws {Error}
|
|
9
|
+
* @param db - DbContext instance
|
|
10
|
+
* @param def - DbContext definition
|
|
11
|
+
* @param options - Initialize options
|
|
12
|
+
* @param options.dbs - List of target Databases for initialize (current database if not specified)
|
|
13
|
+
* @param options.force - If true, delete existing schema and recreate all
|
|
14
|
+
* @throws {Error} When there is no Database to initialize
|
|
15
|
+
* @throws {Error} When the specified Database does not exist
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* - **force=true**: clearSchema →
|
|
19
|
-
* - **force=false** (
|
|
20
|
-
* - _Migration
|
|
21
|
-
* - _Migration
|
|
17
|
+
* Behavior:
|
|
18
|
+
* - **force=true**: clearSchema → create all → register all migrations as "applied"
|
|
19
|
+
* - **force=false** (default):
|
|
20
|
+
* - No _Migration Table: create all + register all migrations
|
|
21
|
+
* - _Migration Table exists: execute only unapplied migrations
|
|
22
22
|
*/
|
|
23
23
|
export declare function initialize(db: DbContextBase & DbContextDdlMethods & {
|
|
24
24
|
_migration: () => Queryable<{
|
|
@@ -29,8 +29,8 @@ export declare function initialize(db: DbContextBase & DbContextDdlMethods & {
|
|
|
29
29
|
force?: boolean;
|
|
30
30
|
}): Promise<void>;
|
|
31
31
|
/**
|
|
32
|
-
* ForeignKeyTarget/RelationKeyTarget 관계의 유효성
|
|
33
|
-
* - targetTableFn()이 반환하는
|
|
32
|
+
* ForeignKeyTarget/RelationKeyTarget 관계의 유효성 Validation
|
|
33
|
+
* - targetTableFn()이 반환하는 Table에 relationName에 해당하는 FK/RelationKey가 있는지 확인
|
|
34
34
|
*/
|
|
35
35
|
export declare function validateRelations(def: DbContextDef<any, any, any>): void;
|
|
36
36
|
//# sourceMappingURL=initialize.d.ts.map
|
package/dist/ddl/initialize.js
CHANGED
|
@@ -13,7 +13,7 @@ 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] : []);
|
|
15
15
|
if (dbNames.length < 1) {
|
|
16
|
-
throw new Error("
|
|
16
|
+
throw new Error("No Database to initialize.");
|
|
17
17
|
}
|
|
18
18
|
const force = (options == null ? void 0 : options.force) ?? false;
|
|
19
19
|
for (const dbName of dbNames) {
|
|
@@ -21,7 +21,7 @@ async function initialize(db, def, options) {
|
|
|
21
21
|
const result = await db.executeDefs([schemaExistsDef]);
|
|
22
22
|
const schemaExists = result[0].length > 0;
|
|
23
23
|
if (!schemaExists) {
|
|
24
|
-
throw new Error(
|
|
24
|
+
throw new Error(`Database '${dbName}' does not exist.`);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
if (force) {
|
|
@@ -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,kBAAkB,yBAAyB;AACpD,SAAS,wBAAwB,+BAA+B;AAsBhE,eAAsB,WACpB,IACA,KACA,SACe;AACf,QAAM,WAAU,mCAAS,SAAQ,GAAG,aAAa,SAAY,CAAC,GAAG,QAAQ,IAAI,CAAC;AAC9E,MAAI,QAAQ,SAAS,GAAG;AACtB,UAAM,IAAI,MAAM
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,27 +3,27 @@ import type { IndexBuilder } from "../schema/factory/index-builder";
|
|
|
3
3
|
import type { QueryDef, QueryDefObjectName, AddPkQueryDef, DropPkQueryDef, DropFkQueryDef, DropIdxQueryDef } from "../types/query-def";
|
|
4
4
|
import type { DbContextBase } from "../types/db-context-def";
|
|
5
5
|
/**
|
|
6
|
-
* DROP PRIMARY KEY QueryDef
|
|
6
|
+
* Generate DROP PRIMARY KEY QueryDef
|
|
7
7
|
*/
|
|
8
8
|
export declare function getDropPkQueryDef(table: QueryDefObjectName): DropPkQueryDef;
|
|
9
9
|
/**
|
|
10
|
-
* ADD PRIMARY KEY QueryDef
|
|
10
|
+
* Generate ADD PRIMARY KEY QueryDef
|
|
11
11
|
*/
|
|
12
12
|
export declare function getAddPkQueryDef(table: QueryDefObjectName, columns: string[]): AddPkQueryDef;
|
|
13
13
|
/**
|
|
14
|
-
* ADD FOREIGN KEY QueryDef
|
|
14
|
+
* Generate ADD FOREIGN KEY QueryDef
|
|
15
15
|
*/
|
|
16
16
|
export declare function getAddFkQueryDef(db: DbContextBase, table: QueryDefObjectName, relationName: string, relationDef: ForeignKeyBuilder<any, any>): QueryDef;
|
|
17
17
|
/**
|
|
18
|
-
* ADD INDEX QueryDef
|
|
18
|
+
* ADD INDEX QueryDef Generate
|
|
19
19
|
*/
|
|
20
20
|
export declare function getAddIdxQueryDef(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): QueryDef;
|
|
21
21
|
/**
|
|
22
|
-
* DROP FOREIGN KEY QueryDef
|
|
22
|
+
* DROP FOREIGN KEY QueryDef Generate
|
|
23
23
|
*/
|
|
24
24
|
export declare function getDropFkQueryDef(table: QueryDefObjectName, relationName: string): DropFkQueryDef;
|
|
25
25
|
/**
|
|
26
|
-
* DROP INDEX QueryDef
|
|
26
|
+
* DROP INDEX QueryDef Generate
|
|
27
27
|
*/
|
|
28
28
|
export declare function getDropIdxQueryDef(table: QueryDefObjectName, columns: string[]): DropIdxQueryDef;
|
|
29
29
|
//# sourceMappingURL=relation-ddl.d.ts.map
|
package/dist/ddl/schema-ddl.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import type { QueryDefObjectName, ClearSchemaQueryDef, SchemaExistsQueryDef, TruncateQueryDef, SwitchFkQueryDef } from "../types/query-def";
|
|
2
2
|
/**
|
|
3
|
-
* CLEAR SCHEMA QueryDef
|
|
3
|
+
* Generate CLEAR SCHEMA QueryDef
|
|
4
4
|
*/
|
|
5
5
|
export declare function getClearSchemaQueryDef(params: {
|
|
6
6
|
database: string;
|
|
7
7
|
schema?: string;
|
|
8
8
|
}): ClearSchemaQueryDef;
|
|
9
9
|
/**
|
|
10
|
-
* SCHEMA EXISTS QueryDef
|
|
10
|
+
* Generate SCHEMA EXISTS QueryDef
|
|
11
11
|
*/
|
|
12
12
|
export declare function getSchemaExistsQueryDef(database: string, schema?: string): SchemaExistsQueryDef;
|
|
13
13
|
/**
|
|
14
|
-
* TRUNCATE TABLE QueryDef
|
|
14
|
+
* Generate TRUNCATE TABLE QueryDef
|
|
15
15
|
*/
|
|
16
16
|
export declare function getTruncateQueryDef(table: QueryDefObjectName): TruncateQueryDef;
|
|
17
17
|
/**
|
|
18
|
-
* SWITCH FK QueryDef
|
|
18
|
+
* Generate SWITCH FK QueryDef
|
|
19
19
|
*/
|
|
20
20
|
export declare function getSwitchFkQueryDef(table: QueryDefObjectName, switch_: "on" | "off"): SwitchFkQueryDef;
|
|
21
21
|
//# sourceMappingURL=schema-ddl.d.ts.map
|
package/dist/ddl/table-ddl.d.ts
CHANGED
|
@@ -4,63 +4,63 @@ import { ProcedureBuilder } from "../schema/procedure-builder";
|
|
|
4
4
|
import type { QueryDef, QueryDefObjectName, DropTableQueryDef, RenameTableQueryDef, DropViewQueryDef, DropProcQueryDef } from "../types/query-def";
|
|
5
5
|
import type { DbContextBase } from "../types/db-context-def";
|
|
6
6
|
/**
|
|
7
|
-
* Builder를 CREATE QueryDef로
|
|
7
|
+
* Builder를 CREATE QueryDef로 Transform
|
|
8
8
|
*
|
|
9
|
-
* @param db - DbContext
|
|
10
|
-
* @param builder - Table/View/Procedure
|
|
9
|
+
* @param db - DbContext instance
|
|
10
|
+
* @param builder - Table/View/Procedure builder
|
|
11
11
|
* @returns CREATE TABLE/VIEW/PROCEDURE QueryDef
|
|
12
|
-
* @throws {Error}
|
|
12
|
+
* @throws {Error} When unknown builder type
|
|
13
13
|
*/
|
|
14
14
|
export declare function getCreateObjectQueryDef(db: DbContextBase, builder: TableBuilder<any, any> | ViewBuilder<any, any, any> | ProcedureBuilder<any, any>): QueryDef;
|
|
15
15
|
/**
|
|
16
|
-
* CREATE TABLE QueryDef
|
|
16
|
+
* CREATE TABLE QueryDef Generate
|
|
17
17
|
*
|
|
18
|
-
* @param db - DbContext
|
|
19
|
-
* @param table -
|
|
18
|
+
* @param db - DbContext instance
|
|
19
|
+
* @param table - Table builder
|
|
20
20
|
* @returns CREATE TABLE QueryDef
|
|
21
|
-
* @throws {Error}
|
|
21
|
+
* @throws {Error} When table has no columns
|
|
22
22
|
*/
|
|
23
23
|
export declare function getCreateTableQueryDef(db: DbContextBase, table: TableBuilder<any, any>): QueryDef;
|
|
24
24
|
/**
|
|
25
|
-
* CREATE VIEW QueryDef
|
|
25
|
+
* CREATE VIEW QueryDef Generate
|
|
26
26
|
*
|
|
27
|
-
* @param db - DbContext
|
|
28
|
-
* @param view -
|
|
27
|
+
* @param db - DbContext instance
|
|
28
|
+
* @param view - View builder
|
|
29
29
|
* @returns CREATE VIEW QueryDef
|
|
30
|
-
* @throws {Error}
|
|
30
|
+
* @throws {Error} When view has no viewFn
|
|
31
31
|
*/
|
|
32
32
|
export declare function getCreateViewQueryDef(db: DbContextBase, view: ViewBuilder<any, any, any>): QueryDef;
|
|
33
33
|
/**
|
|
34
|
-
* CREATE PROCEDURE QueryDef
|
|
34
|
+
* CREATE PROCEDURE QueryDef Generate
|
|
35
35
|
*
|
|
36
|
-
* @param db - DbContext
|
|
37
|
-
* @param procedure -
|
|
36
|
+
* @param db - DbContext instance
|
|
37
|
+
* @param procedure - Procedure builder
|
|
38
38
|
* @returns CREATE PROCEDURE QueryDef
|
|
39
|
-
* @throws {Error}
|
|
39
|
+
* @throws {Error} When procedure has no body
|
|
40
40
|
*/
|
|
41
41
|
export declare function getCreateProcQueryDef(db: DbContextBase, procedure: ProcedureBuilder<any, any>): QueryDef;
|
|
42
42
|
/**
|
|
43
|
-
* DROP TABLE QueryDef
|
|
43
|
+
* DROP TABLE QueryDef Generate
|
|
44
44
|
*/
|
|
45
45
|
export declare function getDropTableQueryDef(table: QueryDefObjectName): DropTableQueryDef;
|
|
46
46
|
/**
|
|
47
|
-
* RENAME TABLE QueryDef
|
|
47
|
+
* RENAME TABLE QueryDef Generate
|
|
48
48
|
*/
|
|
49
49
|
export declare function getRenameTableQueryDef(table: QueryDefObjectName, newName: string): RenameTableQueryDef;
|
|
50
50
|
/**
|
|
51
|
-
* DROP VIEW QueryDef
|
|
51
|
+
* DROP VIEW QueryDef Generate
|
|
52
52
|
*/
|
|
53
53
|
export declare function getDropViewQueryDef(view: QueryDefObjectName): DropViewQueryDef;
|
|
54
54
|
/**
|
|
55
|
-
* DROP PROCEDURE QueryDef
|
|
55
|
+
* DROP PROCEDURE QueryDef Generate
|
|
56
56
|
*/
|
|
57
57
|
export declare function getDropProcQueryDef(procedure: QueryDefObjectName): DropProcQueryDef;
|
|
58
58
|
/**
|
|
59
|
-
* TableBuilder/ViewBuilder
|
|
59
|
+
* Transform TableBuilder/ViewBuilder to QueryDefObjectName
|
|
60
60
|
*
|
|
61
|
-
* @param db - DbContext
|
|
62
|
-
* @param tableOrView -
|
|
63
|
-
* @returns
|
|
61
|
+
* @param db - DbContext instance
|
|
62
|
+
* @param tableOrView - Table or View builder
|
|
63
|
+
* @returns Object name information for use in QueryDef
|
|
64
64
|
*/
|
|
65
65
|
export declare function getQueryDefObjectName(db: DbContextBase, tableOrView: TableBuilder<any, any> | ViewBuilder<any, any, any>): QueryDefObjectName;
|
|
66
66
|
//# sourceMappingURL=table-ddl.d.ts.map
|
package/dist/ddl/table-ddl.js
CHANGED
|
@@ -10,12 +10,12 @@ function getCreateObjectQueryDef(db, builder) {
|
|
|
10
10
|
} else if (builder instanceof ProcedureBuilder) {
|
|
11
11
|
return getCreateProcQueryDef(db, builder);
|
|
12
12
|
}
|
|
13
|
-
throw new Error(
|
|
13
|
+
throw new Error(`Unknown builder type: ${typeof builder}`);
|
|
14
14
|
}
|
|
15
15
|
function getCreateTableQueryDef(db, table) {
|
|
16
16
|
const columns = table.meta.columns;
|
|
17
17
|
if (columns == null) {
|
|
18
|
-
throw new Error(
|
|
18
|
+
throw new Error(`Table '${table.meta.name}' has no columns.`);
|
|
19
19
|
}
|
|
20
20
|
return {
|
|
21
21
|
type: "createTable",
|
|
@@ -32,7 +32,7 @@ function getCreateTableQueryDef(db, table) {
|
|
|
32
32
|
}
|
|
33
33
|
function getCreateViewQueryDef(db, view) {
|
|
34
34
|
if (view.meta.viewFn == null) {
|
|
35
|
-
throw new Error(
|
|
35
|
+
throw new Error(`View '${view.meta.name}' has no viewFn.`);
|
|
36
36
|
}
|
|
37
37
|
const qr = view.meta.viewFn(db);
|
|
38
38
|
const selectDef = qr.getSelectQueryDef();
|
|
@@ -48,7 +48,7 @@ function getCreateViewQueryDef(db, view) {
|
|
|
48
48
|
}
|
|
49
49
|
function getCreateProcQueryDef(db, procedure) {
|
|
50
50
|
if (procedure.meta.query == null) {
|
|
51
|
-
throw new Error(
|
|
51
|
+
throw new Error(`Procedure '${procedure.meta.name}' has no body.`);
|
|
52
52
|
}
|
|
53
53
|
const params = procedure.meta.params;
|
|
54
54
|
const returns = procedure.meta.returns;
|
|
@@ -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,yBAAyB;AAU3B,SAAS,wBACd,IACA,SACU;AACV,MAAI,mBAAmB,cAAc;AACnC,WAAO,uBAAuB,IAAI,OAAO;AAAA,EAC3C,WAAW,mBAAmB,aAAa;AACzC,WAAO,sBAAsB,IAAI,OAAO;AAAA,EAC1C,WAAW,mBAAmB,kBAAkB;AAC9C,WAAO,sBAAsB,IAAI,OAAO;AAAA,EAC1C;AAEA,QAAM,IAAI,MAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Transaction-related error codes
|
|
3
3
|
*
|
|
4
|
-
* DBMS
|
|
4
|
+
* Abstracts DBMS-specific native error codes for DBMS-independent error handling
|
|
5
5
|
*/
|
|
6
6
|
export declare enum DbErrorCode {
|
|
7
|
-
/**
|
|
7
|
+
/** No active transaction (no transaction during ROLLBACK) */
|
|
8
8
|
NO_ACTIVE_TRANSACTION = "NO_ACTIVE_TRANSACTION",
|
|
9
|
-
/**
|
|
9
|
+
/** Transaction already started */
|
|
10
10
|
TRANSACTION_ALREADY_STARTED = "TRANSACTION_ALREADY_STARTED",
|
|
11
|
-
/**
|
|
11
|
+
/** Deadlock occurred */
|
|
12
12
|
DEADLOCK = "DEADLOCK",
|
|
13
|
-
/**
|
|
13
|
+
/** Lock timeout */
|
|
14
14
|
LOCK_TIMEOUT = "LOCK_TIMEOUT"
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Database transaction error
|
|
18
18
|
*
|
|
19
|
-
* DBMS
|
|
20
|
-
* DBMS
|
|
19
|
+
* Wraps DBMS-specific native errors with standardized error codes for
|
|
20
|
+
* DBMS-independent error handling
|
|
21
21
|
*
|
|
22
22
|
* @example
|
|
23
23
|
* ```typescript
|
|
@@ -26,7 +26,7 @@ export declare enum DbErrorCode {
|
|
|
26
26
|
* } catch (err) {
|
|
27
27
|
* if (err instanceof DbTransactionError) {
|
|
28
28
|
* if (err.code === DbErrorCode.NO_ACTIVE_TRANSACTION) {
|
|
29
|
-
* //
|
|
29
|
+
* // Ignore if already rolled back
|
|
30
30
|
* return;
|
|
31
31
|
* }
|
|
32
32
|
* }
|
|
@@ -35,17 +35,17 @@ export declare enum DbErrorCode {
|
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
37
|
export declare class DbTransactionError extends Error {
|
|
38
|
-
/**
|
|
38
|
+
/** Standardized error code */
|
|
39
39
|
readonly code: DbErrorCode;
|
|
40
|
-
/**
|
|
40
|
+
/** Original DBMS error (for debugging) */
|
|
41
41
|
readonly originalError?: unknown | undefined;
|
|
42
42
|
readonly name = "DbTransactionError";
|
|
43
43
|
constructor(
|
|
44
|
-
/**
|
|
44
|
+
/** Standardized error code */
|
|
45
45
|
code: DbErrorCode,
|
|
46
|
-
/**
|
|
46
|
+
/** Error message */
|
|
47
47
|
message: string,
|
|
48
|
-
/**
|
|
48
|
+
/** Original DBMS error (for debugging) */
|
|
49
49
|
originalError?: unknown | undefined);
|
|
50
50
|
}
|
|
51
51
|
//# sourceMappingURL=db-transaction-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-transaction-error.d.ts","sourceRoot":"","sources":["..\\..\\src\\errors\\db-transaction-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,WAAW;IACrB,
|
|
1
|
+
{"version":3,"file":"db-transaction-error.d.ts","sourceRoot":"","sources":["..\\..\\src\\errors\\db-transaction-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,WAAW;IACrB,6DAA6D;IAC7D,qBAAqB,0BAA0B;IAE/C,kCAAkC;IAClC,2BAA2B,gCAAgC;IAE3D,wBAAwB;IACxB,QAAQ,aAAa;IAErB,mBAAmB;IACnB,YAAY,iBAAiB;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAIzC,8BAA8B;aACd,IAAI,EAAE,WAAW;IAGjC,0CAA0C;aAC1B,aAAa,CAAC,EAAE,OAAO;IARzC,SAAkB,IAAI,wBAAwB;;IAG5C,8BAA8B;IACd,IAAI,EAAE,WAAW;IACjC,oBAAoB;IACpB,OAAO,EAAE,MAAM;IACf,0CAA0C;IAC1B,aAAa,CAAC,EAAE,OAAO,YAAA;CAI1C"}
|
|
@@ -2,29 +2,29 @@ import type { ColumnBuilderRecord, InferColumnExprs } from "../schema/factory/co
|
|
|
2
2
|
import type { ProcedureBuilder } from "../schema/procedure-builder";
|
|
3
3
|
import type { DbContextBase } from "../types/db-context-def";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Stored procedure execution wrapper class
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Class for executing procedures defined by ProcedureBuilder.
|
|
8
|
+
* Created and used through the executable() factory function in DbContext.
|
|
9
9
|
*
|
|
10
|
-
* @template TParams -
|
|
11
|
-
* @template TReturns -
|
|
10
|
+
* @template TParams - Procedure parameter type
|
|
11
|
+
* @template TReturns - Procedure return type
|
|
12
12
|
*
|
|
13
13
|
* @example
|
|
14
14
|
* ```typescript
|
|
15
|
-
* //
|
|
15
|
+
* // Execute procedure
|
|
16
16
|
* const result = await db.getUserById().execute({ userId: 1n });
|
|
17
17
|
* ```
|
|
18
18
|
*
|
|
19
|
-
* @see {@link executable}
|
|
20
|
-
* @see {@link ProcedureBuilder}
|
|
19
|
+
* @see {@link executable} Factory function
|
|
20
|
+
* @see {@link ProcedureBuilder} Procedure definition
|
|
21
21
|
*/
|
|
22
22
|
export declare class Executable<TParams extends ColumnBuilderRecord, TReturns extends ColumnBuilderRecord> {
|
|
23
23
|
private readonly _db;
|
|
24
24
|
private readonly _builder;
|
|
25
25
|
constructor(_db: DbContextBase, _builder: ProcedureBuilder<TParams, TReturns>);
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Generate procedure execution QueryDef
|
|
28
28
|
*/
|
|
29
29
|
getExecProcQueryDef(params?: InferColumnExprs<TParams>): {
|
|
30
30
|
type: "execProc";
|
|
@@ -38,42 +38,42 @@ export declare class Executable<TParams extends ColumnBuilderRecord, TReturns ex
|
|
|
38
38
|
} | undefined;
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Execute procedure
|
|
42
42
|
*/
|
|
43
43
|
execute(params: InferColumnExprs<TParams>): Promise<InferColumnExprs<TReturns>[][]>;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* Factory function to create Executable
|
|
47
47
|
*
|
|
48
|
-
*
|
|
49
|
-
* ProcedureBuilder
|
|
48
|
+
* Used when registering procedures in DbContext.
|
|
49
|
+
* Wraps procedures defined by ProcedureBuilder and returns them as Executable.
|
|
50
50
|
*
|
|
51
|
-
* @template TParams -
|
|
52
|
-
* @template TReturns -
|
|
53
|
-
* @param db - DbContext
|
|
54
|
-
* @param builder - ProcedureBuilder
|
|
55
|
-
* @returns Executable
|
|
51
|
+
* @template TParams - Procedure parameter type
|
|
52
|
+
* @template TReturns - Procedure return type
|
|
53
|
+
* @param db - DbContext instance
|
|
54
|
+
* @param builder - ProcedureBuilder instance
|
|
55
|
+
* @returns Executable factory function
|
|
56
56
|
*
|
|
57
57
|
* @example
|
|
58
58
|
* ```typescript
|
|
59
|
-
* //
|
|
59
|
+
* // Define procedure
|
|
60
60
|
* const GetUserById = Procedure("GetUserById")
|
|
61
61
|
* .database("mydb")
|
|
62
62
|
* .params((c) => ({ userId: c.bigint() }))
|
|
63
63
|
* .returns((c) => ({ id: c.bigint(), name: c.varchar(100) }))
|
|
64
64
|
* .body("SELECT id, name FROM User WHERE id = userId");
|
|
65
65
|
*
|
|
66
|
-
* // DbContext
|
|
66
|
+
* // Register in DbContext
|
|
67
67
|
* class MyDb extends DbContext {
|
|
68
68
|
* getUserById = executable(this, GetUserById);
|
|
69
69
|
* }
|
|
70
70
|
*
|
|
71
|
-
* //
|
|
71
|
+
* // Use
|
|
72
72
|
* const result = await db.getUserById().execute({ userId: 1n });
|
|
73
73
|
* ```
|
|
74
74
|
*
|
|
75
|
-
* @see {@link Executable}
|
|
76
|
-
* @see {@link ProcedureBuilder}
|
|
75
|
+
* @see {@link Executable} Execution class
|
|
76
|
+
* @see {@link ProcedureBuilder} Procedure definition
|
|
77
77
|
*/
|
|
78
78
|
export declare function executable<TParams extends ColumnBuilderRecord, TReturns extends ColumnBuilderRecord>(db: DbContextBase, builder: ProcedureBuilder<TParams, TReturns>): () => Executable<TParams, TReturns>;
|
|
79
79
|
//# sourceMappingURL=executable.d.ts.map
|