sonamu 0.5.6 → 0.6.0
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/dist/api/base-frame.js +12 -2
- package/dist/api/caster.js +66 -2
- package/dist/api/code-converters.js +489 -2
- package/dist/api/config.d.ts +76 -0
- package/dist/api/config.d.ts.map +1 -0
- package/dist/api/config.js +32 -0
- package/dist/api/context.d.ts +1 -0
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +3 -2
- package/dist/api/decorators.d.ts +1 -0
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +142 -2
- package/dist/api/index.js +9 -2
- package/dist/api/sonamu.d.ts +8 -22
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +482 -2
- package/dist/bin/build-config.d.ts +2 -1
- package/dist/bin/build-config.d.ts.map +1 -1
- package/dist/bin/build-config.js +12 -2
- package/dist/bin/cli-wrapper.js +71 -2
- package/dist/bin/cli.js +418 -2
- package/dist/bin/hot-hook-register.d.ts +11 -0
- package/dist/bin/hot-hook-register.d.ts.map +1 -0
- package/dist/bin/hot-hook-register.js +21 -0
- package/dist/database/_batch_update.js +78 -2
- package/dist/database/base-model.js +247 -2
- package/dist/database/code-generator.js +53 -2
- package/dist/database/db.d.ts +5 -16
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +132 -2
- package/dist/database/knex-plugins/knex-on-duplicate-update.js +39 -2
- package/dist/database/puri-wrapper.d.ts +22 -10
- package/dist/database/puri-wrapper.d.ts.map +1 -1
- package/dist/database/puri-wrapper.js +109 -2
- package/dist/database/puri.d.ts +105 -73
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +539 -2
- package/dist/database/puri.types.d.ts +33 -42
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +3 -2
- package/dist/database/transaction-context.d.ts +3 -3
- package/dist/database/transaction-context.d.ts.map +1 -1
- package/dist/database/transaction-context.js +14 -2
- package/dist/database/upsert-builder.js +215 -2
- package/dist/entity/entity-manager.d.ts +3 -1
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +114 -2
- package/dist/entity/entity-utils.js +210 -2
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +651 -2
- package/dist/exceptions/error-handler.js +29 -2
- package/dist/exceptions/so-exceptions.js +85 -2
- package/dist/file-storage/driver.js +79 -2
- package/dist/file-storage/file-storage.js +75 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -2
- package/dist/migration/code-generation.js +558 -2
- package/dist/migration/migration-set.js +364 -2
- package/dist/migration/migrator.d.ts +0 -9
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +510 -2
- package/dist/migration/types.js +3 -2
- package/dist/naite/naite.d.ts +12 -0
- package/dist/naite/naite.d.ts.map +1 -0
- package/dist/naite/naite.js +72 -0
- package/dist/stream/index.js +3 -2
- package/dist/stream/sse.js +38 -2
- package/dist/syncer/api-parser.d.ts +20 -0
- package/dist/syncer/api-parser.d.ts.map +1 -0
- package/dist/syncer/api-parser.js +229 -0
- package/dist/syncer/checksum.d.ts +21 -0
- package/dist/syncer/checksum.d.ts.map +1 -0
- package/dist/syncer/checksum.js +98 -0
- package/dist/syncer/code-generator.d.ts +20 -0
- package/dist/syncer/code-generator.d.ts.map +1 -0
- package/dist/syncer/code-generator.js +141 -0
- package/dist/syncer/entity-operations.d.ts +17 -0
- package/dist/syncer/entity-operations.d.ts.map +1 -0
- package/dist/syncer/entity-operations.js +58 -0
- package/dist/syncer/file-patterns.d.ts +29 -0
- package/dist/syncer/file-patterns.d.ts.map +1 -0
- package/dist/syncer/file-patterns.js +38 -0
- package/dist/syncer/index.d.ts +6 -0
- package/dist/syncer/index.d.ts.map +1 -1
- package/dist/syncer/index.js +9 -2
- package/dist/syncer/module-loader.d.ts +35 -0
- package/dist/syncer/module-loader.d.ts.map +1 -0
- package/dist/syncer/module-loader.js +82 -0
- package/dist/syncer/syncer.d.ts +93 -108
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +375 -2
- package/dist/template/entity-converter.d.ts +14 -0
- package/dist/template/entity-converter.d.ts.map +1 -0
- package/dist/template/entity-converter.js +101 -0
- package/dist/template/helpers.d.ts +23 -0
- package/dist/template/helpers.d.ts.map +1 -0
- package/dist/template/helpers.js +64 -0
- package/dist/{templates → template/implementations}/entity.template.d.ts +3 -3
- package/dist/template/implementations/entity.template.d.ts.map +1 -0
- package/dist/template/implementations/entity.template.js +87 -0
- package/dist/{templates → template/implementations}/generated.template.d.ts +3 -3
- package/dist/template/implementations/generated.template.d.ts.map +1 -0
- package/dist/template/implementations/generated.template.js +232 -0
- package/dist/{templates → template/implementations}/generated_http.template.d.ts +3 -3
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -0
- package/dist/template/implementations/generated_http.template.js +131 -0
- package/dist/{templates → template/implementations}/generated_sso.template.d.ts +3 -3
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -0
- package/dist/template/implementations/generated_sso.template.js +105 -0
- package/dist/{templates → template/implementations}/init_types.template.d.ts +3 -3
- package/dist/template/implementations/init_types.template.d.ts.map +1 -0
- package/dist/template/implementations/init_types.template.js +38 -0
- package/dist/template/implementations/model.template.d.ts +17 -0
- package/dist/template/implementations/model.template.d.ts.map +1 -0
- package/dist/template/implementations/model.template.js +171 -0
- package/dist/{templates → template/implementations}/model_test.template.d.ts +3 -3
- package/dist/template/implementations/model_test.template.d.ts.map +1 -0
- package/dist/template/implementations/model_test.template.js +35 -0
- package/dist/{templates → template/implementations}/service.template.d.ts +6 -6
- package/dist/template/implementations/service.template.d.ts.map +1 -0
- package/dist/template/implementations/service.template.js +193 -0
- package/dist/{templates → template/implementations}/view_enums_buttonset.template.d.ts +3 -3
- package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -0
- package/dist/template/implementations/view_enums_buttonset.template.js +31 -0
- package/dist/{templates → template/implementations}/view_enums_dropdown.template.d.ts +3 -4
- package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -0
- package/dist/template/implementations/view_enums_dropdown.template.js +50 -0
- package/dist/{templates → template/implementations}/view_enums_select.template.d.ts +3 -3
- package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -0
- package/dist/template/implementations/view_enums_select.template.js +55 -0
- package/dist/{templates → template/implementations}/view_form.template.d.ts +5 -5
- package/dist/template/implementations/view_form.template.d.ts.map +1 -0
- package/dist/template/implementations/view_form.template.js +337 -0
- package/dist/{templates → template/implementations}/view_id_all_select.template.d.ts +3 -3
- package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -0
- package/dist/template/implementations/view_id_all_select.template.js +31 -0
- package/dist/{templates → template/implementations}/view_id_async_select.template.d.ts +3 -3
- package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -0
- package/dist/template/implementations/view_id_async_select.template.js +105 -0
- package/dist/{templates → template/implementations}/view_list.template.d.ts +5 -13
- package/dist/template/implementations/view_list.template.d.ts.map +1 -0
- package/dist/template/implementations/view_list.template.js +465 -0
- package/dist/{templates → template/implementations}/view_list_columns.template.d.ts +3 -3
- package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -0
- package/dist/template/implementations/view_list_columns.template.js +49 -0
- package/dist/{templates → template/implementations}/view_search_input.template.d.ts +3 -3
- package/dist/template/implementations/view_search_input.template.d.ts.map +1 -0
- package/dist/template/implementations/view_search_input.template.js +64 -0
- package/dist/template/index.d.ts +5 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js +6 -0
- package/dist/template/template.d.ts +39 -0
- package/dist/template/template.d.ts.map +1 -0
- package/dist/template/template.js +47 -0
- package/dist/template/zod-converter.d.ts +18 -0
- package/dist/template/zod-converter.d.ts.map +1 -0
- package/dist/template/zod-converter.js +166 -0
- package/dist/testing/_relation-graph.js +80 -2
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +521 -2
- package/dist/types/types.d.ts +39 -40
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +289 -2
- package/dist/typings/knex.d.js +3 -2
- package/dist/utils/async-utils.d.ts +7 -0
- package/dist/utils/async-utils.d.ts.map +1 -1
- package/dist/utils/async-utils.js +57 -2
- package/dist/utils/console-util.d.ts +2 -0
- package/dist/utils/console-util.d.ts.map +1 -0
- package/dist/utils/console-util.js +6 -0
- package/dist/utils/controller.js +26 -2
- package/dist/utils/esm-utils.d.ts +45 -0
- package/dist/utils/esm-utils.d.ts.map +1 -0
- package/dist/utils/esm-utils.js +56 -0
- package/dist/utils/fs-utils.js +17 -2
- package/dist/utils/lodash-able.js +6 -2
- package/dist/utils/model.js +22 -2
- package/dist/utils/path-utils.d.ts +89 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +60 -0
- package/dist/utils/process-utils.d.ts +13 -0
- package/dist/utils/process-utils.d.ts.map +1 -0
- package/dist/utils/process-utils.js +36 -0
- package/dist/utils/sql-parser.js +35 -2
- package/dist/utils/utils.d.ts +4 -7
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +33 -2
- package/dist/utils/zod-error.d.ts.map +1 -1
- package/dist/utils/zod-error.js +19 -2
- package/package.json +21 -9
- package/src/api/code-converters.ts +2 -2
- package/src/api/config.ts +142 -0
- package/src/api/context.ts +1 -0
- package/src/api/decorators.ts +15 -5
- package/src/api/sonamu.ts +102 -87
- package/src/bin/build-config.ts +2 -1
- package/src/bin/cli-wrapper.ts +10 -3
- package/src/bin/cli.ts +108 -56
- package/src/bin/hot-hook-register.ts +22 -0
- package/src/database/base-model.ts +1 -1
- package/src/database/code-generator.ts +1 -1
- package/src/database/db.ts +53 -60
- package/src/database/puri-wrapper.ts +104 -26
- package/src/database/puri.ts +477 -580
- package/src/database/puri.types.ts +111 -201
- package/src/database/transaction-context.ts +4 -4
- package/src/database/upsert-builder.ts +1 -1
- package/src/entity/entity-manager.ts +19 -15
- package/src/entity/entity.ts +4 -3
- package/src/index.ts +2 -0
- package/src/migration/code-generation.ts +1 -1
- package/src/migration/migration-set.ts +1 -1
- package/src/migration/migrator.ts +23 -152
- package/src/naite/naite.ts +70 -0
- package/src/syncer/api-parser.ts +299 -0
- package/src/syncer/checksum.ts +152 -0
- package/src/syncer/code-generator.ts +202 -0
- package/src/syncer/entity-operations.ts +68 -0
- package/src/syncer/file-patterns.ts +56 -0
- package/src/syncer/index.ts +6 -0
- package/src/syncer/module-loader.ts +125 -0
- package/src/syncer/syncer.ts +363 -1420
- package/src/template/entity-converter.ts +123 -0
- package/src/template/helpers.ts +84 -0
- package/src/{templates → template/implementations}/entity.template.ts +4 -4
- package/src/{templates → template/implementations}/generated.template.ts +9 -9
- package/src/{templates → template/implementations}/generated_http.template.ts +9 -6
- package/src/{templates → template/implementations}/generated_sso.template.ts +7 -7
- package/src/{templates → template/implementations}/init_types.template.ts +4 -4
- package/src/{templates → template/implementations}/model.template.ts +9 -9
- package/src/{templates → template/implementations}/model_test.template.ts +5 -5
- package/src/{templates → template/implementations}/service.template.ts +29 -12
- package/src/{templates → template/implementations}/view_enums_buttonset.template.ts +3 -3
- package/src/{templates → template/implementations}/view_enums_dropdown.template.ts +5 -21
- package/src/{templates → template/implementations}/view_enums_select.template.ts +4 -4
- package/src/{templates → template/implementations}/view_form.template.ts +11 -13
- package/src/{templates → template/implementations}/view_id_all_select.template.ts +3 -3
- package/src/{templates → template/implementations}/view_id_async_select.template.ts +3 -3
- package/src/{templates → template/implementations}/view_list.template.ts +13 -64
- package/src/{templates → template/implementations}/view_list_columns.template.ts +3 -3
- package/src/{templates → template/implementations}/view_search_input.template.ts +3 -3
- package/src/template/index.ts +4 -0
- package/src/template/template.ts +86 -0
- package/src/template/zod-converter.ts +219 -0
- package/src/testing/fixture-manager.ts +8 -1
- package/src/types/types.ts +39 -62
- package/src/utils/async-utils.ts +17 -0
- package/src/utils/console-util.ts +4 -0
- package/src/utils/esm-utils.ts +69 -0
- package/src/utils/path-utils.ts +102 -0
- package/src/utils/process-utils.ts +46 -0
- package/src/utils/sql-parser.ts +1 -1
- package/src/utils/utils.ts +14 -40
- package/src/utils/zod-error.ts +0 -1
- package/dist/api/base-frame.js.map +0 -1
- package/dist/api/caster.js.map +0 -1
- package/dist/api/code-converters.js.map +0 -1
- package/dist/api/context.js.map +0 -1
- package/dist/api/decorators.js.map +0 -1
- package/dist/api/index.js.map +0 -1
- package/dist/api/sonamu.js.map +0 -1
- package/dist/bin/build-config.js.map +0 -1
- package/dist/bin/cli-wrapper.js.map +0 -1
- package/dist/bin/cli.js.map +0 -1
- package/dist/database/_batch_update.js.map +0 -1
- package/dist/database/base-model.js.map +0 -1
- package/dist/database/code-generator.js.map +0 -1
- package/dist/database/db.js.map +0 -1
- package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
- package/dist/database/puri-wrapper.js.map +0 -1
- package/dist/database/puri.js.map +0 -1
- package/dist/database/puri.types.js.map +0 -1
- package/dist/database/transaction-context.js.map +0 -1
- package/dist/database/upsert-builder.js.map +0 -1
- package/dist/entity/entity-manager.js.map +0 -1
- package/dist/entity/entity-utils.js.map +0 -1
- package/dist/entity/entity.js.map +0 -1
- package/dist/exceptions/error-handler.js.map +0 -1
- package/dist/exceptions/so-exceptions.js.map +0 -1
- package/dist/file-storage/driver.js.map +0 -1
- package/dist/file-storage/file-storage.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/migration/code-generation.js.map +0 -1
- package/dist/migration/migration-set.js.map +0 -1
- package/dist/migration/migrator.js.map +0 -1
- package/dist/migration/types.js.map +0 -1
- package/dist/stream/index.js.map +0 -1
- package/dist/stream/sse.js.map +0 -1
- package/dist/syncer/index.js.map +0 -1
- package/dist/syncer/syncer.js.map +0 -1
- package/dist/templates/base-template.d.ts +0 -13
- package/dist/templates/base-template.d.ts.map +0 -1
- package/dist/templates/base-template.js +0 -2
- package/dist/templates/base-template.js.map +0 -1
- package/dist/templates/entity.template.d.ts.map +0 -1
- package/dist/templates/entity.template.js +0 -2
- package/dist/templates/entity.template.js.map +0 -1
- package/dist/templates/generated.template.d.ts.map +0 -1
- package/dist/templates/generated.template.js +0 -2
- package/dist/templates/generated.template.js.map +0 -1
- package/dist/templates/generated_http.template.d.ts.map +0 -1
- package/dist/templates/generated_http.template.js +0 -2
- package/dist/templates/generated_http.template.js.map +0 -1
- package/dist/templates/generated_sso.template.d.ts.map +0 -1
- package/dist/templates/generated_sso.template.js +0 -2
- package/dist/templates/generated_sso.template.js.map +0 -1
- package/dist/templates/index.d.ts +0 -2
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/index.js +0 -2
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/init_types.template.d.ts.map +0 -1
- package/dist/templates/init_types.template.js +0 -2
- package/dist/templates/init_types.template.js.map +0 -1
- package/dist/templates/model.template.d.ts +0 -17
- package/dist/templates/model.template.d.ts.map +0 -1
- package/dist/templates/model.template.js +0 -2
- package/dist/templates/model.template.js.map +0 -1
- package/dist/templates/model_test.template.d.ts.map +0 -1
- package/dist/templates/model_test.template.js +0 -2
- package/dist/templates/model_test.template.js.map +0 -1
- package/dist/templates/service.template.d.ts.map +0 -1
- package/dist/templates/service.template.js +0 -2
- package/dist/templates/service.template.js.map +0 -1
- package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
- package/dist/templates/view_enums_buttonset.template.js +0 -2
- package/dist/templates/view_enums_buttonset.template.js.map +0 -1
- package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
- package/dist/templates/view_enums_dropdown.template.js +0 -2
- package/dist/templates/view_enums_dropdown.template.js.map +0 -1
- package/dist/templates/view_enums_select.template.d.ts.map +0 -1
- package/dist/templates/view_enums_select.template.js +0 -2
- package/dist/templates/view_enums_select.template.js.map +0 -1
- package/dist/templates/view_form.template.d.ts.map +0 -1
- package/dist/templates/view_form.template.js +0 -2
- package/dist/templates/view_form.template.js.map +0 -1
- package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
- package/dist/templates/view_id_all_select.template.js +0 -2
- package/dist/templates/view_id_all_select.template.js.map +0 -1
- package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
- package/dist/templates/view_id_async_select.template.js +0 -2
- package/dist/templates/view_id_async_select.template.js.map +0 -1
- package/dist/templates/view_list.template.d.ts.map +0 -1
- package/dist/templates/view_list.template.js +0 -2
- package/dist/templates/view_list.template.js.map +0 -1
- package/dist/templates/view_list_columns.template.d.ts.map +0 -1
- package/dist/templates/view_list_columns.template.js +0 -2
- package/dist/templates/view_list_columns.template.js.map +0 -1
- package/dist/templates/view_search_input.template.d.ts.map +0 -1
- package/dist/templates/view_search_input.template.js +0 -2
- package/dist/templates/view_search_input.template.js.map +0 -1
- package/dist/testing/_relation-graph.js.map +0 -1
- package/dist/testing/fixture-manager.js.map +0 -1
- package/dist/types/types.js.map +0 -1
- package/dist/typings/knex.d.js.map +0 -1
- package/dist/utils/async-utils.js.map +0 -1
- package/dist/utils/controller.js.map +0 -1
- package/dist/utils/fs-utils.js.map +0 -1
- package/dist/utils/lodash-able.js.map +0 -1
- package/dist/utils/model.js.map +0 -1
- package/dist/utils/sql-parser.js.map +0 -1
- package/dist/utils/utils.js.map +0 -1
- package/dist/utils/zod-error.js.map +0 -1
- package/src/templates/base-template.ts +0 -19
- package/src/templates/index.ts +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import qs from "qs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { getZodObjectFromApi } from "../../api/code-converters.js";
|
|
4
|
+
import { Template } from "../template.js";
|
|
5
|
+
import prettier from "prettier";
|
|
6
|
+
import { Sonamu } from "../../api/sonamu.js";
|
|
7
|
+
export class Template__generated_http extends Template {
|
|
8
|
+
constructor(){
|
|
9
|
+
super("generated_http");
|
|
10
|
+
}
|
|
11
|
+
getTargetAndPath() {
|
|
12
|
+
const { dir } = Sonamu.config.api;
|
|
13
|
+
return {
|
|
14
|
+
target: `${dir}/src/application`,
|
|
15
|
+
path: `sonamu.generated.http`
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
async render({}) {
|
|
19
|
+
const { syncer: { types, apis }, config: { api: { route: { prefix } } } } = Sonamu;
|
|
20
|
+
const lines = await Promise.all(apis.map(async (api)=>{
|
|
21
|
+
const reqObject = this.resolveApiParams(api, types);
|
|
22
|
+
const dataLines = await (async ()=>{
|
|
23
|
+
if ((api.options.httpMethod ?? "GET") === "GET") {
|
|
24
|
+
return {
|
|
25
|
+
querystring: [
|
|
26
|
+
qs.stringify(reqObject, {
|
|
27
|
+
encode: false
|
|
28
|
+
}).split("&").join("\n\t&")
|
|
29
|
+
],
|
|
30
|
+
body: []
|
|
31
|
+
};
|
|
32
|
+
} else {
|
|
33
|
+
return {
|
|
34
|
+
querystring: [],
|
|
35
|
+
body: [
|
|
36
|
+
"",
|
|
37
|
+
await prettier.format(JSON.stringify(reqObject), {
|
|
38
|
+
parser: "json"
|
|
39
|
+
})
|
|
40
|
+
]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
})();
|
|
44
|
+
return [
|
|
45
|
+
[
|
|
46
|
+
`${api.options.httpMethod ?? "GET"} {{baseUrl}}${prefix}${api.path}`,
|
|
47
|
+
...dataLines.querystring
|
|
48
|
+
].join("\n\t?"),
|
|
49
|
+
`Content-Type: ${api.options.contentType ?? "application/json"}`,
|
|
50
|
+
...dataLines.body
|
|
51
|
+
].join("\n");
|
|
52
|
+
}));
|
|
53
|
+
return {
|
|
54
|
+
...this.getTargetAndPath(),
|
|
55
|
+
body: lines.join("\n\n###\n\n"),
|
|
56
|
+
importKeys: []
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
zodTypeToReqDefault(zodType, name) {
|
|
60
|
+
if (zodType instanceof z.ZodObject) {
|
|
61
|
+
return Object.fromEntries(Object.keys(zodType.shape).map((key)=>[
|
|
62
|
+
key,
|
|
63
|
+
this.zodTypeToReqDefault(zodType.shape[key], key)
|
|
64
|
+
]));
|
|
65
|
+
} else if (zodType instanceof z.ZodArray) {
|
|
66
|
+
return [
|
|
67
|
+
this.zodTypeToReqDefault(zodType.element, name)
|
|
68
|
+
];
|
|
69
|
+
} else if (zodType instanceof z.ZodString) {
|
|
70
|
+
if (name.endsWith("_at") || name.endsWith("_date") || name === "range") {
|
|
71
|
+
return "2000-01-01";
|
|
72
|
+
} else {
|
|
73
|
+
return name.toUpperCase();
|
|
74
|
+
}
|
|
75
|
+
} else if (zodType instanceof z.ZodNumber) {
|
|
76
|
+
if (name === "num") {
|
|
77
|
+
return 24;
|
|
78
|
+
}
|
|
79
|
+
const minValue = zodType.minValue ?? 0;
|
|
80
|
+
return minValue > Number.MIN_SAFE_INTEGER ? minValue : 0;
|
|
81
|
+
} else if (zodType instanceof z.ZodBoolean) {
|
|
82
|
+
return false;
|
|
83
|
+
} else if (zodType instanceof z.ZodEnum) {
|
|
84
|
+
return zodType.options[0];
|
|
85
|
+
} else if (zodType instanceof z.ZodOptional) {
|
|
86
|
+
return this.zodTypeToReqDefault(zodType.def.innerType, name);
|
|
87
|
+
} else if (zodType instanceof z.ZodNullable) {
|
|
88
|
+
return null;
|
|
89
|
+
} else if (zodType instanceof z.ZodUnion) {
|
|
90
|
+
return this.zodTypeToReqDefault(zodType.def.options[0], name);
|
|
91
|
+
} else if (zodType instanceof z.ZodUnknown) {
|
|
92
|
+
return "unknown";
|
|
93
|
+
} else if (zodType instanceof z.ZodTuple) {
|
|
94
|
+
return zodType.def.items.map((item)=>this.zodTypeToReqDefault(item, name));
|
|
95
|
+
} else if (zodType instanceof z.ZodDate) {
|
|
96
|
+
return "2000-01-01";
|
|
97
|
+
} else if (zodType instanceof z.ZodLiteral) {
|
|
98
|
+
return zodType.value;
|
|
99
|
+
} else if (zodType instanceof z.ZodRecord || zodType instanceof z.ZodMap) {
|
|
100
|
+
const kvDef = zodType.def;
|
|
101
|
+
const key = this.zodTypeToReqDefault(kvDef.keyType, name);
|
|
102
|
+
const value = this.zodTypeToReqDefault(kvDef.valueType, name);
|
|
103
|
+
return {
|
|
104
|
+
[key]: value
|
|
105
|
+
};
|
|
106
|
+
} else if (zodType instanceof z.ZodSet) {
|
|
107
|
+
return [
|
|
108
|
+
this.zodTypeToReqDefault(zodType.def.valueType, name)
|
|
109
|
+
];
|
|
110
|
+
} else if (zodType instanceof z.ZodIntersection) {
|
|
111
|
+
return this.zodTypeToReqDefault(zodType.def.right, name);
|
|
112
|
+
} else if (zodType instanceof z.ZodDefault) {
|
|
113
|
+
return this.zodTypeToReqDefault(zodType.def.innerType, name);
|
|
114
|
+
} else {
|
|
115
|
+
// console.log(zodType);
|
|
116
|
+
return `unknown-${zodType.type}`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
resolveApiParams(api, references) {
|
|
120
|
+
const reqType = getZodObjectFromApi(api, references);
|
|
121
|
+
try {
|
|
122
|
+
const def = this.zodTypeToReqDefault(reqType, "unknownName");
|
|
123
|
+
return def;
|
|
124
|
+
} catch (error) {
|
|
125
|
+
console.error(error);
|
|
126
|
+
throw new Error(`Invalid zod type detected on ${api.modelName}:${api.methodName}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvZ2VuZXJhdGVkX2h0dHAudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHFzIGZyb20gXCJxc1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0Wm9kT2JqZWN0RnJvbUFwaSB9IGZyb20gXCIuLi8uLi9hcGkvY29kZS1jb252ZXJ0ZXJzXCI7XG5pbXBvcnQgeyBFeHRlbmRlZEFwaSB9IGZyb20gXCIuLi8uLi9hcGkvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcbmltcG9ydCBwcmV0dGllciBmcm9tIFwicHJldHRpZXJcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGkvc29uYW11XCI7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fZ2VuZXJhdGVkX2h0dHAgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiZ2VuZXJhdGVkX2h0dHBcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKCkge1xuICAgIGNvbnN0IHsgZGlyIH0gPSBTb25hbXUuY29uZmlnLmFwaTtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2FwcGxpY2F0aW9uYCxcbiAgICAgIHBhdGg6IGBzb25hbXUuZ2VuZXJhdGVkLmh0dHBgLFxuICAgIH07XG4gIH1cblxuICBhc3luYyByZW5kZXIoe306IFRlbXBsYXRlT3B0aW9uc1tcImdlbmVyYXRlZF9odHRwXCJdKSB7XG4gICAgY29uc3Qge1xuICAgICAgc3luY2VyOiB7IHR5cGVzLCBhcGlzIH0sXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXBpOiB7XG4gICAgICAgICAgcm91dGU6IHsgcHJlZml4IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0gPSBTb25hbXU7XG5cbiAgICBjb25zdCBsaW5lcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgYXBpcy5tYXAoYXN5bmMgKGFwaSkgPT4ge1xuICAgICAgICBjb25zdCByZXFPYmplY3QgPSB0aGlzLnJlc29sdmVBcGlQYXJhbXMoYXBpLCB0eXBlcyk7XG5cbiAgICAgICAgY29uc3QgZGF0YUxpbmVzID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICBpZiAoKGFwaS5vcHRpb25zLmh0dHBNZXRob2QgPz8gXCJHRVRcIikgPT09IFwiR0VUXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHF1ZXJ5c3RyaW5nOiBbXG4gICAgICAgICAgICAgICAgcXNcbiAgICAgICAgICAgICAgICAgIC5zdHJpbmdpZnkocmVxT2JqZWN0LCB7IGVuY29kZTogZmFsc2UgfSlcbiAgICAgICAgICAgICAgICAgIC5zcGxpdChcIiZcIilcbiAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXFx0JlwiKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgYm9keTogW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBxdWVyeXN0cmluZzogW10sXG4gICAgICAgICAgICAgIGJvZHk6IFtcbiAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgIGF3YWl0IHByZXR0aWVyLmZvcm1hdChKU09OLnN0cmluZ2lmeShyZXFPYmplY3QpLCB7XG4gICAgICAgICAgICAgICAgICBwYXJzZXI6IFwianNvblwiLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBbXG4gICAgICAgICAgICBgJHthcGkub3B0aW9ucy5odHRwTWV0aG9kID8/IFwiR0VUXCJ9IHt7YmFzZVVybH19JHtwcmVmaXh9JHthcGkucGF0aH1gLFxuICAgICAgICAgICAgLi4uZGF0YUxpbmVzLnF1ZXJ5c3RyaW5nLFxuICAgICAgICAgIF0uam9pbihcIlxcblxcdD9cIiksXG4gICAgICAgICAgYENvbnRlbnQtVHlwZTogJHthcGkub3B0aW9ucy5jb250ZW50VHlwZSA/PyBcImFwcGxpY2F0aW9uL2pzb25cIn1gLFxuICAgICAgICAgIC4uLmRhdGFMaW5lcy5ib2R5LFxuICAgICAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKCksXG4gICAgICBib2R5OiBsaW5lcy5qb2luKFwiXFxuXFxuIyMjXFxuXFxuXCIpLFxuICAgICAgaW1wb3J0S2V5czogW10sXG4gICAgfTtcbiAgfVxuXG4gIHpvZFR5cGVUb1JlcURlZmF1bHQoem9kVHlwZTogei5ab2RUeXBlPHVua25vd24+LCBuYW1lOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0KSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBPYmplY3Qua2V5cyh6b2RUeXBlLnNoYXBlKS5tYXAoKGtleSkgPT4gW1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoem9kVHlwZS5zaGFwZVtrZXldLCBrZXkpLFxuICAgICAgICBdKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZEFycmF5KSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoXG4gICAgICAgICAgKHpvZFR5cGUgYXMgei5ab2RBcnJheTx6LlpvZFR5cGU+KS5lbGVtZW50LFxuICAgICAgICAgIG5hbWVcbiAgICAgICAgKSxcbiAgICAgIF07XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RTdHJpbmcpIHtcbiAgICAgIGlmIChuYW1lLmVuZHNXaXRoKFwiX2F0XCIpIHx8IG5hbWUuZW5kc1dpdGgoXCJfZGF0ZVwiKSB8fCBuYW1lID09PSBcInJhbmdlXCIpIHtcbiAgICAgICAgcmV0dXJuIFwiMjAwMC0wMS0wMVwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bWJlcikge1xuICAgICAgaWYgKG5hbWUgPT09IFwibnVtXCIpIHtcbiAgICAgICAgcmV0dXJuIDI0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW5WYWx1ZSA9IHpvZFR5cGUubWluVmFsdWUgPz8gMDtcbiAgICAgIHJldHVybiBtaW5WYWx1ZSA+IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSID8gbWluVmFsdWUgOiAwO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kQm9vbGVhbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRW51bSkge1xuICAgICAgcmV0dXJuIHpvZFR5cGUub3B0aW9uc1swXTtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsKSB7XG4gICAgICByZXR1cm4gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KFxuICAgICAgICAoem9kVHlwZSBhcyB6LlpvZE9wdGlvbmFsPHouWm9kVHlwZT4pLmRlZi5pbm5lclR5cGUsXG4gICAgICAgIG5hbWVcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdWxsYWJsZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RVbmlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuem9kVHlwZVRvUmVxRGVmYXVsdChcbiAgICAgICAgKHpvZFR5cGUgYXMgei5ab2RVbmlvbjx6LlpvZFR5cGVbXT4pLmRlZi5vcHRpb25zWzBdLFxuICAgICAgICBuYW1lXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kVW5rbm93bikge1xuICAgICAgcmV0dXJuIFwidW5rbm93blwiO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kVHVwbGUpIHtcbiAgICAgIHJldHVybiB6b2RUeXBlLmRlZi5pdGVtcy5tYXAoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KGl0ZW0sIG5hbWUpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRGF0ZSkge1xuICAgICAgcmV0dXJuIFwiMjAwMC0wMS0wMVwiO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTGl0ZXJhbCkge1xuICAgICAgcmV0dXJuIHpvZFR5cGUudmFsdWU7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RSZWNvcmQgfHwgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTWFwKSB7XG4gICAgICBjb25zdCBrdkRlZiA9IChcbiAgICAgICAgem9kVHlwZSBhcyB6LlpvZFJlY29yZDxhbnksIHouWm9kVHlwZT4gfCB6LlpvZE1hcDx6LlpvZFR5cGUsIHouWm9kVHlwZT5cbiAgICAgICkuZGVmO1xuICAgICAgY29uc3Qga2V5ID0gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KGt2RGVmLmtleVR5cGUsIG5hbWUpIGFzIGFueTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KGt2RGVmLnZhbHVlVHlwZSwgbmFtZSk7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZFNldCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KFxuICAgICAgICAgICh6b2RUeXBlIGFzIHouWm9kU2V0PHouWm9kVHlwZT4pLmRlZi52YWx1ZVR5cGUsXG4gICAgICAgICAgbmFtZVxuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZEludGVyc2VjdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuem9kVHlwZVRvUmVxRGVmYXVsdChcbiAgICAgICAgKHpvZFR5cGUgYXMgei5ab2RJbnRlcnNlY3Rpb248ei5ab2RUeXBlLCB6LlpvZFR5cGU+KS5kZWYucmlnaHQsXG4gICAgICAgIG5hbWVcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2REZWZhdWx0KSB7XG4gICAgICByZXR1cm4gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KFxuICAgICAgICAoem9kVHlwZSBhcyB6LlpvZERlZmF1bHQ8ei5ab2RUeXBlPikuZGVmLmlubmVyVHlwZSxcbiAgICAgICAgbmFtZVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29uc29sZS5sb2coem9kVHlwZSk7XG4gICAgICByZXR1cm4gYHVua25vd24tJHt6b2RUeXBlLnR5cGV9YDtcbiAgICB9XG4gIH1cblxuICByZXNvbHZlQXBpUGFyYW1zKFxuICAgIGFwaTogRXh0ZW5kZWRBcGksXG4gICAgcmVmZXJlbmNlczogeyBbdHlwZU5hbWU6IHN0cmluZ106IHouWm9kT2JqZWN0PGFueT4gfVxuICApOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSB7XG4gICAgY29uc3QgcmVxVHlwZSA9IGdldFpvZE9iamVjdEZyb21BcGkoYXBpLCByZWZlcmVuY2VzKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVmID0gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KHJlcVR5cGUsIFwidW5rbm93bk5hbWVcIikgYXMge1xuICAgICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBkZWY7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCB6b2QgdHlwZSBkZXRlY3RlZCBvbiAke2FwaS5tb2RlbE5hbWV9OiR7YXBpLm1ldGhvZE5hbWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJxcyIsInoiLCJnZXRab2RPYmplY3RGcm9tQXBpIiwiVGVtcGxhdGUiLCJwcmV0dGllciIsIlNvbmFtdSIsIlRlbXBsYXRlX19nZW5lcmF0ZWRfaHR0cCIsImdldFRhcmdldEFuZFBhdGgiLCJkaXIiLCJjb25maWciLCJhcGkiLCJ0YXJnZXQiLCJwYXRoIiwicmVuZGVyIiwic3luY2VyIiwidHlwZXMiLCJhcGlzIiwicm91dGUiLCJwcmVmaXgiLCJsaW5lcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJyZXFPYmplY3QiLCJyZXNvbHZlQXBpUGFyYW1zIiwiZGF0YUxpbmVzIiwib3B0aW9ucyIsImh0dHBNZXRob2QiLCJxdWVyeXN0cmluZyIsInN0cmluZ2lmeSIsImVuY29kZSIsInNwbGl0Iiwiam9pbiIsImJvZHkiLCJmb3JtYXQiLCJKU09OIiwicGFyc2VyIiwiY29udGVudFR5cGUiLCJpbXBvcnRLZXlzIiwiem9kVHlwZVRvUmVxRGVmYXVsdCIsInpvZFR5cGUiLCJuYW1lIiwiWm9kT2JqZWN0IiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJrZXlzIiwic2hhcGUiLCJrZXkiLCJab2RBcnJheSIsImVsZW1lbnQiLCJab2RTdHJpbmciLCJlbmRzV2l0aCIsInRvVXBwZXJDYXNlIiwiWm9kTnVtYmVyIiwibWluVmFsdWUiLCJOdW1iZXIiLCJNSU5fU0FGRV9JTlRFR0VSIiwiWm9kQm9vbGVhbiIsIlpvZEVudW0iLCJab2RPcHRpb25hbCIsImRlZiIsImlubmVyVHlwZSIsIlpvZE51bGxhYmxlIiwiWm9kVW5pb24iLCJab2RVbmtub3duIiwiWm9kVHVwbGUiLCJpdGVtcyIsIml0ZW0iLCJab2REYXRlIiwiWm9kTGl0ZXJhbCIsInZhbHVlIiwiWm9kUmVjb3JkIiwiWm9kTWFwIiwia3ZEZWYiLCJrZXlUeXBlIiwidmFsdWVUeXBlIiwiWm9kU2V0IiwiWm9kSW50ZXJzZWN0aW9uIiwicmlnaHQiLCJab2REZWZhdWx0IiwidHlwZSIsInJlZmVyZW5jZXMiLCJyZXFUeXBlIiwiZXJyb3IiLCJjb25zb2xlIiwiRXJyb3IiLCJtb2RlbE5hbWUiLCJtZXRob2ROYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxRQUFRLEtBQUs7QUFDcEIsU0FBU0MsQ0FBQyxRQUFRLE1BQU07QUFFeEIsU0FBU0MsbUJBQW1CLFFBQVEsK0JBQTRCO0FBRWhFLFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUN2QyxPQUFPQyxjQUFjLFdBQVc7QUFDaEMsU0FBU0MsTUFBTSxRQUFRLHNCQUFtQjtBQUUxQyxPQUFPLE1BQU1DLGlDQUFpQ0g7SUFDNUMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFJLG1CQUFtQjtRQUNqQixNQUFNLEVBQUVDLEdBQUcsRUFBRSxHQUFHSCxPQUFPSSxNQUFNLENBQUNDLEdBQUc7UUFFakMsT0FBTztZQUNMQyxRQUFRLEdBQUdILElBQUksZ0JBQWdCLENBQUM7WUFDaENJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztRQUMvQjtJQUNGO0lBRUEsTUFBTUMsT0FBTyxFQUFxQyxFQUFFO1FBQ2xELE1BQU0sRUFDSkMsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxFQUN2QlAsUUFBUSxFQUNOQyxLQUFLLEVBQ0hPLE9BQU8sRUFBRUMsTUFBTSxFQUFFLEVB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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { TemplateOptions } from "
|
|
2
|
-
import { Template } from "
|
|
1
|
+
import { TemplateOptions } from "../../types/types";
|
|
2
|
+
import { Template } from "../template";
|
|
3
3
|
import { SourceCode } from "./generated.template";
|
|
4
|
-
import { Entity } from "
|
|
4
|
+
import { Entity } from "../../entity/entity";
|
|
5
5
|
export declare class Template__generated_sso extends Template {
|
|
6
6
|
constructor();
|
|
7
7
|
getTargetAndPath(): {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated_sso.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/generated_sso.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,qBAAa,uBAAwB,SAAQ,QAAQ;;IAKnD,gBAAgB;;;;IAShB,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC;;;;;;;IA2E3C,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI;CAkCnE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { isManyToManyRelationProp } from "../../types/types.js";
|
|
2
|
+
import { EntityManager } from "../../entity/entity-manager.js";
|
|
3
|
+
import { Template } from "../template.js";
|
|
4
|
+
import inflection from "inflection";
|
|
5
|
+
import * as _ from "lodash-es";
|
|
6
|
+
import { nonNullable } from "../../utils/utils.js";
|
|
7
|
+
import { Sonamu } from "../../api/index.js";
|
|
8
|
+
export class Template__generated_sso extends Template {
|
|
9
|
+
constructor(){
|
|
10
|
+
super("generated_sso");
|
|
11
|
+
}
|
|
12
|
+
getTargetAndPath() {
|
|
13
|
+
const { dir } = Sonamu.config.api;
|
|
14
|
+
return {
|
|
15
|
+
target: `${dir}/src/application`,
|
|
16
|
+
path: `sonamu.generated.sso.ts`
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
render({}) {
|
|
20
|
+
const entityIds = EntityManager.getAllIds();
|
|
21
|
+
const entities = entityIds.map((id)=>EntityManager.get(id));
|
|
22
|
+
const sourceCodes = entities.map((entity)=>{
|
|
23
|
+
if (entity.parentId !== undefined || Object.keys(entity.subsets).length === 0) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const subsetKeys = Object.keys(entity.subsets);
|
|
27
|
+
const subsetQueryObject = subsetKeys.reduce((r, subsetKey)=>{
|
|
28
|
+
const subsetQuery = entity.getSubsetQuery(subsetKey);
|
|
29
|
+
r[subsetKey] = subsetQuery;
|
|
30
|
+
return r;
|
|
31
|
+
}, {});
|
|
32
|
+
const subsetKeyTypeName = `${entity.names.module}SubsetKey`;
|
|
33
|
+
return {
|
|
34
|
+
label: `SubsetQuery: ${entity.id}`,
|
|
35
|
+
lines: [
|
|
36
|
+
`export const ${inflection.camelize(entity.id, true)}SubsetQueries:{ [key in ${subsetKeyTypeName}]: SubsetQuery} = ${JSON.stringify(subsetQueryObject)};`,
|
|
37
|
+
""
|
|
38
|
+
],
|
|
39
|
+
importKeys: [
|
|
40
|
+
subsetKeyTypeName
|
|
41
|
+
]
|
|
42
|
+
};
|
|
43
|
+
}).filter(nonNullable);
|
|
44
|
+
// DatabaseSchema 생성
|
|
45
|
+
const dbSchemaSourceCode = this.getDatabaseSchemaSourceCode(entities);
|
|
46
|
+
if (dbSchemaSourceCode) {
|
|
47
|
+
sourceCodes.push(dbSchemaSourceCode);
|
|
48
|
+
}
|
|
49
|
+
const sourceCode = sourceCodes.reduce((result, ts)=>{
|
|
50
|
+
if (ts === null) {
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
lines: [
|
|
55
|
+
...result.lines,
|
|
56
|
+
`// ${ts.label}`,
|
|
57
|
+
...ts.lines,
|
|
58
|
+
""
|
|
59
|
+
],
|
|
60
|
+
importKeys: _.uniq([
|
|
61
|
+
...result.importKeys,
|
|
62
|
+
...ts.importKeys
|
|
63
|
+
])
|
|
64
|
+
};
|
|
65
|
+
}, {
|
|
66
|
+
lines: [],
|
|
67
|
+
importKeys: []
|
|
68
|
+
});
|
|
69
|
+
const body = sourceCode.lines.join("\n");
|
|
70
|
+
const isUsingManyToManyBaseSchema = body.includes("ManyToManyBaseSchema");
|
|
71
|
+
return {
|
|
72
|
+
...this.getTargetAndPath(),
|
|
73
|
+
body: sourceCode.lines.join("\n"),
|
|
74
|
+
importKeys: sourceCode.importKeys,
|
|
75
|
+
customHeaders: [
|
|
76
|
+
`import { SubsetQuery, ${isUsingManyToManyBaseSchema ? "ManyToManyBaseSchema" : ""} } from "sonamu";`
|
|
77
|
+
]
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
getDatabaseSchemaSourceCode(entities) {
|
|
81
|
+
if (entities.length === 0) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
const entitySchemaLines = entities.map((entity)=>`${entity.table}: ${entity.id}BaseSchema;`);
|
|
85
|
+
const joinTableSchemaLines = _.uniq(entities.flatMap((entity)=>entity.props.filter(isManyToManyRelationProp).map((prop)=>{
|
|
86
|
+
const fromTableKey = inflection.singularize(entity.table);
|
|
87
|
+
const toTableKey = inflection.singularize(EntityManager.get(prop.with).table);
|
|
88
|
+
return `${prop.joinTable}: ManyToManyBaseSchema<"${fromTableKey}", "${toTableKey}">;`;
|
|
89
|
+
})));
|
|
90
|
+
return {
|
|
91
|
+
label: `DatabaseSchema`,
|
|
92
|
+
lines: [
|
|
93
|
+
`declare module "sonamu" {`,
|
|
94
|
+
` export interface DatabaseSchemaExtend {`,
|
|
95
|
+
...entitySchemaLines,
|
|
96
|
+
...joinTableSchemaLines,
|
|
97
|
+
` }`,
|
|
98
|
+
`}`
|
|
99
|
+
],
|
|
100
|
+
importKeys: entities.map((entity)=>`${entity.id}BaseSchema`)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvZ2VuZXJhdGVkX3Nzby50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc01hbnlUb01hbnlSZWxhdGlvblByb3AsXG4gIFN1YnNldFF1ZXJ5LFxuICBUZW1wbGF0ZU9wdGlvbnMsXG59IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5pbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuaW1wb3J0IHsgU291cmNlQ29kZSB9IGZyb20gXCIuL2dlbmVyYXRlZC50ZW1wbGF0ZVwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBub25OdWxsYWJsZSB9IGZyb20gXCIuLi8uLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uLy4uL2FwaVwiO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19nZW5lcmF0ZWRfc3NvIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcImdlbmVyYXRlZF9zc29cIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKCkge1xuICAgIGNvbnN0IHsgZGlyIH0gPSBTb25hbXUuY29uZmlnLmFwaTtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2FwcGxpY2F0aW9uYCxcbiAgICAgIHBhdGg6IGBzb25hbXUuZ2VuZXJhdGVkLnNzby50c2AsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcih7fTogVGVtcGxhdGVPcHRpb25zW1wiZ2VuZXJhdGVkX3Nzb1wiXSkge1xuICAgIGNvbnN0IGVudGl0eUlkcyA9IEVudGl0eU1hbmFnZXIuZ2V0QWxsSWRzKCk7XG4gICAgY29uc3QgZW50aXRpZXMgPSBlbnRpdHlJZHMubWFwKChpZCkgPT4gRW50aXR5TWFuYWdlci5nZXQoaWQpKTtcblxuICAgIGNvbnN0IHNvdXJjZUNvZGVzOiBTb3VyY2VDb2RlW10gPSBlbnRpdGllc1xuICAgICAgLm1hcCgoZW50aXR5KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBlbnRpdHkucGFyZW50SWQgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgIE9iamVjdC5rZXlzKGVudGl0eS5zdWJzZXRzKS5sZW5ndGggPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Vic2V0S2V5cyA9IE9iamVjdC5rZXlzKGVudGl0eS5zdWJzZXRzKTtcbiAgICAgICAgY29uc3Qgc3Vic2V0UXVlcnlPYmplY3QgPSBzdWJzZXRLZXlzLnJlZHVjZShcbiAgICAgICAgICAociwgc3Vic2V0S2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJzZXRRdWVyeSA9IGVudGl0eS5nZXRTdWJzZXRRdWVyeShzdWJzZXRLZXkpO1xuICAgICAgICAgICAgcltzdWJzZXRLZXldID0gc3Vic2V0UXVlcnk7XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHt9IGFzIHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IFN1YnNldFF1ZXJ5O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBzdWJzZXRLZXlUeXBlTmFtZSA9IGAke2VudGl0eS5uYW1lcy5tb2R1bGV9U3Vic2V0S2V5YDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYWJlbDogYFN1YnNldFF1ZXJ5OiAke2VudGl0eS5pZH1gLFxuICAgICAgICAgIGxpbmVzOiBbXG4gICAgICAgICAgICBgZXhwb3J0IGNvbnN0ICR7aW5mbGVjdGlvbi5jYW1lbGl6ZShcbiAgICAgICAgICAgICAgZW50aXR5LmlkLFxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApfVN1YnNldFF1ZXJpZXM6eyBba2V5IGluICR7c3Vic2V0S2V5VHlwZU5hbWV9XTogU3Vic2V0UXVlcnl9ID0gJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgc3Vic2V0UXVlcnlPYmplY3RcbiAgICAgICAgICAgICl9O2AsXG4gICAgICAgICAgICBcIlwiLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgaW1wb3J0S2V5czogW3N1YnNldEtleVR5cGVOYW1lXSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKG5vbk51bGxhYmxlKTtcblxuICAgIC8vIERhdGFiYXNlU2NoZW1hIOyDneyEsVxuICAgIGNvbnN0IGRiU2NoZW1hU291cmNlQ29kZSA9IHRoaXMuZ2V0RGF0YWJhc2VTY2hlbWFTb3VyY2VDb2RlKGVudGl0aWVzKTtcbiAgICBpZiAoZGJTY2hlbWFTb3VyY2VDb2RlKSB7XG4gICAgICBzb3VyY2VDb2Rlcy5wdXNoKGRiU2NoZW1hU291cmNlQ29kZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlQ29kZSA9IHNvdXJjZUNvZGVzLnJlZHVjZShcbiAgICAgIChyZXN1bHQsIHRzKSA9PiB7XG4gICAgICAgIGlmICh0cyA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsaW5lczogWy4uLnJlc3VsdCEubGluZXMsIGAvLyAke3RzLmxhYmVsfWAsIC4uLnRzLmxpbmVzLCBcIlwiXSxcbiAgICAgICAgICBpbXBvcnRLZXlzOiBfLnVuaXEoWy4uLnJlc3VsdCEuaW1wb3J0S2V5cywgLi4udHMuaW1wb3J0S2V5c10pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGluZXM6IFtdLFxuICAgICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICAgIH0gYXMgT21pdDxTb3VyY2VDb2RlLCBcImxhYmVsXCI+XG4gICAgKTtcblxuICAgIGNvbnN0IGJvZHkgPSBzb3VyY2VDb2RlLmxpbmVzLmpvaW4oXCJcXG5cIik7XG4gICAgY29uc3QgaXNVc2luZ01hbnlUb01hbnlCYXNlU2NoZW1hID0gYm9keS5pbmNsdWRlcyhcIk1hbnlUb01hbnlCYXNlU2NoZW1hXCIpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgoKSxcbiAgICAgIGJvZHk6IHNvdXJjZUNvZGUubGluZXMuam9pbihcIlxcblwiKSxcbiAgICAgIGltcG9ydEtleXM6IHNvdXJjZUNvZGUuaW1wb3J0S2V5cyxcbiAgICAgIGN1c3RvbUhlYWRlcnM6IFtcbiAgICAgICAgYGltcG9ydCB7IFN1YnNldFF1ZXJ5LCAke2lzVXNpbmdNYW55VG9NYW55QmFzZVNjaGVtYSA/IFwiTWFueVRvTWFueUJhc2VTY2hlbWFcIiA6IFwiXCJ9IH0gZnJvbSBcInNvbmFtdVwiO2AsXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBnZXREYXRhYmFzZVNjaGVtYVNvdXJjZUNvZGUoZW50aXRpZXM6IEVudGl0eVtdKTogU291cmNlQ29kZSB8IG51bGwge1xuICAgIGlmIChlbnRpdGllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eVNjaGVtYUxpbmVzID0gZW50aXRpZXMubWFwKFxuICAgICAgKGVudGl0eSkgPT4gYCR7ZW50aXR5LnRhYmxlfTogJHtlbnRpdHkuaWR9QmFzZVNjaGVtYTtgXG4gICAgKTtcblxuICAgIGNvbnN0IGpvaW5UYWJsZVNjaGVtYUxpbmVzID0gXy51bmlxKFxuICAgICAgZW50aXRpZXMuZmxhdE1hcCgoZW50aXR5KSA9PlxuICAgICAgICBlbnRpdHkucHJvcHMuZmlsdGVyKGlzTWFueVRvTWFueVJlbGF0aW9uUHJvcCkubWFwKChwcm9wKSA9PiB7XG4gICAgICAgICAgY29uc3QgZnJvbVRhYmxlS2V5ID0gaW5mbGVjdGlvbi5zaW5ndWxhcml6ZShlbnRpdHkudGFibGUpO1xuICAgICAgICAgIGNvbnN0IHRvVGFibGVLZXkgPSBpbmZsZWN0aW9uLnNpbmd1bGFyaXplKFxuICAgICAgICAgICAgRW50aXR5TWFuYWdlci5nZXQocHJvcC53aXRoKS50YWJsZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGAke3Byb3Auam9pblRhYmxlfTogTWFueVRvTWFueUJhc2VTY2hlbWE8XCIke2Zyb21UYWJsZUtleX1cIiwgXCIke3RvVGFibGVLZXl9XCI+O2A7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDogYERhdGFiYXNlU2NoZW1hYCxcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIGBkZWNsYXJlIG1vZHVsZSBcInNvbmFtdVwiIHtgLFxuICAgICAgICBgICBleHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlU2NoZW1hRXh0ZW5kIHtgLFxuICAgICAgICAuLi5lbnRpdHlTY2hlbWFMaW5lcyxcbiAgICAgICAgLi4uam9pblRhYmxlU2NoZW1hTGluZXMsXG4gICAgICAgIGAgIH1gLFxuICAgICAgICBgfWAsXG4gICAgICBdLFxuICAgICAgaW1wb3J0S2V5czogZW50aXRpZXMubWFwKChlbnRpdHkpID0+IGAke2VudGl0eS5pZH1CYXNlU2NoZW1hYCksXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImlzTWFueVRvTWFueVJlbGF0aW9uUHJvcCIsIkVudGl0eU1hbmFnZXIiLCJUZW1wbGF0ZSIsImluZmxlY3Rpb24iLCJfIiwibm9uTnVsbGFibGUiLCJTb25hbXUiLCJUZW1wbGF0ZV9fZ2VuZXJhdGVkX3NzbyIsImdldFRhcmdldEFuZFBhdGgiLCJkaXIiLCJjb25maWciLCJhcGkiLCJ0YXJnZXQiLCJwYXRoIiwicmVuZGVyIiwiZW50aXR5SWRzIiwiZ2V0QWxsSWRzIiwiZW50aXRpZXMiLCJtYXAiLCJpZCIsImdldCIsInNvdXJjZUNvZGVzIiwiZW50aXR5IiwicGFyZW50SWQiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJrZXlzIiwic3Vic2V0cyIsImxlbmd0aCIsInN1YnNldEtleXMiLCJzdWJzZXRRdWVyeU9iamVjdCIsInJlZHVjZSIsInIiLCJzdWJzZXRLZXkiLCJzdWJzZXRRdWVyeSIsImdldFN1YnNldFF1ZXJ5Iiwic3Vic2V0S2V5VHlwZU5hbWUiLCJuYW1lcyIsIm1vZHVsZSIsImxhYmVsIiwibGluZXMiLCJjYW1lbGl6ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpbXBvcnRLZXlzIiwiZmlsdGVyIiwiZGJTY2hlbWFTb3VyY2VDb2RlIiwiZ2V0RGF0YWJhc2VTY2hlbWFTb3VyY2VDb2RlIiwicHVzaCIsInNvdXJjZUNvZGUiLCJyZXN1bHQiLCJ0cyIsInVuaXEiLCJib2R5Iiwiam9pbiIsImlzVXNpbmdNYW55VG9NYW55QmFzZVNjaGVtYSIsImluY2x1ZGVzIiwiY3VzdG9tSGVhZGVycyIsImVudGl0eVNjaGVtYUxpbmVzIiwidGFibGUiLCJqb2luVGFibGVTY2hlbWFMaW5lcyIsImZsYXRNYXAiLCJwcm9wcyIsInByb3AiLCJmcm9tVGFibGVLZXkiLCJzaW5ndWxhcml6ZSIsInRvVGFibGVLZXkiLCJ3aXRoIiwiam9pblRhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSx3QkFBd0IsUUFHbkIsdUJBQW9CO0FBQzNCLFNBQVNDLGFBQWEsUUFBUSxpQ0FBOEI7QUFDNUQsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBQ3ZDLE9BQU9DLGdCQUFnQixhQUFhO0FBRXBDLFlBQVlDLE9BQU8sWUFBWTtBQUMvQixTQUFTQyxXQUFXLFFBQVEsdUJBQW9CO0FBQ2hELFNBQVNDLE1BQU0sUUFBUSxxQkFBWTtBQUduQyxPQUFPLE1BQU1DLGdDQUFnQ0w7SUFDM0MsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFN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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TemplateOptions } from "
|
|
2
|
-
import { EntityNamesRecord } from "
|
|
3
|
-
import { Template } from "
|
|
1
|
+
import { TemplateOptions } from "../../types/types";
|
|
2
|
+
import { EntityNamesRecord } from "../../entity/entity-manager";
|
|
3
|
+
import { Template } from "../template";
|
|
4
4
|
export declare class Template__init_types extends Template {
|
|
5
5
|
constructor();
|
|
6
6
|
getTargetAndPath(names: EntityNamesRecord): {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init_types.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/init_types.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,oBAAqB,SAAQ,QAAQ;;IAKhD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IASzC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,YAAY,CAAC;;;;;;CA4BnD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { EntityManager } from "../../entity/entity-manager.js";
|
|
2
|
+
import { Template } from "../template.js";
|
|
3
|
+
import { Sonamu } from "../../api/index.js";
|
|
4
|
+
export class Template__init_types extends Template {
|
|
5
|
+
constructor(){
|
|
6
|
+
super("init_types");
|
|
7
|
+
}
|
|
8
|
+
getTargetAndPath(names) {
|
|
9
|
+
const { dir } = Sonamu.config.api;
|
|
10
|
+
return {
|
|
11
|
+
target: `${dir}/src/application`,
|
|
12
|
+
path: `${names.fs}/${names.fs}.types.ts`
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
render({ entityId }) {
|
|
16
|
+
const names = EntityManager.getNamesFromId(entityId);
|
|
17
|
+
const hasCreatedAt = EntityManager.get(entityId).props.find((prop)=>prop.name === "created_at") !== undefined;
|
|
18
|
+
return {
|
|
19
|
+
...this.getTargetAndPath(names),
|
|
20
|
+
body: `
|
|
21
|
+
import { z } from "zod";
|
|
22
|
+
import { ${entityId}BaseSchema, ${entityId}BaseListParams } from "../sonamu.generated";
|
|
23
|
+
|
|
24
|
+
// ${entityId} - ListParams
|
|
25
|
+
export const ${entityId}ListParams = ${entityId}BaseListParams;
|
|
26
|
+
export type ${entityId}ListParams = z.infer<typeof ${entityId}ListParams>;
|
|
27
|
+
|
|
28
|
+
// ${entityId} - SaveParams
|
|
29
|
+
export const ${entityId}SaveParams = ${entityId}BaseSchema.partial({ id: true${hasCreatedAt ? ", created_at: true" : ""} });
|
|
30
|
+
export type ${entityId}SaveParams = z.infer<typeof ${entityId}SaveParams>;
|
|
31
|
+
|
|
32
|
+
`.trim(),
|
|
33
|
+
importKeys: []
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvaW5pdF90eXBlcy50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGlcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19pbml0X3R5cGVzIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcImluaXRfdHlwZXNcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCkge1xuICAgIGNvbnN0IHsgZGlyIH0gPSBTb25hbXUuY29uZmlnLmFwaTtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2FwcGxpY2F0aW9uYCxcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzfS8ke25hbWVzLmZzfS50eXBlcy50c2AsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcih7IGVudGl0eUlkIH06IFRlbXBsYXRlT3B0aW9uc1tcImluaXRfdHlwZXNcIl0pIHtcbiAgICBjb25zdCBuYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQoZW50aXR5SWQpO1xuXG4gICAgY29uc3QgaGFzQ3JlYXRlZEF0ID1cbiAgICAgIEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKS5wcm9wcy5maW5kKFxuICAgICAgICAocHJvcCkgPT4gcHJvcC5uYW1lID09PSBcImNyZWF0ZWRfYXRcIlxuICAgICAgKSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0VGFyZ2V0QW5kUGF0aChuYW1lcyksXG4gICAgICBib2R5OiBgXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgJHtlbnRpdHlJZH1CYXNlU2NoZW1hLCAke2VudGl0eUlkfUJhc2VMaXN0UGFyYW1zIH0gZnJvbSBcIi4uL3NvbmFtdS5nZW5lcmF0ZWRcIjtcblxuLy8gJHtlbnRpdHlJZH0gLSBMaXN0UGFyYW1zXG5leHBvcnQgY29uc3QgJHtlbnRpdHlJZH1MaXN0UGFyYW1zID0gJHtlbnRpdHlJZH1CYXNlTGlzdFBhcmFtcztcbmV4cG9ydCB0eXBlICR7ZW50aXR5SWR9TGlzdFBhcmFtcyA9IHouaW5mZXI8dHlwZW9mICR7ZW50aXR5SWR9TGlzdFBhcmFtcz47XG5cbi8vICR7ZW50aXR5SWR9IC0gU2F2ZVBhcmFtc1xuZXhwb3J0IGNvbnN0ICR7ZW50aXR5SWR9U2F2ZVBhcmFtcyA9ICR7ZW50aXR5SWR9QmFzZVNjaGVtYS5wYXJ0aWFsKHsgaWQ6IHRydWUke1xuICAgICAgICBoYXNDcmVhdGVkQXQgPyBcIiwgY3JlYXRlZF9hdDogdHJ1ZVwiIDogXCJcIlxuICAgICAgfSB9KTtcbmV4cG9ydCB0eXBlICR7ZW50aXR5SWR9U2F2ZVBhcmFtcyA9IHouaW5mZXI8dHlwZW9mICR7ZW50aXR5SWR9U2F2ZVBhcmFtcz47XG5cbiAgICAgIGAudHJpbSgpLFxuICAgICAgaW1wb3J0S2V5czogW10sXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVudGl0eU1hbmFnZXIiLCJUZW1wbGF0ZSIsIlNvbmFtdSIsIlRlbXBsYXRlX19pbml0X3R5cGVzIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwiZGlyIiwiY29uZmlnIiwiYXBpIiwidGFyZ2V0IiwicGF0aCIsImZzIiwicmVuZGVyIiwiZW50aXR5SWQiLCJnZXROYW1lc0Zyb21JZCIsImhhc0NyZWF0ZWRBdCIsImdldCIsInByb3BzIiwiZmluZCIsInByb3AiLCJuYW1lIiwidW5kZWZpbmVkIiwiYm9keSIsInRyaW0iLCJpbXBvcnRLZXlzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxhQUFhLFFBQTJCLGlDQUE4QjtBQUMvRSxTQUFTQyxRQUFRLFFBQVEsaUJBQWM7QUFDdkMsU0FBU0MsTUFBTSxRQUFRLHFCQUFZO0FBRW5DLE9BQU8sTUFBTUMsNkJBQTZCRjtJQUN4QyxhQUFjO1FBQ1osS0FBSyxDQUFDO0lBQ1I7SUFFQUcsaUJBQWlCQyxLQUF3QixFQUFFO1FBQ3pDLE1BQU0sRUFBRUMsR0FBRyxFQUFFLEdBQUdKLE9BQU9LLE1BQU0sQ0FBQ0MsR0FBRztRQUVqQyxPQUFPO1lBQ0xDLFFBQVEsR0FBR0gsSUFBSSxnQkFBZ0IsQ0FBQztZQUNoQ0ksTUFBTSxHQUFHTCxNQUFNTSxFQUFFLENBQUMsQ0FBQyxFQUFFTixNQUFNTSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQzFDO0lBQ0Y7SUFFQUMsT0FBTyxFQUFFQyxRQUFRLEVBQWlDLEVBQUU7UUFDbEQsTUFBTVIsUUFBUUwsY0FBY2MsY0FBYyxDQUFDRDtRQUUzQyxNQUFNRSxlQUNKZixjQUFjZ0IsR0FBRyxDQUFDSCxVQUFVSSxLQUFLLENBQUNDLElBQUksQ0FDcEMsQ0FBQ0MsT0FBU0EsS0FBS0MsSUFBSSxLQUFLLGtCQUNwQkM7UUFFUixPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUNqQixnQkFBZ0IsQ0FBQ0MsTUFBTTtZQUMvQmlCLE1BQU0sQ0FBQzs7U0FFSixFQUFFVCxTQUFTLFlBQVksRUFBRUEsU0FBUzs7R0FFeEMsRUFBRUEsU0FBUzthQUNELEVBQUVBLFNBQVMsYUFBYSxFQUFFQSxTQUFTO1lBQ3BDLEVBQUVBLFNBQVMsNEJBQTRCLEVBQUVBLFNBQVM7O0dBRTNELEVBQUVBLFNBQVM7YUFDRCxFQUFFQSxTQUFTLGFBQWEsRUFBRUEsU0FBUyw2QkFBNkIsRUFDckVFLGVBQWUsdUJBQXVCLEdBQ3ZDO1lBQ0ssRUFBRUYsU0FBUyw0QkFBNEIsRUFBRUEsU0FBUzs7TUFFeEQsQ0FBQyxDQUFDVSxJQUFJO1lBQ05DLFlBQVksRUFBRTtRQUNoQjtJQUNGO0FBQ0YifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TemplateOptions } from "../../types/types";
|
|
2
|
+
import { EntityNamesRecord } from "../../entity/entity-manager";
|
|
3
|
+
import { Template } from "../template";
|
|
4
|
+
export declare class Template__model extends Template {
|
|
5
|
+
constructor();
|
|
6
|
+
getTargetAndPath(names: EntityNamesRecord): {
|
|
7
|
+
target: string;
|
|
8
|
+
path: string;
|
|
9
|
+
};
|
|
10
|
+
render({ entityId }: TemplateOptions["model"]): Promise<{
|
|
11
|
+
body: string;
|
|
12
|
+
importKeys: never[];
|
|
13
|
+
target: string;
|
|
14
|
+
path: string;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=model.template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/model.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,qBAAa,eAAgB,SAAQ,QAAQ;;IAK3C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IASnC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC;;;;;;CA2JpD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { EntityManager } from "../../entity/entity-manager.js";
|
|
2
|
+
import { Template } from "../template.js";
|
|
3
|
+
import { Template__view_list } from "./view_list.template.js";
|
|
4
|
+
import { Sonamu } from "../../api/index.js";
|
|
5
|
+
import { getZodTypeById, zodTypeToRenderingNode } from "../zod-converter.js";
|
|
6
|
+
export class Template__model extends Template {
|
|
7
|
+
constructor(){
|
|
8
|
+
super("model");
|
|
9
|
+
}
|
|
10
|
+
getTargetAndPath(names) {
|
|
11
|
+
const { dir } = Sonamu.config.api;
|
|
12
|
+
return {
|
|
13
|
+
target: `${dir}/src/application`,
|
|
14
|
+
path: `${names.fs}/${names.fs}.model.ts`
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
async render({ entityId }) {
|
|
18
|
+
const listParamsZodType = await getZodTypeById(`${entityId}ListParams`);
|
|
19
|
+
const listParamsNode = zodTypeToRenderingNode(listParamsZodType);
|
|
20
|
+
const names = EntityManager.getNamesFromId(entityId);
|
|
21
|
+
const entity = EntityManager.get(entityId);
|
|
22
|
+
const vlTpl = new Template__view_list();
|
|
23
|
+
if (listParamsNode?.children === undefined) {
|
|
24
|
+
throw new Error(`listParamsNode가 없습니다. ${entityId}`);
|
|
25
|
+
}
|
|
26
|
+
const def = vlTpl.getDefault(listParamsNode.children);
|
|
27
|
+
return {
|
|
28
|
+
...this.getTargetAndPath(names),
|
|
29
|
+
body: `
|
|
30
|
+
import { BaseModelClass, ListResult, asArray, NotFoundException, BadRequestException, api } from 'sonamu';
|
|
31
|
+
import {
|
|
32
|
+
${entityId}SubsetKey,
|
|
33
|
+
${entityId}SubsetMapping,
|
|
34
|
+
} from "../sonamu.generated";
|
|
35
|
+
import {
|
|
36
|
+
${names.camel}SubsetQueries,
|
|
37
|
+
} from "../sonamu.generated.sso";
|
|
38
|
+
import { ${entityId}ListParams, ${entityId}SaveParams } from "./${names.fs}.types";
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
${entityId} Model
|
|
42
|
+
*/
|
|
43
|
+
class ${entityId}ModelClass extends BaseModelClass {
|
|
44
|
+
modelName = "${entityId}";
|
|
45
|
+
|
|
46
|
+
@api({ httpMethod: "GET", clients: ["axios", "swr"], resourceName: "${entityId}" })
|
|
47
|
+
async findById<T extends ${entityId}SubsetKey>(
|
|
48
|
+
subset: T,
|
|
49
|
+
id: number
|
|
50
|
+
): Promise<${entityId}SubsetMapping[T]> {
|
|
51
|
+
const { rows } = await this.findMany(subset, {
|
|
52
|
+
id,
|
|
53
|
+
num: 1,
|
|
54
|
+
page: 1,
|
|
55
|
+
});
|
|
56
|
+
if (!rows[0]) {
|
|
57
|
+
throw new NotFoundException(\`존재하지 않는 ${names.capital} ID \${id}\`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return rows[0];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
async findOne<T extends ${entityId}SubsetKey>(
|
|
64
|
+
subset: T,
|
|
65
|
+
listParams: ${entityId}ListParams
|
|
66
|
+
): Promise<${entityId}SubsetMapping[T] | null> {
|
|
67
|
+
const { rows } = await this.findMany(subset, {
|
|
68
|
+
...listParams,
|
|
69
|
+
num: 1,
|
|
70
|
+
page: 1,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
return rows[0] ?? null;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@api({ httpMethod: "GET", clients: ["axios", "swr"], resourceName: "${names.capitalPlural}" })
|
|
77
|
+
async findMany<T extends ${entityId}SubsetKey>(
|
|
78
|
+
subset: T,
|
|
79
|
+
params: ${entityId}ListParams = {}
|
|
80
|
+
): Promise<ListResult<${entityId}SubsetMapping[T]>> {
|
|
81
|
+
// params with defaults
|
|
82
|
+
params = {
|
|
83
|
+
num: 24,
|
|
84
|
+
page: 1,
|
|
85
|
+
search: "${def.search}",
|
|
86
|
+
orderBy: "${def.orderBy}",
|
|
87
|
+
...params,
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// build queries
|
|
91
|
+
let { rows, total } = await this.runSubsetQuery({
|
|
92
|
+
subset,
|
|
93
|
+
params,
|
|
94
|
+
subsetQuery: ${names.camel}SubsetQueries[subset],
|
|
95
|
+
build: ({ qb }) => {
|
|
96
|
+
// id
|
|
97
|
+
if (params.id) {
|
|
98
|
+
qb.whereIn("${entity.table}.id", asArray(params.id));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// search-keyword
|
|
102
|
+
if (params.search && params.keyword && params.keyword.length > 0) {
|
|
103
|
+
if (params.search === "id") {
|
|
104
|
+
qb.where("${entity.table}.id", params.keyword);
|
|
105
|
+
// } else if (params.search === "field") {
|
|
106
|
+
// qb.where("${entity.table}.field", "like", \`%\${params.keyword}%\`);
|
|
107
|
+
} else {
|
|
108
|
+
throw new BadRequestException(
|
|
109
|
+
\`구현되지 않은 검색 필드 \${params.search}\`
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// orderBy
|
|
115
|
+
if (params.orderBy) {
|
|
116
|
+
// default orderBy
|
|
117
|
+
const [orderByField, orderByDirec] = params.orderBy.split("-");
|
|
118
|
+
qb.orderBy("${entity.table}." + orderByField, orderByDirec);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return qb;
|
|
122
|
+
},
|
|
123
|
+
debug: false,
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
rows,
|
|
128
|
+
total,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@api({ httpMethod: "POST" })
|
|
133
|
+
async save(
|
|
134
|
+
spa: ${entityId}SaveParams[]
|
|
135
|
+
): Promise<number[]> {
|
|
136
|
+
const wdb = this.getPuri("w");
|
|
137
|
+
|
|
138
|
+
// register
|
|
139
|
+
spa.map((sp) => {
|
|
140
|
+
wdb.ubRegister("${entity.table}", sp);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// transaction
|
|
144
|
+
return wdb.transaction(async (trx) => {
|
|
145
|
+
const ids = await trx.ubUpsert("${entity.table}");
|
|
146
|
+
|
|
147
|
+
return ids;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
@api({ httpMethod: "POST", guards: [ "admin" ] })
|
|
152
|
+
async del(ids: number[]): Promise<number> {
|
|
153
|
+
const wdb = this.getPuri("w");
|
|
154
|
+
|
|
155
|
+
// transaction
|
|
156
|
+
await wdb.transaction(async (trx) => {
|
|
157
|
+
return trx.table("${entity.table}").whereIn("${entity.table}.id", ids).delete();
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
return ids.length;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export const ${entityId}Model = new ${entityId}ModelClass();
|
|
165
|
+
`.trim(),
|
|
166
|
+
importKeys: []
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvbW9kZWwudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCBFbnRpdHlOYW1lc1JlY29yZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZV9fdmlld19saXN0IH0gZnJvbSBcIi4vdmlld19saXN0LnRlbXBsYXRlXCI7XG5pbXBvcnQgeyBTb25hbXUgfSBmcm9tIFwiLi4vLi4vYXBpXCI7XG5pbXBvcnQgeyBnZXRab2RUeXBlQnlJZCwgem9kVHlwZVRvUmVuZGVyaW5nTm9kZSB9IGZyb20gXCIuLi96b2QtY29udmVydGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fbW9kZWwgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwibW9kZWxcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCkge1xuICAgIGNvbnN0IHsgZGlyIH0gPSBTb25hbXUuY29uZmlnLmFwaTtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2FwcGxpY2F0aW9uYCxcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzfS8ke25hbWVzLmZzfS5tb2RlbC50c2AsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHJlbmRlcih7IGVudGl0eUlkIH06IFRlbXBsYXRlT3B0aW9uc1tcIm1vZGVsXCJdKSB7XG4gICAgY29uc3QgbGlzdFBhcmFtc1pvZFR5cGUgPSBhd2FpdCBnZXRab2RUeXBlQnlJZChgJHtlbnRpdHlJZH1MaXN0UGFyYW1zYCk7XG4gICAgY29uc3QgbGlzdFBhcmFtc05vZGUgPSB6b2RUeXBlVG9SZW5kZXJpbmdOb2RlKGxpc3RQYXJhbXNab2RUeXBlKTtcblxuICAgIGNvbnN0IG5hbWVzID0gRW50aXR5TWFuYWdlci5nZXROYW1lc0Zyb21JZChlbnRpdHlJZCk7XG4gICAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SWQpO1xuXG4gICAgY29uc3QgdmxUcGwgPSBuZXcgVGVtcGxhdGVfX3ZpZXdfbGlzdCgpO1xuICAgIGlmIChsaXN0UGFyYW1zTm9kZT8uY2hpbGRyZW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBsaXN0UGFyYW1zTm9kZeqwgCDsl4bsirXri4jri6QuICR7ZW50aXR5SWR9YCk7XG4gICAgfVxuICAgIGNvbnN0IGRlZiA9IHZsVHBsLmdldERlZmF1bHQobGlzdFBhcmFtc05vZGUuY2hpbGRyZW4pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0VGFyZ2V0QW5kUGF0aChuYW1lcyksXG4gICAgICBib2R5OiBgXG5pbXBvcnQgeyBCYXNlTW9kZWxDbGFzcywgTGlzdFJlc3VsdCwgYXNBcnJheSwgTm90Rm91bmRFeGNlcHRpb24sIEJhZFJlcXVlc3RFeGNlcHRpb24sIGFwaSB9IGZyb20gJ3NvbmFtdSc7XG5pbXBvcnQge1xuICAke2VudGl0eUlkfVN1YnNldEtleSxcbiAgJHtlbnRpdHlJZH1TdWJzZXRNYXBwaW5nLFxufSBmcm9tIFwiLi4vc29uYW11LmdlbmVyYXRlZFwiO1xuaW1wb3J0IHtcbiAgJHtuYW1lcy5jYW1lbH1TdWJzZXRRdWVyaWVzLFxufSBmcm9tIFwiLi4vc29uYW11LmdlbmVyYXRlZC5zc29cIjtcbmltcG9ydCB7ICR7ZW50aXR5SWR9TGlzdFBhcmFtcywgJHtlbnRpdHlJZH1TYXZlUGFyYW1zIH0gZnJvbSBcIi4vJHtuYW1lcy5mc30udHlwZXNcIjtcblxuLypcbiAgJHtlbnRpdHlJZH0gTW9kZWxcbiovXG5jbGFzcyAke2VudGl0eUlkfU1vZGVsQ2xhc3MgZXh0ZW5kcyBCYXNlTW9kZWxDbGFzcyB7XG4gIG1vZGVsTmFtZSA9IFwiJHtlbnRpdHlJZH1cIjtcblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJHRVRcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJzd3JcIl0sIHJlc291cmNlTmFtZTogXCIke2VudGl0eUlkfVwiIH0pXG4gIGFzeW5jIGZpbmRCeUlkPFQgZXh0ZW5kcyAke2VudGl0eUlkfVN1YnNldEtleT4oXG4gICAgc3Vic2V0OiBULFxuICAgIGlkOiBudW1iZXJcbiAgKTogUHJvbWlzZTwke2VudGl0eUlkfVN1YnNldE1hcHBpbmdbVF0+IHtcbiAgICBjb25zdCB7IHJvd3MgfSA9IGF3YWl0IHRoaXMuZmluZE1hbnkoc3Vic2V0LCB7XG4gICAgICBpZCxcbiAgICAgIG51bTogMSxcbiAgICAgIHBhZ2U6IDEsXG4gICAgfSk7XG4gICAgaWYgKCFyb3dzWzBdKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFeGNlcHRpb24oXFxg7KG07J6s7ZWY7KeAIOyViuuKlCAke25hbWVzLmNhcGl0YWx9IElEIFxcJHtpZH1cXGApO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzWzBdO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZTxUIGV4dGVuZHMgJHtlbnRpdHlJZH1TdWJzZXRLZXk+KFxuICAgIHN1YnNldDogVCxcbiAgICBsaXN0UGFyYW1zOiAke2VudGl0eUlkfUxpc3RQYXJhbXNcbiAgKTogUHJvbWlzZTwke2VudGl0eUlkfVN1YnNldE1hcHBpbmdbVF0gfCBudWxsPiB7XG4gICAgY29uc3QgeyByb3dzIH0gPSBhd2FpdCB0aGlzLmZpbmRNYW55KHN1YnNldCwge1xuICAgICAgLi4ubGlzdFBhcmFtcyxcbiAgICAgIG51bTogMSxcbiAgICAgIHBhZ2U6IDEsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcm93c1swXSA/PyBudWxsO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiR0VUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwic3dyXCJdLCByZXNvdXJjZU5hbWU6IFwiJHtuYW1lcy5jYXBpdGFsUGx1cmFsfVwiIH0pXG4gIGFzeW5jIGZpbmRNYW55PFQgZXh0ZW5kcyAke2VudGl0eUlkfVN1YnNldEtleT4oXG4gICAgc3Vic2V0OiBULFxuICAgIHBhcmFtczogJHtlbnRpdHlJZH1MaXN0UGFyYW1zID0ge31cbiAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PCR7ZW50aXR5SWR9U3Vic2V0TWFwcGluZ1tUXT4+IHtcbiAgICAvLyBwYXJhbXMgd2l0aCBkZWZhdWx0c1xuICAgIHBhcmFtcyA9IHtcbiAgICAgIG51bTogMjQsXG4gICAgICBwYWdlOiAxLFxuICAgICAgc2VhcmNoOiBcIiR7ZGVmLnNlYXJjaH1cIixcbiAgICAgIG9yZGVyQnk6IFwiJHtkZWYub3JkZXJCeX1cIixcbiAgICAgIC4uLnBhcmFtcyxcbiAgICB9O1xuXG4gICAgLy8gYnVpbGQgcXVlcmllc1xuICAgIGxldCB7IHJvd3MsIHRvdGFsIH0gPSBhd2FpdCB0aGlzLnJ1blN1YnNldFF1ZXJ5KHtcbiAgICAgIHN1YnNldCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHN1YnNldFF1ZXJ5OiAke25hbWVzLmNhbWVsfVN1YnNldFF1ZXJpZXNbc3Vic2V0XSxcbiAgICAgIGJ1aWxkOiAoeyBxYiB9KSA9PiB7XG4gICAgICAgIC8vIGlkXG4gICAgICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgICAgICBxYi53aGVyZUluKFwiJHtlbnRpdHkudGFibGV9LmlkXCIsIGFzQXJyYXkocGFyYW1zLmlkKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZWFyY2gta2V5d29yZFxuICAgICAgICBpZiAocGFyYW1zLnNlYXJjaCAmJiBwYXJhbXMua2V5d29yZCAmJiBwYXJhbXMua2V5d29yZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHBhcmFtcy5zZWFyY2ggPT09IFwiaWRcIikge1xuICAgICAgICAgICAgcWIud2hlcmUoXCIke2VudGl0eS50YWJsZX0uaWRcIiwgcGFyYW1zLmtleXdvcmQpO1xuICAgICAgICAgIC8vIH0gZWxzZSBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJmaWVsZFwiKSB7XG4gICAgICAgICAgLy8gICBxYi53aGVyZShcIiR7ZW50aXR5LnRhYmxlfS5maWVsZFwiLCBcImxpa2VcIiwgXFxgJVxcJHtwYXJhbXMua2V5d29yZH0lXFxgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFeGNlcHRpb24oXG4gICAgICAgICAgICAgIFxcYOq1rO2YhOuQmOyngCDslYrsnYAg6rKA7IOJIO2VhOuTnCBcXCR7cGFyYW1zLnNlYXJjaH1cXGBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gb3JkZXJCeVxuICAgICAgICBpZiAocGFyYW1zLm9yZGVyQnkpIHtcbiAgICAgICAgICAvLyBkZWZhdWx0IG9yZGVyQnlcbiAgICAgICAgICBjb25zdCBbb3JkZXJCeUZpZWxkLCBvcmRlckJ5RGlyZWNdID0gcGFyYW1zLm9yZGVyQnkuc3BsaXQoXCItXCIpO1xuICAgICAgICAgIHFiLm9yZGVyQnkoXCIke2VudGl0eS50YWJsZX0uXCIgKyBvcmRlckJ5RmllbGQsIG9yZGVyQnlEaXJlYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcWI7XG4gICAgICB9LFxuICAgICAgZGVidWc6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJvd3MsXG4gICAgICB0b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiUE9TVFwiIH0pXG4gIGFzeW5jIHNhdmUoXG4gICAgc3BhOiAke2VudGl0eUlkfVNhdmVQYXJhbXNbXVxuICApOiBQcm9taXNlPG51bWJlcltdPiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcblxuICAgIC8vIHJlZ2lzdGVyXG4gICAgc3BhLm1hcCgoc3ApID0+IHtcbiAgICAgIHdkYi51YlJlZ2lzdGVyKFwiJHtlbnRpdHkudGFibGV9XCIsIHNwKTtcbiAgICB9KTtcblxuICAgIC8vIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHdkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICBjb25zdCBpZHMgPSBhd2FpdCB0cngudWJVcHNlcnQoXCIke2VudGl0eS50YWJsZX1cIik7XG5cbiAgICAgIHJldHVybiBpZHM7XG4gICAgfSk7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJQT1NUXCIsIGd1YXJkczogWyBcImFkbWluXCIgXSB9KVxuICBhc3luYyBkZWwoaWRzOiBudW1iZXJbXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcblxuICAgIC8vIHRyYW5zYWN0aW9uXG4gICAgYXdhaXQgd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIHJldHVybiB0cngudGFibGUoXCIke2VudGl0eS50YWJsZX1cIikud2hlcmVJbihcIiR7ZW50aXR5LnRhYmxlfS5pZFwiLCBpZHMpLmRlbGV0ZSgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGlkcy5sZW5ndGg7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0ICR7ZW50aXR5SWR9TW9kZWwgPSBuZXcgJHtlbnRpdHlJZH1Nb2RlbENsYXNzKCk7XG4gICAgICBgLnRyaW0oKSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFbnRpdHlNYW5hZ2VyIiwiVGVtcGxhdGUiLCJUZW1wbGF0ZV9fdmlld19saXN0IiwiU29uYW11IiwiZ2V0Wm9kVHlwZUJ5SWQiLCJ6b2RUeXBlVG9SZW5kZXJpbmdOb2RlIiwiVGVtcGxhdGVfX21vZGVsIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwiZGlyIiwiY29uZmlnIiwiYXBpIiwidGFyZ2V0IiwicGF0aCIsImZzIiwicmVuZGVyIiwiZW50aXR5SWQiLCJsaXN0UGFyYW1zWm9kVHlwZSIsImxpc3RQYXJhbXNOb2RlIiwiZ2V0TmFtZXNGcm9tSWQiLCJlbnRpdHkiLCJnZXQiLCJ2bFRwbCIsImNoaWxkcmVuIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJkZWYiLCJnZXREZWZhdWx0IiwiYm9keSIsImNhbWVsIiwiY2FwaXRhbCIsImNhcGl0YWxQbHVyYWwiLCJzZWFyY2giLCJvcmRlckJ5IiwidGFibGUiLCJ0cmltIiwiaW1wb3J0S2V5cyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsYUFBYSxRQUEyQixpQ0FBOEI7QUFDL0UsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBQ3ZDLFNBQVNDLG1CQUFtQixRQUFRLDBCQUF1QjtBQUMzRCxTQUFTQyxNQUFNLFFBQVEscUJBQVk7QUFDbkMsU0FBU0MsY0FBYyxFQUFFQyxzQkFBc0IsUUFBUSxzQkFBbUI7QUFFMUUsT0FBTyxNQUFNQyx3QkFBd0JMO0lBQ25DLGFBQWM7UUFDWixLQUFLLENBQUM7SUFDUjtJQUVBTSxpQkFBaUJDLEtBQXdCLEVBQUU7UUFDekMsTUFBTSxFQUFFQyxHQUFHLEVBQUUsR0FBR04sT0FBT08sTUFBTSxDQUFDQyxHQUFHO1FBRWpDLE9BQU87WUFDTEMsUUFBUSxHQUFHSCxJQUFJLGdCQUFnQixDQUFDO1lBQ2hDSSxNQUFNLEdBQUdMLE1BQU1NLEVBQUUsQ0FBQyxDQUFDLEVBQUVOLE1BQU1NLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDMUM7SUFDRjtJQUVBLE1BQU1DLE9BQU8sRUFBRUMsUUFBUSxFQUE0QixFQUFFO1FBQ25ELE1BQU1DLG9CQUFvQixNQUFNYixlQUFlLEdBQUdZLFNBQVMsVUFBVSxDQUFDO1FBQ3RFLE1BQU1FLGlCQUFpQmIsdUJBQXVCWTtRQUU5QyxNQUFNVCxRQUFRUixjQUFjbUIsY0FBYyxDQUFDSDtRQUMzQyxNQUFNSSxTQUFTcEIsY0FBY3FCLEdBQUcsQ0FBQ0w7UUFFakMsTUFBTU0sUUFBUSxJQUFJcEI7UUFDbEIsSUFBSWdCLGdCQUFnQkssYUFBYUMsV0FBVztZQUMxQyxNQUFNLElBQUlDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRVQsVUFBVTtRQUNyRDtRQUNBLE1BQU1VLE1BQU1KLE1BQU1LLFVBQVUsQ0FBQ1QsZUFBZUssUUFBUTtRQUVwRCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUNoQixnQkFBZ0IsQ0FBQ0MsTUFBTTtZQUMvQm9CLE1BQU0sQ0FBQzs7O0VBR1gsRUFBRVosU0FBUztFQUNYLEVBQUVBLFNBQVM7OztFQUdYLEVBQUVSLE1BQU1xQixLQUFLLENBQUM7O1NBRVAsRUFBRWIsU0FBUyxZQUFZLEVBQUVBLFNBQVMscUJBQXFCLEVBQUVSLE1BQU1NLEVBQUUsQ0FBQzs7O0VBR3pFLEVBQUVFLFNBQVM7O01BRVAsRUFBRUEsU0FBUztlQUNGLEVBQUVBLFNBQVM7O3NFQUU0QyxFQUFFQSxTQUFTOzJCQUN0RCxFQUFFQSxTQUFTOzs7YUFHekIsRUFBRUEsU0FBUzs7Ozs7Ozs0Q0FPb0IsRUFBRVIsTUFBTXNCLE9BQU8sQ0FBQzs7Ozs7OzBCQU1sQyxFQUFFZCxTQUFTOztnQkFFckIsRUFBRUEsU0FBUzthQUNkLEVBQUVBLFNBQVM7Ozs7Ozs7Ozs7c0VBVThDLEVBQUVSLE1BQU11QixhQUFhLENBQUM7MkJBQ2pFLEVBQUVmLFNBQVM7O1lBRTFCLEVBQUVBLFNBQVM7d0JBQ0MsRUFBRUEsU0FBUzs7Ozs7ZUFLcEIsRUFBRVUsSUFBSU0sTUFBTSxDQUFDO2dCQUNaLEVBQUVOLElBQUlPLE9BQU8sQ0FBQzs7Ozs7Ozs7bUJBUVgsRUFBRXpCLE1BQU1xQixLQUFLLENBQUM7Ozs7c0JBSVgsRUFBRVQsT0FBT2MsS0FBSyxDQUFDOzs7Ozs7c0JBTWYsRUFBRWQsT0FBT2MsS0FBSyxDQUFDOzt5QkFFWixFQUFFZCxPQUFPYyxLQUFLLENBQUM7Ozs7Ozs7Ozs7OztzQkFZbEIsRUFBRWQsT0FBT2MsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O1NBZ0I1QixFQUFFbEIsU0FBUzs7Ozs7O3NCQU1FLEVBQUVJLE9BQU9jLEtBQUssQ0FBQzs7Ozs7c0NBS0MsRUFBRWQsT0FBT2MsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7d0JBWTdCLEVBQUVkLE9BQU9jLEtBQUssQ0FBQyxZQUFZLEVBQUVkLE9BQU9jLEtBQUssQ0FBQzs7Ozs7OzthQU9yRCxFQUFFbEIsU0FBUyxZQUFZLEVBQUVBLFNBQVM7TUFDekMsQ0FBQyxDQUFDbUIsSUFBSTtZQUNOQyxZQUFZLEVBQUU7UUFDaEI7SUFDRjtBQUNGIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TemplateOptions } from "
|
|
2
|
-
import { EntityNamesRecord } from "
|
|
3
|
-
import { Template } from "
|
|
1
|
+
import { TemplateOptions } from "../../types/types";
|
|
2
|
+
import { EntityNamesRecord } from "../../entity/entity-manager";
|
|
3
|
+
import { Template } from "../template";
|
|
4
4
|
export declare class Template__model_test extends Template {
|
|
5
5
|
constructor();
|
|
6
6
|
getTargetAndPath(names: EntityNamesRecord): {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model_test.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/model_test.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,oBAAqB,SAAQ,QAAQ;;IAKhD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IASzC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,YAAY,CAAC;;;;;;CAmBnD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EntityManager } from "../../entity/entity-manager.js";
|
|
2
|
+
import { Template } from "../template.js";
|
|
3
|
+
import { Sonamu } from "../../api/index.js";
|
|
4
|
+
export class Template__model_test extends Template {
|
|
5
|
+
constructor(){
|
|
6
|
+
super("model_test");
|
|
7
|
+
}
|
|
8
|
+
getTargetAndPath(names) {
|
|
9
|
+
const { dir } = Sonamu.config.api;
|
|
10
|
+
return {
|
|
11
|
+
target: `${dir}/src/application`,
|
|
12
|
+
path: `${names.fs}/${names.fs}.model.test.ts`
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
render({ entityId }) {
|
|
16
|
+
const names = EntityManager.getNamesFromId(entityId);
|
|
17
|
+
return {
|
|
18
|
+
...this.getTargetAndPath(names),
|
|
19
|
+
body: `
|
|
20
|
+
import { describe, test, expect } from "vitest";
|
|
21
|
+
import { bootstrap } from '../../testing/bootstrap';
|
|
22
|
+
|
|
23
|
+
bootstrap();
|
|
24
|
+
describe.skip("${entityId}ModelTest", () => {
|
|
25
|
+
test("Query", async () => {
|
|
26
|
+
expect(true).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
`.trim(),
|
|
30
|
+
importKeys: []
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvbW9kZWxfdGVzdC50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGlcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19tb2RlbF90ZXN0IGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIm1vZGVsX3Rlc3RcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCkge1xuICAgIGNvbnN0IHsgZGlyIH0gPSBTb25hbXUuY29uZmlnLmFwaTtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2FwcGxpY2F0aW9uYCxcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzfS8ke25hbWVzLmZzfS5tb2RlbC50ZXN0LnRzYCxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHsgZW50aXR5SWQgfTogVGVtcGxhdGVPcHRpb25zW1wibW9kZWxfdGVzdFwiXSkge1xuICAgIGNvbnN0IG5hbWVzID0gRW50aXR5TWFuYWdlci5nZXROYW1lc0Zyb21JZChlbnRpdHlJZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzKSxcbiAgICAgIGJvZHk6IGBcbmltcG9ydCB7IGRlc2NyaWJlLCB0ZXN0LCBleHBlY3QgfSBmcm9tIFwidml0ZXN0XCI7XG5pbXBvcnQgeyBib290c3RyYXAgfSBmcm9tICcuLi8uLi90ZXN0aW5nL2Jvb3RzdHJhcCc7XG5cbmJvb3RzdHJhcCgpO1xuZGVzY3JpYmUuc2tpcChcIiR7ZW50aXR5SWR9TW9kZWxUZXN0XCIsICgpID0+IHtcbiAgdGVzdChcIlF1ZXJ5XCIsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QodHJ1ZSkudG9CZSh0cnVlKTtcbiAgfSk7XG59KTtcbiAgICAgIGAudHJpbSgpLFxuICAgICAgaW1wb3J0S2V5czogW10sXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVudGl0eU1hbmFnZXIiLCJUZW1wbGF0ZSIsIlNvbmFtdSIsIlRlbXBsYXRlX19tb2RlbF90ZXN0IiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwiZGlyIiwiY29uZmlnIiwiYXBpIiwidGFyZ2V0IiwicGF0aCIsImZzIiwicmVuZGVyIiwiZW50aXR5SWQiLCJnZXROYW1lc0Zyb21JZCIsImJvZHkiLCJ0cmltIiwiaW1wb3J0S2V5cyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsYUFBYSxRQUEyQixpQ0FBOEI7QUFDL0UsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBQ3ZDLFNBQVNDLE1BQU0sUUFBUSxxQkFBWTtBQUVuQyxPQUFPLE1BQU1DLDZCQUE2QkY7SUFDeEMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFHLGlCQUFpQkMsS0FBd0IsRUFBRTtRQUN6QyxNQUFNLEVBQUVDLEdBQUcsRUFBRSxHQUFHSixPQUFPSyxNQUFNLENBQUNDLEdBQUc7UUFFakMsT0FBTztZQUNMQyxRQUFRLEdBQUdILElBQUksZ0JBQWdCLENBQUM7WUFDaENJLE1BQU0sR0FBR0wsTUFBTU0sRUFBRSxDQUFDLENBQUMsRUFBRU4sTUFBTU0sRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUMvQztJQUNGO0lBRUFDLE9BQU8sRUFBRUMsUUFBUSxFQUFpQyxFQUFFO1FBQ2xELE1BQU1SLFFBQVFMLGNBQWNjLGNBQWMsQ0FBQ0Q7UUFFM0MsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDVCxnQkFBZ0IsQ0FBQ0MsTUFBTTtZQUMvQlUsTUFBTSxDQUFDOzs7OztlQUtFLEVBQUVGLFNBQVM7Ozs7O01BS3BCLENBQUMsQ0FBQ0csSUFBSTtZQUNOQyxZQUFZLEVBQUU7UUFDaEI7SUFDRjtBQUNGIn0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { TemplateOptions } from "
|
|
2
|
-
import { EntityNamesRecord } from "
|
|
3
|
-
import { ApiParam } from "
|
|
4
|
-
import { ExtendedApi } from "
|
|
5
|
-
import { Template } from "
|
|
1
|
+
import { TemplateOptions } from "../../types/types";
|
|
2
|
+
import { EntityNamesRecord } from "../../entity/entity-manager";
|
|
3
|
+
import { ApiParam } from "../../types/types";
|
|
4
|
+
import { ExtendedApi } from "../../api/decorators";
|
|
5
|
+
import { Template } from "../template";
|
|
6
6
|
export declare class Template__service extends Template {
|
|
7
7
|
constructor();
|
|
8
8
|
getTargetAndPath(names: EntityNamesRecord): {
|
|
9
9
|
target: string;
|
|
10
10
|
path: string;
|
|
11
11
|
};
|
|
12
|
-
render({ namesRecord }: TemplateOptions["service"]
|
|
12
|
+
render({ namesRecord }: TemplateOptions["service"]): {
|
|
13
13
|
body: string;
|
|
14
14
|
importKeys: string[];
|
|
15
15
|
customHeaders: string[];
|