sonamu 0.4.14 → 0.5.1
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/.swcrc +15 -0
- package/dist/api/base-frame.d.ts +8 -0
- package/dist/api/base-frame.d.ts.map +1 -0
- package/dist/api/base-frame.js +2 -0
- package/dist/api/base-frame.js.map +1 -0
- package/dist/api/caster.d.ts +5 -0
- package/dist/api/caster.d.ts.map +1 -0
- package/dist/api/caster.js +2 -0
- package/dist/api/caster.js.map +1 -0
- package/dist/api/code-converters.d.ts +23 -0
- package/dist/api/code-converters.d.ts.map +1 -0
- package/dist/api/code-converters.js +2 -0
- package/dist/api/code-converters.js.map +1 -0
- package/dist/api/context.d.ts +19 -0
- package/dist/api/context.d.ts.map +1 -0
- package/dist/api/context.js +2 -0
- package/dist/api/context.js.map +1 -0
- package/dist/api/decorators.d.ts +50 -0
- package/dist/api/decorators.d.ts.map +1 -0
- package/dist/api/decorators.js +2 -0
- package/dist/api/decorators.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +2 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/sonamu.d.ts +84 -0
- package/dist/api/sonamu.d.ts.map +1 -0
- package/dist/api/sonamu.js +2 -0
- package/dist/api/sonamu.js.map +1 -0
- package/dist/bin/build-config.d.ts +9 -0
- package/dist/bin/build-config.d.ts.map +1 -0
- package/dist/bin/build-config.js +2 -0
- package/dist/bin/build-config.js.map +1 -0
- package/dist/bin/cli-wrapper.d.ts +2 -0
- package/dist/bin/cli-wrapper.d.ts.map +1 -0
- package/dist/bin/cli-wrapper.js +1 -38
- package/dist/bin/cli-wrapper.js.map +1 -1
- package/dist/bin/cli.d.ts +2 -2
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +1 -903
- package/dist/bin/cli.js.map +1 -1
- package/dist/database/_batch_update.d.ts +15 -0
- package/dist/database/_batch_update.d.ts.map +1 -0
- package/dist/database/_batch_update.js +2 -0
- package/dist/database/_batch_update.js.map +1 -0
- package/dist/database/base-model.d.ts +48 -0
- package/dist/database/base-model.d.ts.map +1 -0
- package/dist/database/base-model.js +2 -0
- package/dist/database/base-model.js.map +1 -0
- package/dist/database/code-generator.d.ts +13 -0
- package/dist/database/code-generator.d.ts.map +1 -0
- package/dist/database/code-generator.js +2 -0
- package/dist/database/code-generator.js.map +1 -0
- package/dist/database/db.d.ts +40 -0
- package/dist/database/db.d.ts.map +1 -0
- package/dist/database/db.js +2 -0
- package/dist/database/db.js.map +1 -0
- package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +2 -0
- package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +1 -0
- package/dist/database/knex-plugins/knex-on-duplicate-update.js +2 -0
- package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +1 -0
- package/dist/database/puri-wrapper.d.ts +34 -0
- package/dist/database/puri-wrapper.d.ts.map +1 -0
- package/dist/database/puri-wrapper.js +2 -0
- package/dist/database/puri-wrapper.js.map +1 -0
- package/dist/database/puri.d.ts +83 -0
- package/dist/database/puri.d.ts.map +1 -0
- package/dist/database/puri.js +2 -0
- package/dist/database/puri.js.map +1 -0
- package/dist/database/puri.types.d.ts +60 -0
- package/dist/database/puri.types.d.ts.map +1 -0
- package/dist/database/puri.types.js +2 -0
- package/dist/database/puri.types.js.map +1 -0
- package/dist/database/transaction-context.d.ts +9 -0
- package/dist/database/transaction-context.d.ts.map +1 -0
- package/dist/database/transaction-context.js +2 -0
- package/dist/database/transaction-context.js.map +1 -0
- package/dist/database/upsert-builder.d.ts +34 -0
- package/dist/database/upsert-builder.d.ts.map +1 -0
- package/dist/database/upsert-builder.js +2 -0
- package/dist/database/upsert-builder.js.map +1 -0
- package/dist/entity/entity-manager.d.ts +32 -0
- package/dist/entity/entity-manager.d.ts.map +1 -0
- package/dist/entity/entity-manager.js +2 -0
- package/dist/entity/entity-manager.js.map +1 -0
- package/dist/entity/entity-utils.d.ts +61 -0
- package/dist/entity/entity-utils.d.ts.map +1 -0
- package/dist/entity/entity-utils.js +2 -0
- package/dist/entity/entity-utils.js.map +1 -0
- package/dist/entity/entity.d.ts +62 -0
- package/dist/entity/entity.d.ts.map +1 -0
- package/dist/entity/entity.js +2 -0
- package/dist/entity/entity.js.map +1 -0
- package/dist/entity/migrator.d.ts +135 -0
- package/dist/entity/migrator.d.ts.map +1 -0
- package/dist/entity/migrator.js +2 -0
- package/dist/entity/migrator.js.map +1 -0
- package/dist/exceptions/error-handler.d.ts +3 -0
- package/dist/exceptions/error-handler.d.ts.map +1 -0
- package/dist/exceptions/error-handler.js +2 -0
- package/dist/exceptions/error-handler.js.map +1 -0
- package/dist/exceptions/so-exceptions.d.ts +48 -0
- package/dist/exceptions/so-exceptions.d.ts.map +1 -0
- package/dist/exceptions/so-exceptions.js +2 -0
- package/dist/exceptions/so-exceptions.js.map +1 -0
- package/dist/file-storage/driver.d.ts +48 -0
- package/dist/file-storage/driver.d.ts.map +1 -0
- package/dist/file-storage/driver.js +2 -0
- package/dist/file-storage/driver.js.map +1 -0
- package/dist/file-storage/file-storage.d.ts +50 -0
- package/dist/file-storage/file-storage.d.ts.map +1 -0
- package/dist/file-storage/file-storage.js +2 -0
- package/dist/file-storage/file-storage.js.map +1 -0
- package/dist/index.d.ts +23 -813
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -433
- package/dist/index.js.map +1 -1
- package/dist/migration/code-generation.d.ts +15 -0
- package/dist/migration/code-generation.d.ts.map +1 -0
- package/dist/migration/code-generation.js +2 -0
- package/dist/migration/code-generation.js.map +1 -0
- package/dist/migration/migration-set.d.ts +17 -0
- package/dist/migration/migration-set.d.ts.map +1 -0
- package/dist/migration/migration-set.js +2 -0
- package/dist/migration/migration-set.js.map +1 -0
- package/dist/migration/migrator.d.ts +130 -0
- package/dist/migration/migrator.d.ts.map +1 -0
- package/dist/migration/migrator.js +2 -0
- package/dist/migration/migrator.js.map +1 -0
- package/dist/migration/types.d.ts +52 -0
- package/dist/migration/types.d.ts.map +1 -0
- package/dist/migration/types.js +2 -0
- package/dist/migration/types.js.map +1 -0
- package/dist/stream/index.d.ts +2 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +2 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/stream/sse.d.ts +13 -0
- package/dist/stream/sse.d.ts.map +1 -0
- package/dist/stream/sse.js +2 -0
- package/dist/stream/sse.js.map +1 -0
- package/dist/syncer/index.d.ts +2 -0
- package/dist/syncer/index.d.ts.map +1 -0
- package/dist/syncer/index.js +2 -0
- package/dist/syncer/index.js.map +1 -0
- package/dist/syncer/syncer.d.ts +127 -0
- package/dist/syncer/syncer.d.ts.map +1 -0
- package/dist/syncer/syncer.js +2 -0
- package/dist/syncer/syncer.js.map +1 -0
- package/dist/templates/base-template.d.ts +13 -0
- package/dist/templates/base-template.d.ts.map +1 -0
- package/dist/templates/base-template.js +2 -0
- package/dist/templates/base-template.js.map +1 -0
- package/dist/templates/entity.template.d.ts +17 -0
- package/dist/templates/entity.template.d.ts.map +1 -0
- package/dist/templates/entity.template.js +2 -0
- package/dist/templates/entity.template.js.map +1 -0
- package/dist/templates/generated.template.d.ts +27 -0
- package/dist/templates/generated.template.d.ts.map +1 -0
- package/dist/templates/generated.template.js +2 -0
- package/dist/templates/generated.template.js.map +1 -0
- package/dist/templates/generated_http.template.d.ts +24 -0
- package/dist/templates/generated_http.template.d.ts.map +1 -0
- package/dist/templates/generated_http.template.js +2 -0
- package/dist/templates/generated_http.template.js.map +1 -0
- package/dist/templates/generated_sso.template.d.ts +20 -0
- package/dist/templates/generated_sso.template.d.ts.map +1 -0
- package/dist/templates/generated_sso.template.js +2 -0
- package/dist/templates/generated_sso.template.js.map +1 -0
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +2 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/init_types.template.d.ts +17 -0
- package/dist/templates/init_types.template.d.ts.map +1 -0
- package/dist/templates/init_types.template.js +2 -0
- package/dist/templates/init_types.template.js.map +1 -0
- package/dist/templates/model.template.d.ts +17 -0
- package/dist/templates/model.template.d.ts.map +1 -0
- package/dist/templates/model.template.js +2 -0
- package/dist/templates/model.template.js.map +1 -0
- package/dist/templates/model_test.template.d.ts +17 -0
- package/dist/templates/model_test.template.d.ts.map +1 -0
- package/dist/templates/model_test.template.js +2 -0
- package/dist/templates/model_test.template.js.map +1 -0
- package/dist/templates/service.template.d.ts +29 -0
- package/dist/templates/service.template.d.ts.map +1 -0
- package/dist/templates/service.template.js +2 -0
- package/dist/templates/service.template.js.map +1 -0
- package/dist/templates/view_enums_buttonset.template.d.ts +17 -0
- package/dist/templates/view_enums_buttonset.template.d.ts.map +1 -0
- package/dist/templates/view_enums_buttonset.template.js +2 -0
- package/dist/templates/view_enums_buttonset.template.js.map +1 -0
- package/dist/templates/view_enums_dropdown.template.d.ts +18 -0
- package/dist/templates/view_enums_dropdown.template.d.ts.map +1 -0
- package/dist/templates/view_enums_dropdown.template.js +2 -0
- package/dist/templates/view_enums_dropdown.template.js.map +1 -0
- package/dist/templates/view_enums_select.template.d.ts +17 -0
- package/dist/templates/view_enums_select.template.d.ts.map +1 -0
- package/dist/templates/view_enums_select.template.js +2 -0
- package/dist/templates/view_enums_select.template.js.map +1 -0
- package/dist/templates/view_form.template.d.ts +26 -0
- package/dist/templates/view_form.template.d.ts.map +1 -0
- package/dist/templates/view_form.template.js +2 -0
- package/dist/templates/view_form.template.js.map +1 -0
- package/dist/templates/view_id_all_select.template.d.ts +17 -0
- package/dist/templates/view_id_all_select.template.d.ts.map +1 -0
- package/dist/templates/view_id_all_select.template.js +2 -0
- package/dist/templates/view_id_all_select.template.js.map +1 -0
- package/dist/templates/view_id_async_select.template.d.ts +17 -0
- package/dist/templates/view_id_async_select.template.d.ts.map +1 -0
- package/dist/templates/view_id_async_select.template.js +2 -0
- package/dist/templates/view_id_async_select.template.js.map +1 -0
- package/dist/templates/view_list.template.d.ts +38 -0
- package/dist/templates/view_list.template.d.ts.map +1 -0
- package/dist/templates/view_list.template.js +2 -0
- package/dist/templates/view_list.template.js.map +1 -0
- package/dist/templates/view_list_columns.template.d.ts +17 -0
- package/dist/templates/view_list_columns.template.d.ts.map +1 -0
- package/dist/templates/view_list_columns.template.js +2 -0
- package/dist/templates/view_list_columns.template.js.map +1 -0
- package/dist/templates/view_search_input.template.d.ts +17 -0
- package/dist/templates/view_search_input.template.d.ts.map +1 -0
- package/dist/templates/view_search_input.template.js +2 -0
- package/dist/templates/view_search_input.template.js.map +1 -0
- package/dist/testing/_relation-graph.d.ts +7 -0
- package/dist/testing/_relation-graph.d.ts.map +1 -0
- package/dist/testing/_relation-graph.js +2 -0
- package/dist/testing/_relation-graph.js.map +1 -0
- package/dist/testing/fixture-manager.d.ts +35 -0
- package/dist/testing/fixture-manager.d.ts.map +1 -0
- package/dist/testing/fixture-manager.js +2 -0
- package/dist/testing/fixture-manager.js.map +1 -0
- package/dist/types/types.d.ts +611 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +2 -0
- package/dist/types/types.js.map +1 -0
- package/dist/typings/knex.d.js +2 -0
- package/dist/typings/knex.d.js.map +1 -0
- package/dist/utils/async-utils.d.ts +25 -0
- package/dist/utils/async-utils.d.ts.map +1 -0
- package/dist/utils/async-utils.js +2 -0
- package/dist/utils/async-utils.js.map +1 -0
- package/dist/utils/controller.d.ts +9 -0
- package/dist/utils/controller.d.ts.map +1 -0
- package/dist/utils/controller.js +2 -0
- package/dist/utils/controller.js.map +1 -0
- package/dist/utils/fs-utils.d.ts +9 -0
- package/dist/utils/fs-utils.d.ts.map +1 -0
- package/dist/utils/fs-utils.js +2 -0
- package/dist/utils/fs-utils.js.map +1 -0
- package/dist/utils/lodash-able.d.ts +2 -0
- package/dist/utils/lodash-able.d.ts.map +1 -0
- package/dist/utils/lodash-able.js +2 -0
- package/dist/utils/lodash-able.js.map +1 -0
- package/dist/utils/model.d.ts +17 -0
- package/dist/utils/model.d.ts.map +1 -0
- package/dist/utils/model.js +2 -0
- package/dist/utils/model.js.map +1 -0
- package/dist/utils/sql-parser.d.ts +4 -0
- package/dist/utils/sql-parser.d.ts.map +1 -0
- package/dist/utils/sql-parser.js +2 -0
- package/dist/utils/sql-parser.js.map +1 -0
- package/dist/utils/utils.d.ts +9 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +2 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/zod-error.d.ts +8 -0
- package/dist/utils/zod-error.d.ts.map +1 -0
- package/dist/utils/zod-error.js +2 -0
- package/dist/utils/zod-error.js.map +1 -0
- package/nodemon.json +6 -0
- package/package.json +32 -45
- package/src/api/base-frame.ts +3 -4
- package/src/api/caster.ts +22 -23
- package/src/api/code-converters.ts +170 -134
- package/src/api/context.ts +15 -3
- package/src/api/decorators.ts +144 -20
- package/src/api/index.ts +2 -0
- package/src/api/sonamu.ts +408 -165
- package/src/bin/build-config.ts +10 -0
- package/src/bin/cli-wrapper.ts +35 -32
- package/src/bin/cli.ts +141 -204
- package/src/database/_batch_update.ts +10 -15
- package/src/database/base-model.ts +326 -216
- package/src/database/db.ts +191 -21
- package/src/database/{drivers/knex/plugins → knex-plugins}/knex-on-duplicate-update.ts +1 -1
- package/src/database/puri-wrapper.ts +129 -0
- package/src/database/puri.ts +808 -0
- package/src/database/puri.types.ts +222 -0
- package/src/database/transaction-context.ts +18 -0
- package/src/database/upsert-builder.ts +32 -35
- package/src/entity/entity-manager.ts +7 -15
- package/src/entity/entity.ts +9 -31
- package/src/entity/migrator-/354/235/264/354/202/254/352/260/224/354/226/264/354/232/224.md +1 -0
- package/src/file-storage/driver.ts +131 -0
- package/src/file-storage/file-storage.ts +100 -0
- package/src/index.ts +15 -11
- package/src/migration/code-generation.ts +777 -0
- package/src/migration/migration-set.ts +453 -0
- package/src/migration/migrator.ts +823 -0
- package/src/migration/types.ts +53 -0
- package/src/shared/web.shared.ts.txt +33 -2
- package/src/stream/index.ts +1 -0
- package/src/stream/sse.ts +49 -0
- package/src/syncer/syncer.ts +294 -127
- package/src/templates/generated.template.ts +13 -1
- package/src/templates/generated_http.template.ts +15 -12
- package/src/templates/generated_sso.template.ts +50 -2
- package/src/templates/model.template.ts +138 -2
- package/src/templates/service.template.ts +0 -1
- package/src/templates/view_form.template.ts +11 -7
- package/src/templates/view_list.template.ts +12 -4
- package/src/testing/fixture-manager.ts +229 -174
- package/src/types/types.ts +108 -14
- package/src/utils/async-utils.ts +64 -0
- package/src/utils/fs-utils.ts +17 -0
- package/src/utils/model.ts +0 -2
- package/src/utils/utils.ts +14 -58
- package/src/utils/zod-error.ts +12 -176
- package/tsconfig.json +6 -0
- package/tsup.config.js +4 -2
- package/.pnp.cjs +0 -14363
- package/.pnp.loader.mjs +0 -2047
- package/.vscode/extensions.json +0 -6
- package/.vscode/settings.json +0 -9
- package/.yarnrc.yml +0 -5
- package/dist/base-model-CEB0H0aO.d.mts +0 -43
- package/dist/base-model-CrqDMYhI.d.ts +0 -43
- package/dist/bin/cli-wrapper.d.mts +0 -1
- package/dist/bin/cli-wrapper.mjs +0 -43
- package/dist/bin/cli-wrapper.mjs.map +0 -1
- package/dist/bin/cli.d.mts +0 -2
- package/dist/bin/cli.mjs +0 -907
- package/dist/bin/cli.mjs.map +0 -1
- package/dist/chunk-2WAC2GER.js +0 -7625
- package/dist/chunk-2WAC2GER.js.map +0 -1
- package/dist/chunk-C3IPIF6O.mjs +0 -1581
- package/dist/chunk-C3IPIF6O.mjs.map +0 -1
- package/dist/chunk-EXHKSVTE.js +0 -280
- package/dist/chunk-EXHKSVTE.js.map +0 -1
- package/dist/chunk-FCERKIIF.mjs +0 -7623
- package/dist/chunk-FCERKIIF.mjs.map +0 -1
- package/dist/chunk-HGIBJYOU.mjs +0 -231
- package/dist/chunk-HGIBJYOU.mjs.map +0 -1
- package/dist/chunk-JKSOJRQA.mjs +0 -280
- package/dist/chunk-JKSOJRQA.mjs.map +0 -1
- package/dist/chunk-OTKKFP3Y.js +0 -1581
- package/dist/chunk-OTKKFP3Y.js.map +0 -1
- package/dist/chunk-PTFDTOJU.mjs +0 -19
- package/dist/chunk-PTFDTOJU.mjs.map +0 -1
- package/dist/chunk-UZ2IY5VE.js +0 -231
- package/dist/chunk-UZ2IY5VE.js.map +0 -1
- package/dist/database/drivers/knex/base-model.d.mts +0 -16
- package/dist/database/drivers/knex/base-model.d.ts +0 -16
- package/dist/database/drivers/knex/base-model.js +0 -55
- package/dist/database/drivers/knex/base-model.js.map +0 -1
- package/dist/database/drivers/knex/base-model.mjs +0 -56
- package/dist/database/drivers/knex/base-model.mjs.map +0 -1
- package/dist/database/drivers/kysely/base-model.d.mts +0 -22
- package/dist/database/drivers/kysely/base-model.d.ts +0 -22
- package/dist/database/drivers/kysely/base-model.js +0 -64
- package/dist/database/drivers/kysely/base-model.js.map +0 -1
- package/dist/database/drivers/kysely/base-model.mjs +0 -65
- package/dist/database/drivers/kysely/base-model.mjs.map +0 -1
- package/dist/index.d.mts +0 -813
- package/dist/index.mjs +0 -435
- package/dist/index.mjs.map +0 -1
- package/dist/model-aFgomcdc.d.mts +0 -1112
- package/dist/model-aFgomcdc.d.ts +0 -1112
- package/src/database/base-model.abstract.ts +0 -97
- package/src/database/db.abstract.ts +0 -75
- package/src/database/drivers/knex/base-model.ts +0 -55
- package/src/database/drivers/knex/client.ts +0 -209
- package/src/database/drivers/knex/db.ts +0 -232
- package/src/database/drivers/knex/generator.ts +0 -659
- package/src/database/drivers/kysely/base-model.ts +0 -89
- package/src/database/drivers/kysely/client.ts +0 -309
- package/src/database/drivers/kysely/db.ts +0 -238
- package/src/database/drivers/kysely/generator.ts +0 -714
- package/src/database/types.ts +0 -118
- package/src/entity/migrator.ts +0 -1400
- package/src/smd/smd-manager.ts +0 -139
- package/src/smd/smd.ts +0 -571
- package/src/templates/kysely_types.template.ts +0 -205
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
-
|
|
3
|
-
var _chunkUZ2IY5VEjs = require('../../../chunk-UZ2IY5VE.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkEXHKSVTEjs = require('../../../chunk-EXHKSVTE.js');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _chunk2WAC2GERjs = require('../../../chunk-2WAC2GER.js');
|
|
11
|
-
|
|
12
|
-
// src/database/drivers/knex/base-model.ts
|
|
13
|
-
var BaseModelClass = class extends _chunkUZ2IY5VEjs.BaseModelClassAbstract {
|
|
14
|
-
getDB(which) {
|
|
15
|
-
return _chunk2WAC2GERjs.DB.getDB(which);
|
|
16
|
-
}
|
|
17
|
-
async destroy() {
|
|
18
|
-
return _chunk2WAC2GERjs.DB.destroy();
|
|
19
|
-
}
|
|
20
|
-
getUpsertBuilder() {
|
|
21
|
-
return new (0, _chunkEXHKSVTEjs.UpsertBuilder)();
|
|
22
|
-
}
|
|
23
|
-
applyJoins(clonedQb, joins) {
|
|
24
|
-
for (const join of joins) {
|
|
25
|
-
if (_chunk2WAC2GERjs.isCustomJoinClause.call(void 0, join)) {
|
|
26
|
-
if (join.join === "inner") {
|
|
27
|
-
clonedQb.qb = clonedQb.qb.innerJoin(
|
|
28
|
-
`${join.table} as ${join.as}`,
|
|
29
|
-
join.custom
|
|
30
|
-
);
|
|
31
|
-
} else {
|
|
32
|
-
clonedQb.qb = clonedQb.qb.leftJoin(
|
|
33
|
-
`${join.table} as ${join.as}`,
|
|
34
|
-
join.custom
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
} else {
|
|
38
|
-
if (join.join === "inner") {
|
|
39
|
-
clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
40
|
-
} else if (join.join === "outer") {
|
|
41
|
-
clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return clonedQb;
|
|
46
|
-
}
|
|
47
|
-
async executeCountQuery(qb) {
|
|
48
|
-
const result = await qb.clear("select").count("* as total").first();
|
|
49
|
-
return _nullishCoalesce(Number(_optionalChain([result, 'optionalAccess', _ => _.total])), () => ( 0));
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
exports.BaseModelClass = BaseModelClass;
|
|
55
|
-
//# sourceMappingURL=base-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/database/drivers/knex/base-model.ts"],"names":[],"mappings":";;;;;;;;;;;;AASO,IAAM,iBAAN,cAA6B,uBAA+B;AAAA,EACjE,MAAM,OAAuB;AAC3B,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAsB;AAAA,EACnC;AAAA,EAEU,WACR,UACA,OACY;AACZ,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF,OAAO;AACL,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACtE,WAAW,KAAK,SAAS,SAAS;AAChC,mBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACrE;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBAAkB,IAAwC;AACxE,UAAM,SAAS,MAAM,GAAG,MAAM,QAAQ,EAAE,MAAM,YAAY,EAAE,MAAM;AAClE,WAAO,OAAO,QAAQ,KAAK,KAAK;AAAA,EAClC;AACF","sourcesContent":["// base-model.knex.ts\nimport { Knex } from \"knex\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { KnexClient } from \"./client\";\nimport { DBPreset } from \"../../types\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"knex\"> {\n getDB(which: DBPreset): Knex {\n return DB.getDB(which) as Knex;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"knex\">();\n }\n\n protected applyJoins(\n clonedQb: KnexClient,\n joins: SubsetQuery[\"joins\"]\n ): KnexClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n if (join.join === \"inner\") {\n clonedQb.qb = clonedQb.qb.innerJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n } else {\n clonedQb.qb = clonedQb.qb.leftJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n }\n } else {\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n }\n return clonedQb;\n }\n\n protected async executeCountQuery(qb: Knex.QueryBuilder): Promise<number> {\n const result = await qb.clear(\"select\").count(\"* as total\").first();\n return Number(result?.total) ?? 0;\n }\n}\n"]}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BaseModelClassAbstract
|
|
3
|
-
} from "../../../chunk-HGIBJYOU.mjs";
|
|
4
|
-
import {
|
|
5
|
-
UpsertBuilder
|
|
6
|
-
} from "../../../chunk-JKSOJRQA.mjs";
|
|
7
|
-
import {
|
|
8
|
-
DB,
|
|
9
|
-
isCustomJoinClause
|
|
10
|
-
} from "../../../chunk-FCERKIIF.mjs";
|
|
11
|
-
import "../../../chunk-PTFDTOJU.mjs";
|
|
12
|
-
|
|
13
|
-
// src/database/drivers/knex/base-model.ts
|
|
14
|
-
var BaseModelClass = class extends BaseModelClassAbstract {
|
|
15
|
-
getDB(which) {
|
|
16
|
-
return DB.getDB(which);
|
|
17
|
-
}
|
|
18
|
-
async destroy() {
|
|
19
|
-
return DB.destroy();
|
|
20
|
-
}
|
|
21
|
-
getUpsertBuilder() {
|
|
22
|
-
return new UpsertBuilder();
|
|
23
|
-
}
|
|
24
|
-
applyJoins(clonedQb, joins) {
|
|
25
|
-
for (const join of joins) {
|
|
26
|
-
if (isCustomJoinClause(join)) {
|
|
27
|
-
if (join.join === "inner") {
|
|
28
|
-
clonedQb.qb = clonedQb.qb.innerJoin(
|
|
29
|
-
`${join.table} as ${join.as}`,
|
|
30
|
-
join.custom
|
|
31
|
-
);
|
|
32
|
-
} else {
|
|
33
|
-
clonedQb.qb = clonedQb.qb.leftJoin(
|
|
34
|
-
`${join.table} as ${join.as}`,
|
|
35
|
-
join.custom
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
} else {
|
|
39
|
-
if (join.join === "inner") {
|
|
40
|
-
clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
41
|
-
} else if (join.join === "outer") {
|
|
42
|
-
clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return clonedQb;
|
|
47
|
-
}
|
|
48
|
-
async executeCountQuery(qb) {
|
|
49
|
-
const result = await qb.clear("select").count("* as total").first();
|
|
50
|
-
return Number(result?.total) ?? 0;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
export {
|
|
54
|
-
BaseModelClass
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=base-model.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/database/drivers/knex/base-model.ts"],"sourcesContent":["// base-model.knex.ts\nimport { Knex } from \"knex\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { KnexClient } from \"./client\";\nimport { DBPreset } from \"../../types\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"knex\"> {\n getDB(which: DBPreset): Knex {\n return DB.getDB(which) as Knex;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"knex\">();\n }\n\n protected applyJoins(\n clonedQb: KnexClient,\n joins: SubsetQuery[\"joins\"]\n ): KnexClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n if (join.join === \"inner\") {\n clonedQb.qb = clonedQb.qb.innerJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n } else {\n clonedQb.qb = clonedQb.qb.leftJoin(\n `${join.table} as ${join.as}`,\n join.custom as any\n );\n }\n } else {\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n }\n return clonedQb;\n }\n\n protected async executeCountQuery(qb: Knex.QueryBuilder): Promise<number> {\n const result = await qb.clear(\"select\").count(\"* as total\").first();\n return Number(result?.total) ?? 0;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AASO,IAAM,iBAAN,cAA6B,uBAA+B;AAAA,EACjE,MAAM,OAAuB;AAC3B,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAsB;AAAA,EACnC;AAAA,EAEU,WACR,UACA,OACY;AACZ,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF,OAAO;AACL,mBAAS,KAAK,SAAS,GAAG;AAAA,YACxB,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE;AAAA,YAC3B,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,OAAO;AACL,YAAI,KAAK,SAAS,SAAS;AACzB,mBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACtE,WAAW,KAAK,SAAS,SAAS;AAChC,mBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,QACrE;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBAAkB,IAAwC;AACxE,UAAM,SAAS,MAAM,GAAG,MAAM,QAAQ,EAAE,MAAM,YAAY,EAAE,MAAM;AAClE,WAAO,OAAO,QAAQ,KAAK,KAAK;AAAA,EAClC;AACF;","names":[]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Kysely, SelectQueryBuilder } from 'kysely';
|
|
2
|
-
import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-aFgomcdc.mjs';
|
|
3
|
-
import { B as BaseModelClassAbstract } from '../../../base-model-CEB0H0aO.mjs';
|
|
4
|
-
import { UndirectedOrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser';
|
|
5
|
-
import 'knex';
|
|
6
|
-
import 'zod';
|
|
7
|
-
import 'mysql2';
|
|
8
|
-
|
|
9
|
-
type TB = keyof Database;
|
|
10
|
-
declare class BaseModelClass extends BaseModelClassAbstract<"kysely"> {
|
|
11
|
-
getDB(which: DBPreset): Kysely<Database>;
|
|
12
|
-
destroy(): Promise<void>;
|
|
13
|
-
getUpsertBuilder(): UpsertBuilder<"kysely">;
|
|
14
|
-
protected applyJoins(clonedQb: KyselyClient, joins: SubsetQuery["joins"]): KyselyClient;
|
|
15
|
-
protected executeCountQuery(qb: SelectQueryBuilder<Database, TB, any>): Promise<number>;
|
|
16
|
-
parseOrderBy(orderBy: string): [
|
|
17
|
-
UndirectedOrderByExpression<Database, keyof Database, {}>,
|
|
18
|
-
"asc" | "desc"
|
|
19
|
-
];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export { BaseModelClass };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Kysely, SelectQueryBuilder } from 'kysely';
|
|
2
|
-
import { D as DBPreset, a as Database, U as UpsertBuilder, b as KyselyClient, S as SubsetQuery } from '../../../model-aFgomcdc.js';
|
|
3
|
-
import { B as BaseModelClassAbstract } from '../../../base-model-CrqDMYhI.js';
|
|
4
|
-
import { UndirectedOrderByExpression } from 'kysely/dist/cjs/parser/order-by-parser';
|
|
5
|
-
import 'knex';
|
|
6
|
-
import 'zod';
|
|
7
|
-
import 'mysql2';
|
|
8
|
-
|
|
9
|
-
type TB = keyof Database;
|
|
10
|
-
declare class BaseModelClass extends BaseModelClassAbstract<"kysely"> {
|
|
11
|
-
getDB(which: DBPreset): Kysely<Database>;
|
|
12
|
-
destroy(): Promise<void>;
|
|
13
|
-
getUpsertBuilder(): UpsertBuilder<"kysely">;
|
|
14
|
-
protected applyJoins(clonedQb: KyselyClient, joins: SubsetQuery["joins"]): KyselyClient;
|
|
15
|
-
protected executeCountQuery(qb: SelectQueryBuilder<Database, TB, any>): Promise<number>;
|
|
16
|
-
parseOrderBy(orderBy: string): [
|
|
17
|
-
UndirectedOrderByExpression<Database, keyof Database, {}>,
|
|
18
|
-
"asc" | "desc"
|
|
19
|
-
];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export { BaseModelClass };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
|
-
|
|
3
|
-
var _chunkUZ2IY5VEjs = require('../../../chunk-UZ2IY5VE.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkEXHKSVTEjs = require('../../../chunk-EXHKSVTE.js');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _chunk2WAC2GERjs = require('../../../chunk-2WAC2GER.js');
|
|
12
|
-
|
|
13
|
-
// src/database/drivers/kysely/base-model.ts
|
|
14
|
-
var _inflection = require('inflection'); var _inflection2 = _interopRequireDefault(_inflection);
|
|
15
|
-
var BaseModelClass = class extends _chunkUZ2IY5VEjs.BaseModelClassAbstract {
|
|
16
|
-
getDB(which) {
|
|
17
|
-
return _chunk2WAC2GERjs.DB.getDB(which);
|
|
18
|
-
}
|
|
19
|
-
async destroy() {
|
|
20
|
-
return _chunk2WAC2GERjs.DB.destroy();
|
|
21
|
-
}
|
|
22
|
-
getUpsertBuilder() {
|
|
23
|
-
return new (0, _chunkEXHKSVTEjs.UpsertBuilder)();
|
|
24
|
-
}
|
|
25
|
-
applyJoins(clonedQb, joins) {
|
|
26
|
-
for (const join of joins) {
|
|
27
|
-
if (_chunk2WAC2GERjs.isCustomJoinClause.call(void 0, join)) {
|
|
28
|
-
throw new Error("Custom join clause is not supported in Kysely");
|
|
29
|
-
}
|
|
30
|
-
if (join.join === "inner") {
|
|
31
|
-
clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
32
|
-
} else if (join.join === "outer") {
|
|
33
|
-
clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return clonedQb;
|
|
37
|
-
}
|
|
38
|
-
async executeCountQuery(qb) {
|
|
39
|
-
const result = await qb.clearSelect().select((eb) => eb.fn.count("id").as("total")).executeTakeFirstOrThrow();
|
|
40
|
-
return Number(result.total);
|
|
41
|
-
}
|
|
42
|
-
parseOrderBy(orderBy) {
|
|
43
|
-
const [_column, order] = orderBy.split("-");
|
|
44
|
-
const [table, column] = _column.includes(".") ? _column.split(".") : [_inflection2.default.tableize(this.modelName), _column];
|
|
45
|
-
if (order !== "asc" && order !== "desc") {
|
|
46
|
-
throw new Error("parseOrderBy: Invalid order");
|
|
47
|
-
}
|
|
48
|
-
if (!column) {
|
|
49
|
-
throw new Error("parseOrderBy: Invalid column");
|
|
50
|
-
}
|
|
51
|
-
const entity = _chunk2WAC2GERjs.EntityManager.get(_inflection2.default.classify(table));
|
|
52
|
-
if (!entity.props.find((p) => p.name === column)) {
|
|
53
|
-
throw new Error("parseOrderBy: \uD604\uC7AC \uC5D4\uD2F0\uD2F0\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uCEEC\uB7FC\uC785\uB2C8\uB2E4: ");
|
|
54
|
-
}
|
|
55
|
-
return [
|
|
56
|
-
`${table}.${column}`,
|
|
57
|
-
order
|
|
58
|
-
];
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
exports.BaseModelClass = BaseModelClass;
|
|
64
|
-
//# sourceMappingURL=base-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/database/drivers/kysely/base-model.ts"],"names":[],"mappings":";;;;;;;;;;;;;AASA,OAAO,gBAAgB;AAIhB,IAAM,iBAAN,cAA6B,uBAAiC;AAAA,EACnE,MAAM,OAAmC;AACvC,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAwB;AAAA,EACrC;AAAA,EAEU,WACR,UACA,OACc;AACd,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,cAAM,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,UAAI,KAAK,SAAS,SAAS;AACzB,iBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACtE,WAAW,KAAK,SAAS,SAAS;AAChC,iBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACrE;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBACd,IACiB;AACjB,UAAM,SAAS,MAAM,GAClB,YAAY,EACZ,OAAO,CAAC,OAAO,GAAG,GAAG,MAAM,IAAW,EAAE,GAAG,OAAO,CAAC,EACnD,wBAAwB;AAC3B,WAAO,OAAO,OAAO,KAAK;AAAA,EAC5B;AAAA,EAEA,aACE,SAIA;AACA,UAAM,CAAC,SAAS,KAAK,IAAI,QAAQ,MAAM,GAAG;AAE1C,UAAM,CAAC,OAAO,MAAM,IAAI,QAAQ,SAAS,GAAG,IACxC,QAAQ,MAAM,GAAG,IACjB,CAAC,WAAW,SAAS,KAAK,SAAS,GAAG,OAAO;AAEjD,QAAI,UAAU,SAAS,UAAU,QAAQ;AACvC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM,SAAS,cAAc,IAAI,WAAW,SAAS,KAAK,CAAC;AAC3D,QAAI,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG;AAChD,YAAM,IAAI,MAAM,4HAAuC;AAAA,IACzD;AAEA,WAAO;AAAA,MACL,GAAG,KAAK,IAAI,MAAM;AAAA,MAKlB;AAAA,IACF;AAAA,EACF;AACF","sourcesContent":["import { Kysely, SelectQueryBuilder } from \"kysely\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { DBPreset, Database } from \"../../types\";\nimport { KyselyClient } from \"./client\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\nimport { UndirectedOrderByExpression } from \"kysely/dist/cjs/parser/order-by-parser\";\nimport { EntityManager } from \"../../../entity/entity-manager\";\nimport inflection from \"inflection\";\n\ntype TB = keyof Database;\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"kysely\"> {\n getDB(which: DBPreset): Kysely<Database> {\n return DB.getDB(which) as Kysely<Database>;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"kysely\">();\n }\n\n protected applyJoins(\n clonedQb: KyselyClient,\n joins: SubsetQuery[\"joins\"]\n ): KyselyClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n throw new Error(\"Custom join clause is not supported in Kysely\");\n }\n\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n\n return clonedQb;\n }\n\n protected async executeCountQuery(\n qb: SelectQueryBuilder<Database, TB, any>\n ): Promise<number> {\n const result = await qb\n .clearSelect()\n .select((eb) => eb.fn.count(\"id\" as any).as(\"total\"))\n .executeTakeFirstOrThrow();\n return Number(result.total);\n }\n\n parseOrderBy(\n orderBy: string\n ): [\n UndirectedOrderByExpression<Database, keyof Database, {}>,\n \"asc\" | \"desc\",\n ] {\n const [_column, order] = orderBy.split(\"-\");\n // FIXME: 조인 2개 이상일 때 처리\n const [table, column] = _column.includes(\".\")\n ? _column.split(\".\")\n : [inflection.tableize(this.modelName), _column];\n\n if (order !== \"asc\" && order !== \"desc\") {\n throw new Error(\"parseOrderBy: Invalid order\");\n }\n if (!column) {\n throw new Error(\"parseOrderBy: Invalid column\");\n }\n\n const entity = EntityManager.get(inflection.classify(table));\n if (!entity.props.find((p) => p.name === column)) {\n throw new Error(\"parseOrderBy: 현재 엔티티에 존재하지 않는 컬럼입니다: \");\n }\n\n return [\n `${table}.${column}` as unknown as UndirectedOrderByExpression<\n Database,\n keyof Database,\n {}\n >,\n order as \"asc\" | \"desc\",\n ];\n }\n}\n"]}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BaseModelClassAbstract
|
|
3
|
-
} from "../../../chunk-HGIBJYOU.mjs";
|
|
4
|
-
import {
|
|
5
|
-
UpsertBuilder
|
|
6
|
-
} from "../../../chunk-JKSOJRQA.mjs";
|
|
7
|
-
import {
|
|
8
|
-
DB,
|
|
9
|
-
EntityManager,
|
|
10
|
-
isCustomJoinClause
|
|
11
|
-
} from "../../../chunk-FCERKIIF.mjs";
|
|
12
|
-
import "../../../chunk-PTFDTOJU.mjs";
|
|
13
|
-
|
|
14
|
-
// src/database/drivers/kysely/base-model.ts
|
|
15
|
-
import inflection from "inflection";
|
|
16
|
-
var BaseModelClass = class extends BaseModelClassAbstract {
|
|
17
|
-
getDB(which) {
|
|
18
|
-
return DB.getDB(which);
|
|
19
|
-
}
|
|
20
|
-
async destroy() {
|
|
21
|
-
return DB.destroy();
|
|
22
|
-
}
|
|
23
|
-
getUpsertBuilder() {
|
|
24
|
-
return new UpsertBuilder();
|
|
25
|
-
}
|
|
26
|
-
applyJoins(clonedQb, joins) {
|
|
27
|
-
for (const join of joins) {
|
|
28
|
-
if (isCustomJoinClause(join)) {
|
|
29
|
-
throw new Error("Custom join clause is not supported in Kysely");
|
|
30
|
-
}
|
|
31
|
-
if (join.join === "inner") {
|
|
32
|
-
clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
33
|
-
} else if (join.join === "outer") {
|
|
34
|
-
clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return clonedQb;
|
|
38
|
-
}
|
|
39
|
-
async executeCountQuery(qb) {
|
|
40
|
-
const result = await qb.clearSelect().select((eb) => eb.fn.count("id").as("total")).executeTakeFirstOrThrow();
|
|
41
|
-
return Number(result.total);
|
|
42
|
-
}
|
|
43
|
-
parseOrderBy(orderBy) {
|
|
44
|
-
const [_column, order] = orderBy.split("-");
|
|
45
|
-
const [table, column] = _column.includes(".") ? _column.split(".") : [inflection.tableize(this.modelName), _column];
|
|
46
|
-
if (order !== "asc" && order !== "desc") {
|
|
47
|
-
throw new Error("parseOrderBy: Invalid order");
|
|
48
|
-
}
|
|
49
|
-
if (!column) {
|
|
50
|
-
throw new Error("parseOrderBy: Invalid column");
|
|
51
|
-
}
|
|
52
|
-
const entity = EntityManager.get(inflection.classify(table));
|
|
53
|
-
if (!entity.props.find((p) => p.name === column)) {
|
|
54
|
-
throw new Error("parseOrderBy: \uD604\uC7AC \uC5D4\uD2F0\uD2F0\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uCEEC\uB7FC\uC785\uB2C8\uB2E4: ");
|
|
55
|
-
}
|
|
56
|
-
return [
|
|
57
|
-
`${table}.${column}`,
|
|
58
|
-
order
|
|
59
|
-
];
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
export {
|
|
63
|
-
BaseModelClass
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=base-model.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/database/drivers/kysely/base-model.ts"],"sourcesContent":["import { Kysely, SelectQueryBuilder } from \"kysely\";\nimport { SubsetQuery, isCustomJoinClause } from \"../../../types/types\";\nimport { BaseModelClassAbstract } from \"../../base-model\";\nimport { DB } from \"../../db\";\nimport { DBPreset, Database } from \"../../types\";\nimport { KyselyClient } from \"./client\";\nimport { UpsertBuilder } from \"../../upsert-builder\";\nimport { UndirectedOrderByExpression } from \"kysely/dist/cjs/parser/order-by-parser\";\nimport { EntityManager } from \"../../../entity/entity-manager\";\nimport inflection from \"inflection\";\n\ntype TB = keyof Database;\n\nexport class BaseModelClass extends BaseModelClassAbstract<\"kysely\"> {\n getDB(which: DBPreset): Kysely<Database> {\n return DB.getDB(which) as Kysely<Database>;\n }\n\n async destroy(): Promise<void> {\n return DB.destroy();\n }\n\n getUpsertBuilder() {\n return new UpsertBuilder<\"kysely\">();\n }\n\n protected applyJoins(\n clonedQb: KyselyClient,\n joins: SubsetQuery[\"joins\"]\n ): KyselyClient {\n for (const join of joins) {\n if (isCustomJoinClause(join)) {\n throw new Error(\"Custom join clause is not supported in Kysely\");\n }\n\n if (join.join === \"inner\") {\n clonedQb.innerJoin(`${join.table} as ${join.as}`, join.from, join.to);\n } else if (join.join === \"outer\") {\n clonedQb.leftJoin(`${join.table} as ${join.as}`, join.from, join.to);\n }\n }\n\n return clonedQb;\n }\n\n protected async executeCountQuery(\n qb: SelectQueryBuilder<Database, TB, any>\n ): Promise<number> {\n const result = await qb\n .clearSelect()\n .select((eb) => eb.fn.count(\"id\" as any).as(\"total\"))\n .executeTakeFirstOrThrow();\n return Number(result.total);\n }\n\n parseOrderBy(\n orderBy: string\n ): [\n UndirectedOrderByExpression<Database, keyof Database, {}>,\n \"asc\" | \"desc\",\n ] {\n const [_column, order] = orderBy.split(\"-\");\n // FIXME: 조인 2개 이상일 때 처리\n const [table, column] = _column.includes(\".\")\n ? _column.split(\".\")\n : [inflection.tableize(this.modelName), _column];\n\n if (order !== \"asc\" && order !== \"desc\") {\n throw new Error(\"parseOrderBy: Invalid order\");\n }\n if (!column) {\n throw new Error(\"parseOrderBy: Invalid column\");\n }\n\n const entity = EntityManager.get(inflection.classify(table));\n if (!entity.props.find((p) => p.name === column)) {\n throw new Error(\"parseOrderBy: 현재 엔티티에 존재하지 않는 컬럼입니다: \");\n }\n\n return [\n `${table}.${column}` as unknown as UndirectedOrderByExpression<\n Database,\n keyof Database,\n {}\n >,\n order as \"asc\" | \"desc\",\n ];\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AASA,OAAO,gBAAgB;AAIhB,IAAM,iBAAN,cAA6B,uBAAiC;AAAA,EACnE,MAAM,OAAmC;AACvC,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,UAAyB;AAC7B,WAAO,GAAG,QAAQ;AAAA,EACpB;AAAA,EAEA,mBAAmB;AACjB,WAAO,IAAI,cAAwB;AAAA,EACrC;AAAA,EAEU,WACR,UACA,OACc;AACd,eAAW,QAAQ,OAAO;AACxB,UAAI,mBAAmB,IAAI,GAAG;AAC5B,cAAM,IAAI,MAAM,+CAA+C;AAAA,MACjE;AAEA,UAAI,KAAK,SAAS,SAAS;AACzB,iBAAS,UAAU,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACtE,WAAW,KAAK,SAAS,SAAS;AAChC,iBAAS,SAAS,GAAG,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,MACrE;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,kBACd,IACiB;AACjB,UAAM,SAAS,MAAM,GAClB,YAAY,EACZ,OAAO,CAAC,OAAO,GAAG,GAAG,MAAM,IAAW,EAAE,GAAG,OAAO,CAAC,EACnD,wBAAwB;AAC3B,WAAO,OAAO,OAAO,KAAK;AAAA,EAC5B;AAAA,EAEA,aACE,SAIA;AACA,UAAM,CAAC,SAAS,KAAK,IAAI,QAAQ,MAAM,GAAG;AAE1C,UAAM,CAAC,OAAO,MAAM,IAAI,QAAQ,SAAS,GAAG,IACxC,QAAQ,MAAM,GAAG,IACjB,CAAC,WAAW,SAAS,KAAK,SAAS,GAAG,OAAO;AAEjD,QAAI,UAAU,SAAS,UAAU,QAAQ;AACvC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM,SAAS,cAAc,IAAI,WAAW,SAAS,KAAK,CAAC;AAC3D,QAAI,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG;AAChD,YAAM,IAAI,MAAM,4HAAuC;AAAA,IACzD;AAEA,WAAO;AAAA,MACL,GAAG,KAAK,IAAI,MAAM;AAAA,MAKlB;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|