@simplysm/orm-common 13.0.28 → 13.0.30
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 +210 -3
- package/dist/create-db-context.d.ts.map +1 -1
- package/dist/create-db-context.js +7 -2
- package/dist/create-db-context.js.map +1 -1
- package/dist/ddl/column-ddl.d.ts.map +1 -1
- package/dist/ddl/column-ddl.js.map +1 -1
- package/dist/ddl/initialize.d.ts.map +1 -1
- package/dist/ddl/initialize.js.map +1 -1
- package/dist/ddl/relation-ddl.d.ts.map +1 -1
- package/dist/ddl/relation-ddl.js.map +1 -1
- package/dist/ddl/schema-ddl.d.ts.map +1 -1
- package/dist/ddl/schema-ddl.js.map +1 -1
- package/dist/ddl/table-ddl.d.ts.map +1 -1
- package/dist/ddl/table-ddl.js.map +1 -1
- package/dist/define-db-context.d.ts.map +1 -1
- package/dist/define-db-context.js.map +1 -1
- package/dist/exec/executable.d.ts.map +1 -1
- package/dist/exec/executable.js.map +1 -1
- package/dist/exec/queryable.d.ts.map +1 -1
- package/dist/exec/queryable.js +19 -6
- package/dist/exec/queryable.js.map +1 -1
- package/dist/exec/search-parser.js.map +1 -1
- package/dist/expr/expr.d.ts.map +1 -1
- package/dist/expr/expr.js.map +1 -1
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +3 -1
- package/dist/query-builder/base/query-builder-base.js.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +3 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +9 -3
- package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +3 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +12 -4
- package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +3 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +21 -7
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
- package/dist/schema/factory/column-builder.d.ts.map +1 -1
- package/dist/schema/factory/column-builder.js.map +1 -1
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js.map +1 -1
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js.map +1 -1
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +3 -1
- package/dist/schema/table-builder.js.map +1 -1
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +3 -1
- package/dist/schema/view-builder.js.map +1 -1
- package/dist/types/db-context-def.d.ts.map +1 -1
- package/dist/types/db.d.ts.map +1 -1
- package/dist/utils/result-parser.js +3 -1
- package/dist/utils/result-parser.js.map +1 -1
- package/docs/queries.md +89 -5
- package/docs/schema.md +12 -20
- package/package.json +2 -2
- package/src/create-db-context.ts +53 -15
- package/src/ddl/column-ddl.ts +4 -1
- package/src/ddl/initialize.ts +13 -3
- package/src/ddl/relation-ddl.ts +4 -1
- package/src/ddl/schema-ddl.ts +8 -2
- package/src/ddl/table-ddl.ts +12 -3
- package/src/define-db-context.ts +3 -1
- package/src/exec/executable.ts +4 -1
- package/src/exec/queryable.ts +91 -26
- package/src/exec/search-parser.ts +5 -1
- package/src/expr/expr.ts +56 -15
- package/src/query-builder/base/query-builder-base.ts +3 -1
- package/src/query-builder/mssql/mssql-expr-renderer.ts +6 -2
- package/src/query-builder/mssql/mssql-query-builder.ts +15 -5
- package/src/query-builder/mysql/mysql-expr-renderer.ts +6 -2
- package/src/query-builder/mysql/mysql-query-builder.ts +19 -6
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +6 -2
- package/src/query-builder/postgresql/postgresql-query-builder.ts +35 -13
- package/src/schema/factory/column-builder.ts +16 -5
- package/src/schema/factory/relation-builder.ts +14 -4
- package/src/schema/procedure-builder.ts +4 -1
- package/src/schema/table-builder.ts +14 -3
- package/src/schema/view-builder.ts +5 -1
- package/src/types/db-context-def.ts +37 -8
- package/src/types/db.ts +9 -2
- package/src/utils/result-parser.ts +10 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/schema/table-builder.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA,EAEE;AAAA,OAIK;AACP,SAAS,0BAA6C;AACtD,
|
|
4
|
+
"mappings": "AAAA;AAAA,EAEE;AAAA,OAIK;AACP,SAAS,0BAA6C;AACtD;AAAA,EACE;AAAA,OAGK;AAsCA,MAAM,aAGX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BA,YACW,MAWT;AAXS;AAAA,EAWR;AAAA;AAAA,EApCM;AAAA;AAAA,EAEA;AAAA;AAAA,EAGA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiCT,YAAY,MAAc;AACxB,WAAO,IAAI,aAAa,EAAE,GAAG,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,SAAS,IAAY;AACnB,WAAO,IAAI,aAAa,EAAE,GAAG,KAAK,MAAM,UAAU,GAAG,CAAC;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,OAAO,QAAgB;AACrB,WAAO,IAAI,aAAa,EAAE,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,QACE,IACA;AACA,WAAO,IAAI,aAAyC;AAAA,MAClD,GAAG,KAAK;AAAA,MACR,SAAS,GAAG,oBAAoB,CAAC;AAAA,IACnC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBA,cAAc,SAAsC;AAClD,WAAO,IAAI,aAAa;AAAA,MACtB,GAAG,KAAK;AAAA,MACR,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,QACE,IAGA;AACA,WAAO,IAAI,aAAa;AAAA,MACtB,GAAG,KAAK;AAAA,MACR,SAAS,GAAG,mBAA4C,CAAC;AAAA,IAC3D,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwCA,UACE,IAC2B;AAC3B,WAAO,IAAI,aAAa;AAAA,MACtB,GAAG,KAAK;AAAA,MACR,WAAW,GAAG,sBAAqD,MAAM,IAAI,CAAC;AAAA,IAChF,CAAC;AAAA,EACH;AACF;AA4CO,SAAS,MAAM,MAAc;AAClC,SAAO,IAAI,aAAa,EAAE,KAAK,CAAC;AAClC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-builder.d.ts","sourceRoot":"","sources":["../../src/schema/view-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"view-builder.d.ts","sourceRoot":"","sources":["../../src/schema/view-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAMpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,WAAW,CACtB,UAAU,SAAS,aAAa,EAChC,KAAK,SAAS,UAAU,EACxB,UAAU,SAAS,qBAAqB;IAiBtC,QAAQ,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB;IAtBH,qBAAqB;IACrB,QAAQ,CAAC,UAAU,EAAG,UAAU,CAAC;IACjC,eAAe;IACf,QAAQ,CAAC,MAAM,EAAG,KAAK,CAAC;IAExB;;;;;;;;OAQG;gBAEQ,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB;IAGH;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIrE;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIhE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;IAIlE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,SAAS,SAAS,UAAU,EAAE,GAAG,SAAS,aAAa,EAC3D,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAC7C,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC;IAI1C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,CAAC,SAAS,qBAAqB,EACvC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,GACjF,WAAW,CAAC,UAAU,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;CAQtE;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,iEAEhC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/schema/view-builder.ts"],
|
|
4
|
-
"mappings": "AAGA,
|
|
4
|
+
"mappings": "AAGA;AAAA,EACE;AAAA,OAGK;AA0CA,MAAM,YAIX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,YACW,MAQT;AARS;AAAA,EAQR;AAAA;AAAA,EAtBM;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BT,YAAY,MAA0D;AACpE,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,SAAS,IAAwD;AAC/D,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,UAAU,GAAG,CAAC;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,QAA4D;AACjE,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BA,MACE,QACyC;AACzC,WAAO,IAAI,YAAY,EAAE,GAAG,KAAK,MAAM,OAAO,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBA,UACE,IACoE;AAGpE,WAAO,IAAI,YAAY;AAAA,MACrB,GAAG,KAAK;AAAA,MACR,WAAW,GAAG,sBAAkD,MAAM,IAAI,CAAC;AAAA,IAC7E,CAAC;AAAA,EACH;AACF;AAwCO,SAAS,KAAK,MAAc;AACjC,SAAO,IAAI,YAAY,EAAE,KAAK,CAAC;AACjC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-context-def.d.ts","sourceRoot":"","sources":["../../src/types/db-context-def.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,IAAI,MAAM,CAAC;IACvB,iBAAiB,IAAI,IAAI,CAAC;IAC1B,WAAW,CAAC,CAAC,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"db-context-def.d.ts","sourceRoot":"","sources":["../../src/types/db-context-def.ts"],"names":[],"mappings":"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"}
|
package/dist/types/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/types/db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAM3E;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,EAAqC,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/types/db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAM3E;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,EAAqC,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,CAAC;AAMnB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;CAC5D,CAAC;AAMF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,GAAG,UAAU,EACxB,IAAI,EAAE,QAAQ,EAAE,EAChB,WAAW,CAAC,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,GACvC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,GAAG,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE"}
|
|
@@ -220,7 +220,9 @@ function mergeJoinData(existingGroup, newRecord, localKey, isSingle) {
|
|
|
220
220
|
existingJoinData.push(newJoinData);
|
|
221
221
|
}
|
|
222
222
|
} else {
|
|
223
|
-
const isDuplicate = existingJoinData.some(
|
|
223
|
+
const isDuplicate = existingJoinData.some(
|
|
224
|
+
(item) => objEqual(item, newJoinData)
|
|
225
|
+
);
|
|
224
226
|
if (!isDuplicate) {
|
|
225
227
|
existingJoinData.push(newJoinData);
|
|
226
228
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/result-parser.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/docs/queries.md
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
## Connection and Transactions
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { defineDbContext, createDbContext } from "@simplysm/orm-common";
|
|
7
|
+
|
|
8
|
+
const MyDbDef = defineDbContext({ tables: { user: User } });
|
|
9
|
+
const db = createDbContext(MyDbDef, executor, { database: "mydb" });
|
|
8
10
|
|
|
9
11
|
// Execute within transaction (auto commit/rollback)
|
|
10
12
|
const users = await db.connect(async () => {
|
|
@@ -13,17 +15,33 @@ const users = await db.connect(async () => {
|
|
|
13
15
|
return result;
|
|
14
16
|
});
|
|
15
17
|
|
|
16
|
-
// Connect without transaction (for DDL operations)
|
|
18
|
+
// Connect without transaction (for DDL operations or read-only queries)
|
|
17
19
|
await db.connectWithoutTransaction(async () => {
|
|
18
20
|
await db.initialize(); // Code First initialization
|
|
19
21
|
});
|
|
20
22
|
|
|
23
|
+
// Partial transaction within connectWithoutTransaction
|
|
24
|
+
await db.connectWithoutTransaction(async () => {
|
|
25
|
+
const report = await db.report().result(); // read without transaction
|
|
26
|
+
await db.trans(async () => {
|
|
27
|
+
await db.log().insert([{ message: "accessed" }]); // write with transaction
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
21
31
|
// Specify isolation level
|
|
22
32
|
await db.connect(async () => {
|
|
23
33
|
// ...
|
|
24
34
|
}, "SERIALIZABLE");
|
|
25
35
|
```
|
|
26
36
|
|
|
37
|
+
### Connection Methods
|
|
38
|
+
|
|
39
|
+
| Method | Description |
|
|
40
|
+
|--------|-------------|
|
|
41
|
+
| `db.connect(fn, isolationLevel?)` | Open connection, begin transaction, run fn, commit. Auto-rollback on error. |
|
|
42
|
+
| `db.connectWithoutTransaction(fn)` | Open connection without transaction, run fn, close. |
|
|
43
|
+
| `db.trans(fn, isolationLevel?)` | Begin transaction on an already-connected db. Must be called inside `connectWithoutTransaction`. |
|
|
44
|
+
|
|
27
45
|
## SELECT Queries
|
|
28
46
|
|
|
29
47
|
```typescript
|
|
@@ -41,6 +59,12 @@ const names = await db.user()
|
|
|
41
59
|
}))
|
|
42
60
|
.result();
|
|
43
61
|
|
|
62
|
+
// Distinct rows
|
|
63
|
+
const uniqueNames = await db.user()
|
|
64
|
+
.select((u) => ({ name: u.name }))
|
|
65
|
+
.distinct()
|
|
66
|
+
.result();
|
|
67
|
+
|
|
44
68
|
// Single result (error if 2 or more)
|
|
45
69
|
const user = await db.user()
|
|
46
70
|
.where((u) => [expr.eq(u.id, 1)])
|
|
@@ -62,6 +86,22 @@ const hasAdmin = await db.user()
|
|
|
62
86
|
.exists();
|
|
63
87
|
```
|
|
64
88
|
|
|
89
|
+
### Queryable Method Reference
|
|
90
|
+
|
|
91
|
+
| Method | Description |
|
|
92
|
+
|--------|-------------|
|
|
93
|
+
| `.select(fn)` | Map columns to a new shape |
|
|
94
|
+
| `.distinct()` | Remove duplicate rows |
|
|
95
|
+
| `.where(fn)` | Add WHERE condition (multiple calls = AND) |
|
|
96
|
+
| `.orderBy(fn, dir?)` | Add ORDER BY (`"ASC"` or `"DESC"`, default `"ASC"`) |
|
|
97
|
+
| `.top(n)` | Return at most n rows |
|
|
98
|
+
| `.limit(skip, take)` | Paginate (requires `orderBy` first) |
|
|
99
|
+
| `.result()` | Execute and return all rows |
|
|
100
|
+
| `.single()` | Execute, return first row, error if > 1 row |
|
|
101
|
+
| `.first()` | Execute, return first row only |
|
|
102
|
+
| `.count(fn?)` | Execute COUNT query |
|
|
103
|
+
| `.exists()` | Return true if any row matches |
|
|
104
|
+
|
|
65
105
|
## JOIN Queries
|
|
66
106
|
|
|
67
107
|
```typescript
|
|
@@ -277,7 +317,7 @@ await db.connect(async () => {
|
|
|
277
317
|
|
|
278
318
|
## DDL Operations
|
|
279
319
|
|
|
280
|
-
`
|
|
320
|
+
`DbContextInstance` supports Code First DDL operations.
|
|
281
321
|
|
|
282
322
|
```typescript
|
|
283
323
|
await db.connectWithoutTransaction(async () => {
|
|
@@ -296,9 +336,43 @@ await db.connectWithoutTransaction(async () => {
|
|
|
296
336
|
|
|
297
337
|
await db.renameTable({ database: "mydb", name: "User" }, "Member");
|
|
298
338
|
await db.truncate({ database: "mydb", name: "User" });
|
|
339
|
+
|
|
340
|
+
// Table existence / schema check
|
|
341
|
+
const exists = await db.schemaExists("mydb");
|
|
342
|
+
|
|
343
|
+
// FK management
|
|
344
|
+
await db.switchFk({ database: "mydb", name: "User" }, "off");
|
|
345
|
+
await db.switchFk({ database: "mydb", name: "User" }, "on");
|
|
299
346
|
});
|
|
300
347
|
```
|
|
301
348
|
|
|
349
|
+
### DDL Method Reference
|
|
350
|
+
|
|
351
|
+
| Method | Description |
|
|
352
|
+
|--------|-------------|
|
|
353
|
+
| `db.initialize(opts?)` | Create all tables, views, procedures, FKs, indexes per schema. `opts.force` drops before recreating. |
|
|
354
|
+
| `db.createTable(table)` | CREATE TABLE |
|
|
355
|
+
| `db.dropTable(name)` | DROP TABLE |
|
|
356
|
+
| `db.renameTable(name, newName)` | Rename table |
|
|
357
|
+
| `db.createView(view)` | CREATE VIEW |
|
|
358
|
+
| `db.dropView(name)` | DROP VIEW |
|
|
359
|
+
| `db.createProc(proc)` | CREATE PROCEDURE |
|
|
360
|
+
| `db.dropProc(name)` | DROP PROCEDURE |
|
|
361
|
+
| `db.addColumn(table, col, builder)` | ALTER TABLE ADD COLUMN |
|
|
362
|
+
| `db.dropColumn(table, col)` | ALTER TABLE DROP COLUMN |
|
|
363
|
+
| `db.modifyColumn(table, col, builder)` | ALTER TABLE MODIFY COLUMN |
|
|
364
|
+
| `db.renameColumn(table, col, newName)` | Rename column |
|
|
365
|
+
| `db.addPk(table, cols)` | Add primary key constraint |
|
|
366
|
+
| `db.dropPk(table)` | Drop primary key constraint |
|
|
367
|
+
| `db.addFk(table, relName, fkBuilder)` | Add foreign key constraint |
|
|
368
|
+
| `db.dropFk(table, relName)` | Drop foreign key constraint |
|
|
369
|
+
| `db.addIdx(table, idxBuilder)` | Add index |
|
|
370
|
+
| `db.dropIdx(table, cols)` | Drop index |
|
|
371
|
+
| `db.clearSchema(params)` | Drop all objects in schema |
|
|
372
|
+
| `db.schemaExists(database, schema?)` | Check if schema exists |
|
|
373
|
+
| `db.truncate(table)` | TRUNCATE TABLE |
|
|
374
|
+
| `db.switchFk(table, "on"\|"off")` | Enable/disable FK constraints |
|
|
375
|
+
|
|
302
376
|
## Query Builder (SQL Generation)
|
|
303
377
|
|
|
304
378
|
Converts `QueryDef` JSON AST to DBMS-specific SQL strings.
|
|
@@ -318,6 +392,16 @@ const queryDef = db.user()
|
|
|
318
392
|
const { sql } = mysqlBuilder.build(queryDef);
|
|
319
393
|
```
|
|
320
394
|
|
|
395
|
+
`QueryBuilderBase.build(def)` accepts any `QueryDef` and returns `QueryBuildResult`:
|
|
396
|
+
|
|
397
|
+
```typescript
|
|
398
|
+
interface QueryBuildResult {
|
|
399
|
+
sql: string;
|
|
400
|
+
resultSetIndex?: number; // which result set index to use (for multi-result queries)
|
|
401
|
+
resultSetStride?: number; // stride for multi-result queries (MySQL INSERT with OUTPUT)
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
321
405
|
## Error Handling
|
|
322
406
|
|
|
323
407
|
```typescript
|
|
@@ -345,7 +429,7 @@ try {
|
|
|
345
429
|
|
|
346
430
|
| Code | Description |
|
|
347
431
|
|------|------|
|
|
348
|
-
| `NO_ACTIVE_TRANSACTION` | No active transaction |
|
|
432
|
+
| `NO_ACTIVE_TRANSACTION` | No active transaction (e.g. rollback with no transaction open) |
|
|
349
433
|
| `TRANSACTION_ALREADY_STARTED` | Transaction already started |
|
|
350
434
|
| `DEADLOCK` | Deadlock occurred |
|
|
351
435
|
| `LOCK_TIMEOUT` | Lock timeout |
|
package/docs/schema.md
CHANGED
|
@@ -139,32 +139,24 @@ await db.connect(async () => {
|
|
|
139
139
|
});
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
###
|
|
142
|
+
### Low-level Utilities (Advanced)
|
|
143
|
+
|
|
144
|
+
`queryable()` and `executable()` are the underlying factory functions used internally by `createDbContext()`. They can be used directly when implementing a custom `DbContextBase`.
|
|
143
145
|
|
|
144
146
|
```typescript
|
|
145
|
-
import {
|
|
147
|
+
import { queryable, executable, type DbContextBase } from "@simplysm/orm-common";
|
|
146
148
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
readonly getUserById = executable(this, GetUserById);
|
|
149
|
+
// queryable(db, tableOrView, as?) - creates a () => Queryable factory
|
|
150
|
+
const getUserQueryable = queryable(db, User);
|
|
151
|
+
const userQueryable = getUserQueryable(); // returns Queryable<UserData, typeof User>
|
|
151
152
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
up: async (db: MyDb) => {
|
|
156
|
-
const c = createColumnFactory();
|
|
157
|
-
await db.addColumn(
|
|
158
|
-
{ database: "mydb", name: "User" },
|
|
159
|
-
"status",
|
|
160
|
-
c.varchar(20).nullable(),
|
|
161
|
-
);
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
];
|
|
165
|
-
}
|
|
153
|
+
// executable(db, procedure) - creates a () => Executable factory
|
|
154
|
+
const getByIdExecutable = executable(db, GetUserById);
|
|
155
|
+
const exec = getByIdExecutable(); // returns Executable<Params, Returns>
|
|
166
156
|
```
|
|
167
157
|
|
|
158
|
+
> For most use cases, `createDbContext()` is preferred and manages `queryable`/`executable` automatically.
|
|
159
|
+
|
|
168
160
|
## View Definition
|
|
169
161
|
|
|
170
162
|
```typescript
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/orm-common",
|
|
3
|
-
"version": "13.0.
|
|
3
|
+
"version": "13.0.30",
|
|
4
4
|
"description": "심플리즘 패키지 - ORM 모듈 (common)",
|
|
5
5
|
"author": "김석래",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -19,6 +19,6 @@
|
|
|
19
19
|
],
|
|
20
20
|
"sideEffects": false,
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@simplysm/core-common": "13.0.
|
|
22
|
+
"@simplysm/core-common": "13.0.30"
|
|
23
23
|
}
|
|
24
24
|
}
|
package/src/create-db-context.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
DbContextDef,
|
|
3
|
+
DbContextBase,
|
|
4
|
+
DbContextStatus,
|
|
5
|
+
DbContextInstance,
|
|
6
|
+
} from "./types/db-context-def";
|
|
2
7
|
import type { DataRecord, DbContextExecutor, IsolationLevel, ResultMeta } from "./types/db";
|
|
3
8
|
import type { QueryDef, QueryDefObjectName } from "./types/query-def";
|
|
4
9
|
import { DDL_TYPES } from "./types/query-def";
|
|
@@ -15,7 +20,10 @@ import * as tableDdl from "./ddl/table-ddl";
|
|
|
15
20
|
import * as columnDdl from "./ddl/column-ddl";
|
|
16
21
|
import * as relationDdl from "./ddl/relation-ddl";
|
|
17
22
|
import * as schemaDdl from "./ddl/schema-ddl";
|
|
18
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
initialize as initializeImpl,
|
|
25
|
+
validateRelations as validateRelationsImpl,
|
|
26
|
+
} from "./ddl/initialize";
|
|
19
27
|
|
|
20
28
|
import type { ColumnBuilder } from "./schema/factory/column-builder";
|
|
21
29
|
import type { ForeignKeyBuilder } from "./schema/factory/relation-builder";
|
|
@@ -77,13 +85,21 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
77
85
|
resetAliasCounter() {
|
|
78
86
|
aliasCounter = 0;
|
|
79
87
|
},
|
|
80
|
-
executeDefs<T = DataRecord>(
|
|
81
|
-
|
|
88
|
+
executeDefs<T = DataRecord>(
|
|
89
|
+
defs: QueryDef[],
|
|
90
|
+
resultMetas?: (ResultMeta | undefined)[],
|
|
91
|
+
): Promise<T[][]> {
|
|
92
|
+
if (
|
|
93
|
+
status === "transact" &&
|
|
94
|
+
defs.some((d) => (DDL_TYPES as readonly string[]).includes(d.type))
|
|
95
|
+
) {
|
|
82
96
|
throw new Error("TRANSACTION 상태에서는 DDL을 실행할 수 없습니다.");
|
|
83
97
|
}
|
|
84
98
|
return executor.executeDefs(defs, resultMetas);
|
|
85
99
|
},
|
|
86
|
-
getQueryDefObjectName(
|
|
100
|
+
getQueryDefObjectName(
|
|
101
|
+
tableOrView: TableBuilder<any, any> | ViewBuilder<any, any, any>,
|
|
102
|
+
): QueryDefObjectName {
|
|
87
103
|
return objClearUndefined({
|
|
88
104
|
database: tableOrView.meta.database ?? opt.database,
|
|
89
105
|
schema: tableOrView.meta.schema ?? opt.schema,
|
|
@@ -123,7 +139,10 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
123
139
|
* 연결 -> 트랜잭션 시작 -> 콜백 실행 -> 커밋 -> 연결 종료
|
|
124
140
|
* 에러 발생 시 자동 롤백 후 연결 종료
|
|
125
141
|
*/
|
|
126
|
-
async connect<TResult>(
|
|
142
|
+
async connect<TResult>(
|
|
143
|
+
fn: () => Promise<TResult>,
|
|
144
|
+
isolationLevel?: IsolationLevel,
|
|
145
|
+
): Promise<TResult> {
|
|
127
146
|
validateRelationsImpl(def);
|
|
128
147
|
base.resetAliasCounter();
|
|
129
148
|
|
|
@@ -198,7 +217,10 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
198
217
|
*
|
|
199
218
|
* connectWithoutTransaction 내에서 부분적으로 트랜잭션이 필요할 때 사용
|
|
200
219
|
*/
|
|
201
|
-
async trans<TResult>(
|
|
220
|
+
async trans<TResult>(
|
|
221
|
+
fn: () => Promise<TResult>,
|
|
222
|
+
isolationLevel?: IsolationLevel,
|
|
223
|
+
): Promise<TResult> {
|
|
202
224
|
if (status === "transact") {
|
|
203
225
|
throw new Error("이미 TRANSACTION 상태입니다.");
|
|
204
226
|
}
|
|
@@ -258,13 +280,21 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
258
280
|
async dropProc(procedure: QueryDefObjectName): Promise<void> {
|
|
259
281
|
await base.executeDefs([tableDdl.getDropProcQueryDef(procedure)]);
|
|
260
282
|
},
|
|
261
|
-
async addColumn(
|
|
283
|
+
async addColumn(
|
|
284
|
+
table: QueryDefObjectName,
|
|
285
|
+
columnName: string,
|
|
286
|
+
column: ColumnBuilder<any, any>,
|
|
287
|
+
): Promise<void> {
|
|
262
288
|
await base.executeDefs([columnDdl.getAddColumnQueryDef(table, columnName, column)]);
|
|
263
289
|
},
|
|
264
290
|
async dropColumn(table: QueryDefObjectName, column: string): Promise<void> {
|
|
265
291
|
await base.executeDefs([columnDdl.getDropColumnQueryDef(table, column)]);
|
|
266
292
|
},
|
|
267
|
-
async modifyColumn(
|
|
293
|
+
async modifyColumn(
|
|
294
|
+
table: QueryDefObjectName,
|
|
295
|
+
columnName: string,
|
|
296
|
+
column: ColumnBuilder<any, any>,
|
|
297
|
+
): Promise<void> {
|
|
268
298
|
await base.executeDefs([columnDdl.getModifyColumnQueryDef(table, columnName, column)]);
|
|
269
299
|
},
|
|
270
300
|
async renameColumn(table: QueryDefObjectName, column: string, newName: string): Promise<void> {
|
|
@@ -281,7 +311,9 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
281
311
|
relationName: string,
|
|
282
312
|
relationDef: ForeignKeyBuilder<any, any>,
|
|
283
313
|
): Promise<void> {
|
|
284
|
-
await base.executeDefs([
|
|
314
|
+
await base.executeDefs([
|
|
315
|
+
relationDdl.getAddFkQueryDef(base, table, relationName, relationDef),
|
|
316
|
+
]);
|
|
285
317
|
},
|
|
286
318
|
async addIdx(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): Promise<void> {
|
|
287
319
|
await base.executeDefs([relationDdl.getAddIdxQueryDef(table, indexBuilder)]);
|
|
@@ -310,9 +342,12 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
310
342
|
|
|
311
343
|
//#region ========== DDL QueryDef generators ==========
|
|
312
344
|
|
|
313
|
-
getCreateTableQueryDef: (table: TableBuilder<any, any>) =>
|
|
314
|
-
|
|
315
|
-
|
|
345
|
+
getCreateTableQueryDef: (table: TableBuilder<any, any>) =>
|
|
346
|
+
tableDdl.getCreateTableQueryDef(base, table),
|
|
347
|
+
getCreateViewQueryDef: (view: ViewBuilder<any, any, any>) =>
|
|
348
|
+
tableDdl.getCreateViewQueryDef(db as any, view),
|
|
349
|
+
getCreateProcQueryDef: (procedure: ProcedureBuilder<any, any>) =>
|
|
350
|
+
tableDdl.getCreateProcQueryDef(base, procedure),
|
|
316
351
|
getCreateObjectQueryDef: (
|
|
317
352
|
builder: TableBuilder<any, any> | ViewBuilder<any, any, any> | ProcedureBuilder<any, any>,
|
|
318
353
|
) => tableDdl.getCreateObjectQueryDef(db as any, builder),
|
|
@@ -326,8 +361,11 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
326
361
|
getRenameColumnQueryDef: columnDdl.getRenameColumnQueryDef,
|
|
327
362
|
getAddPkQueryDef: relationDdl.getAddPkQueryDef,
|
|
328
363
|
getDropPkQueryDef: relationDdl.getDropPkQueryDef,
|
|
329
|
-
getAddFkQueryDef: (
|
|
330
|
-
|
|
364
|
+
getAddFkQueryDef: (
|
|
365
|
+
table: QueryDefObjectName,
|
|
366
|
+
relationName: string,
|
|
367
|
+
relationDef: ForeignKeyBuilder<any, any>,
|
|
368
|
+
) => relationDdl.getAddFkQueryDef(base, table, relationName, relationDef),
|
|
331
369
|
getAddIdxQueryDef: relationDdl.getAddIdxQueryDef,
|
|
332
370
|
getDropFkQueryDef: relationDdl.getDropFkQueryDef,
|
|
333
371
|
getDropIdxQueryDef: relationDdl.getDropIdxQueryDef,
|
package/src/ddl/column-ddl.ts
CHANGED
|
@@ -31,7 +31,10 @@ export function getAddColumnQueryDef(
|
|
|
31
31
|
/**
|
|
32
32
|
* DROP COLUMN QueryDef 생성
|
|
33
33
|
*/
|
|
34
|
-
export function getDropColumnQueryDef(
|
|
34
|
+
export function getDropColumnQueryDef(
|
|
35
|
+
table: QueryDefObjectName,
|
|
36
|
+
column: string,
|
|
37
|
+
): DropColumnQueryDef {
|
|
35
38
|
return { type: "dropColumn", table, column };
|
|
36
39
|
}
|
|
37
40
|
|
package/src/ddl/initialize.ts
CHANGED
|
@@ -104,7 +104,10 @@ export async function initialize(
|
|
|
104
104
|
/**
|
|
105
105
|
* 전체 객체 생성 (테이블/뷰/프로시저/FK/Index)
|
|
106
106
|
*/
|
|
107
|
-
async function createAllObjects(
|
|
107
|
+
async function createAllObjects(
|
|
108
|
+
db: DbContextBase,
|
|
109
|
+
def: DbContextDef<any, any, any>,
|
|
110
|
+
): Promise<void> {
|
|
108
111
|
// 1. 테이블/뷰/프로시저 생성
|
|
109
112
|
const builders = getBuilders(def);
|
|
110
113
|
const createDefs: QueryDef[] = [];
|
|
@@ -155,7 +158,11 @@ async function createAllObjects(db: DbContextBase, def: DbContextDef<any, any, a
|
|
|
155
158
|
function getBuilders(
|
|
156
159
|
def: DbContextDef<any, any, any>,
|
|
157
160
|
): (TableBuilder<any, any> | ViewBuilder<any, any, any> | ProcedureBuilder<any, any>)[] {
|
|
158
|
-
const builders: (
|
|
161
|
+
const builders: (
|
|
162
|
+
| TableBuilder<any, any>
|
|
163
|
+
| ViewBuilder<any, any, any>
|
|
164
|
+
| ProcedureBuilder<any, any>
|
|
165
|
+
)[] = [];
|
|
159
166
|
|
|
160
167
|
// Tables
|
|
161
168
|
const tables: TableBuilder<any, any>[] = Object.values(def.meta.tables);
|
|
@@ -191,7 +198,10 @@ export function validateRelations(def: DbContextDef<any, any, any>): void {
|
|
|
191
198
|
if (relations == null) continue;
|
|
192
199
|
|
|
193
200
|
for (const [relName, relDef] of Object.entries(relations)) {
|
|
194
|
-
if (
|
|
201
|
+
if (
|
|
202
|
+
!(relDef instanceof ForeignKeyTargetBuilder) &&
|
|
203
|
+
!(relDef instanceof RelationKeyTargetBuilder)
|
|
204
|
+
) {
|
|
195
205
|
continue;
|
|
196
206
|
}
|
|
197
207
|
|
package/src/ddl/relation-ddl.ts
CHANGED
|
@@ -54,7 +54,10 @@ export function getAddFkQueryDef(
|
|
|
54
54
|
/**
|
|
55
55
|
* ADD INDEX QueryDef 생성
|
|
56
56
|
*/
|
|
57
|
-
export function getAddIdxQueryDef(
|
|
57
|
+
export function getAddIdxQueryDef(
|
|
58
|
+
table: QueryDefObjectName,
|
|
59
|
+
indexBuilder: IndexBuilder<string[]>,
|
|
60
|
+
): QueryDef {
|
|
58
61
|
const indexMeta = indexBuilder.meta;
|
|
59
62
|
|
|
60
63
|
return {
|
package/src/ddl/schema-ddl.ts
CHANGED
|
@@ -9,7 +9,10 @@ import type {
|
|
|
9
9
|
/**
|
|
10
10
|
* CLEAR SCHEMA QueryDef 생성
|
|
11
11
|
*/
|
|
12
|
-
export function getClearSchemaQueryDef(params: {
|
|
12
|
+
export function getClearSchemaQueryDef(params: {
|
|
13
|
+
database: string;
|
|
14
|
+
schema?: string;
|
|
15
|
+
}): ClearSchemaQueryDef {
|
|
13
16
|
return { type: "clearSchema", database: params.database, schema: params.schema };
|
|
14
17
|
}
|
|
15
18
|
|
|
@@ -30,6 +33,9 @@ export function getTruncateQueryDef(table: QueryDefObjectName): TruncateQueryDef
|
|
|
30
33
|
/**
|
|
31
34
|
* SWITCH FK QueryDef 생성
|
|
32
35
|
*/
|
|
33
|
-
export function getSwitchFkQueryDef(
|
|
36
|
+
export function getSwitchFkQueryDef(
|
|
37
|
+
table: QueryDefObjectName,
|
|
38
|
+
switch_: "on" | "off",
|
|
39
|
+
): SwitchFkQueryDef {
|
|
34
40
|
return { type: "switchFk", table, switch: switch_ };
|
|
35
41
|
}
|
package/src/ddl/table-ddl.ts
CHANGED
|
@@ -72,7 +72,10 @@ export function getCreateTableQueryDef(db: DbContextBase, table: TableBuilder<an
|
|
|
72
72
|
* @returns CREATE VIEW QueryDef
|
|
73
73
|
* @throws {Error} 뷰에 viewFn이 없을 때
|
|
74
74
|
*/
|
|
75
|
-
export function getCreateViewQueryDef(
|
|
75
|
+
export function getCreateViewQueryDef(
|
|
76
|
+
db: DbContextBase,
|
|
77
|
+
view: ViewBuilder<any, any, any>,
|
|
78
|
+
): QueryDef {
|
|
76
79
|
if (view.meta.viewFn == null) {
|
|
77
80
|
throw new Error(`뷰 '${view.meta.name}'에 viewFn이 없습니다.`);
|
|
78
81
|
}
|
|
@@ -99,7 +102,10 @@ export function getCreateViewQueryDef(db: DbContextBase, view: ViewBuilder<any,
|
|
|
99
102
|
* @returns CREATE PROCEDURE QueryDef
|
|
100
103
|
* @throws {Error} 프로시저에 본문이 없을 때
|
|
101
104
|
*/
|
|
102
|
-
export function getCreateProcQueryDef(
|
|
105
|
+
export function getCreateProcQueryDef(
|
|
106
|
+
db: DbContextBase,
|
|
107
|
+
procedure: ProcedureBuilder<any, any>,
|
|
108
|
+
): QueryDef {
|
|
103
109
|
if (procedure.meta.query == null) {
|
|
104
110
|
throw new Error(`프로시저 '${procedure.meta.name}'에 본문이 없습니다.`);
|
|
105
111
|
}
|
|
@@ -143,7 +149,10 @@ export function getDropTableQueryDef(table: QueryDefObjectName): DropTableQueryD
|
|
|
143
149
|
/**
|
|
144
150
|
* RENAME TABLE QueryDef 생성
|
|
145
151
|
*/
|
|
146
|
-
export function getRenameTableQueryDef(
|
|
152
|
+
export function getRenameTableQueryDef(
|
|
153
|
+
table: QueryDefObjectName,
|
|
154
|
+
newName: string,
|
|
155
|
+
): RenameTableQueryDef {
|
|
147
156
|
return { type: "renameTable", table, newName };
|
|
148
157
|
}
|
|
149
158
|
|
package/src/define-db-context.ts
CHANGED
|
@@ -17,7 +17,9 @@ export function defineDbContext<
|
|
|
17
17
|
}): DbContextDef<TTables & { _migration: typeof _Migration }, TViews, TProcedures> {
|
|
18
18
|
return {
|
|
19
19
|
meta: {
|
|
20
|
-
tables: { ...(config.tables ?? {}), _migration: _Migration } as TTables & {
|
|
20
|
+
tables: { ...(config.tables ?? {}), _migration: _Migration } as TTables & {
|
|
21
|
+
_migration: typeof _Migration;
|
|
22
|
+
},
|
|
21
23
|
views: (config.views ?? {}) as TViews,
|
|
22
24
|
procedures: (config.procedures ?? {}) as TProcedures,
|
|
23
25
|
migrations: config.migrations ?? [],
|