sonamu 0.2.38 → 0.2.40
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/bin/cli-wrapper.d.mts +1 -0
- package/dist/bin/cli-wrapper.d.ts +0 -2
- package/dist/bin/cli-wrapper.js +26 -23
- package/dist/bin/cli-wrapper.js.map +1 -1
- package/dist/bin/cli-wrapper.mjs +34 -0
- package/dist/bin/cli-wrapper.mjs.map +1 -0
- package/dist/bin/cli.d.mts +2 -0
- package/dist/bin/cli.d.ts +2 -2
- package/dist/bin/cli.js +856 -407
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +887 -0
- package/dist/bin/cli.mjs.map +1 -0
- package/dist/chunk-BPT5ZXMX.js +7444 -0
- package/dist/chunk-BPT5ZXMX.js.map +1 -0
- package/dist/chunk-JXJTFHF7.mjs +20 -0
- package/dist/chunk-JXJTFHF7.mjs.map +1 -0
- package/dist/chunk-OTFO46SP.mjs +7443 -0
- package/dist/chunk-OTFO46SP.mjs.map +1 -0
- package/dist/index.d.mts +1419 -0
- package/dist/index.d.ts +1419 -19
- package/dist/index.js +422 -32
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +427 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +1 -1
- package/tsup.config.js +8 -0
- package/dist/api/caster.d.ts +0 -10
- package/dist/api/caster.d.ts.map +0 -1
- package/dist/api/caster.js +0 -81
- package/dist/api/caster.js.map +0 -1
- package/dist/api/code-converters.d.ts +0 -22
- package/dist/api/code-converters.d.ts.map +0 -1
- package/dist/api/code-converters.js +0 -507
- package/dist/api/code-converters.js.map +0 -1
- package/dist/api/context.d.ts +0 -11
- package/dist/api/context.d.ts.map +0 -1
- package/dist/api/context.js +0 -3
- package/dist/api/context.js.map +0 -1
- package/dist/api/decorators.d.ts +0 -29
- package/dist/api/decorators.d.ts.map +0 -1
- package/dist/api/decorators.js +0 -26
- package/dist/api/decorators.js.map +0 -1
- package/dist/api/index.d.ts +0 -6
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -22
- package/dist/api/index.js.map +0 -1
- package/dist/api/init.d.ts +0 -42
- package/dist/api/init.d.ts.map +0 -1
- package/dist/api/init.js +0 -175
- package/dist/api/init.js.map +0 -1
- package/dist/api/sonamu.d.ts +0 -66
- package/dist/api/sonamu.d.ts.map +0 -1
- package/dist/api/sonamu.js +0 -204
- package/dist/api/sonamu.js.map +0 -1
- package/dist/bin/cli-wrapper.d.ts.map +0 -1
- package/dist/bin/cli.d.ts.map +0 -1
- package/dist/database/_batch_update.d.ts +0 -15
- package/dist/database/_batch_update.d.ts.map +0 -1
- package/dist/database/_batch_update.js +0 -89
- package/dist/database/_batch_update.js.map +0 -1
- package/dist/database/base-model.d.ts +0 -39
- package/dist/database/base-model.d.ts.map +0 -1
- package/dist/database/base-model.js +0 -270
- package/dist/database/base-model.js.map +0 -1
- package/dist/database/db.d.ts +0 -21
- package/dist/database/db.d.ts.map +0 -1
- package/dist/database/db.js +0 -99
- package/dist/database/db.js.map +0 -1
- package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +0 -2
- package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +0 -1
- package/dist/database/knex-plugins/knex-on-duplicate-update.js +0 -37
- package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
- package/dist/database/upsert-builder.d.ts +0 -34
- package/dist/database/upsert-builder.d.ts.map +0 -1
- package/dist/database/upsert-builder.js +0 -240
- package/dist/database/upsert-builder.js.map +0 -1
- package/dist/entity/entity-manager.d.ts +0 -32
- package/dist/entity/entity-manager.d.ts.map +0 -1
- package/dist/entity/entity-manager.js +0 -135
- package/dist/entity/entity-manager.js.map +0 -1
- package/dist/entity/entity-utils.d.ts +0 -61
- package/dist/entity/entity-utils.d.ts.map +0 -1
- package/dist/entity/entity-utils.js +0 -124
- package/dist/entity/entity-utils.js.map +0 -1
- package/dist/entity/entity.d.ts +0 -59
- package/dist/entity/entity.d.ts.map +0 -1
- package/dist/entity/entity.js +0 -697
- package/dist/entity/entity.js.map +0 -1
- package/dist/entity/migrator.d.ts +0 -143
- package/dist/entity/migrator.d.ts.map +0 -1
- package/dist/entity/migrator.js +0 -1434
- package/dist/entity/migrator.js.map +0 -1
- package/dist/entity/smd-utils.d.ts +0 -61
- package/dist/entity/smd-utils.d.ts.map +0 -1
- package/dist/entity/smd-utils.js +0 -121
- package/dist/entity/smd-utils.js.map +0 -1
- package/dist/exceptions/error-handler.d.ts +0 -3
- package/dist/exceptions/error-handler.d.ts.map +0 -1
- package/dist/exceptions/error-handler.js +0 -34
- package/dist/exceptions/error-handler.js.map +0 -1
- package/dist/exceptions/so-exceptions.d.ts +0 -48
- package/dist/exceptions/so-exceptions.d.ts.map +0 -1
- package/dist/exceptions/so-exceptions.js +0 -105
- package/dist/exceptions/so-exceptions.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/smd/entity-manager.d.ts +0 -28
- package/dist/smd/entity-manager.d.ts.map +0 -1
- package/dist/smd/entity-manager.js +0 -119
- package/dist/smd/entity-manager.js.map +0 -1
- package/dist/smd/entity.d.ts +0 -40
- package/dist/smd/entity.d.ts.map +0 -1
- package/dist/smd/entity.js +0 -430
- package/dist/smd/entity.js.map +0 -1
- package/dist/smd/migrator.d.ts +0 -109
- package/dist/smd/migrator.d.ts.map +0 -1
- package/dist/smd/migrator.js +0 -1164
- package/dist/smd/migrator.js.map +0 -1
- package/dist/smd/smd-manager.d.ts +0 -28
- package/dist/smd/smd-manager.d.ts.map +0 -1
- package/dist/smd/smd-manager.js +0 -146
- package/dist/smd/smd-manager.js.map +0 -1
- package/dist/smd/smd-utils.d.ts +0 -61
- package/dist/smd/smd-utils.d.ts.map +0 -1
- package/dist/smd/smd-utils.js +0 -121
- package/dist/smd/smd-utils.js.map +0 -1
- package/dist/smd/smd.d.ts +0 -40
- package/dist/smd/smd.d.ts.map +0 -1
- package/dist/smd/smd.js +0 -429
- package/dist/smd/smd.js.map +0 -1
- package/dist/syncer/index.d.ts +0 -2
- package/dist/syncer/index.d.ts.map +0 -1
- package/dist/syncer/index.js +0 -18
- package/dist/syncer/index.js.map +0 -1
- package/dist/syncer/syncer.d.ts +0 -108
- package/dist/syncer/syncer.d.ts.map +0 -1
- package/dist/syncer/syncer.js +0 -1119
- 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 -10
- package/dist/templates/base-template.js.map +0 -1
- package/dist/templates/entity.template.d.ts +0 -17
- package/dist/templates/entity.template.d.ts.map +0 -1
- package/dist/templates/entity.template.js +0 -78
- package/dist/templates/entity.template.js.map +0 -1
- package/dist/templates/generated.template.d.ts +0 -27
- package/dist/templates/generated.template.d.ts.map +0 -1
- package/dist/templates/generated.template.js +0 -239
- package/dist/templates/generated.template.js.map +0 -1
- package/dist/templates/generated_http.template.d.ts +0 -24
- package/dist/templates/generated_http.template.d.ts.map +0 -1
- package/dist/templates/generated_http.template.js +0 -133
- package/dist/templates/generated_http.template.js.map +0 -1
- package/dist/templates/generated_sso.template.d.ts +0 -17
- package/dist/templates/generated_sso.template.d.ts.map +0 -1
- package/dist/templates/generated_sso.template.js +0 -66
- 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 -18
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/init_enums.template.d.ts +0 -17
- package/dist/templates/init_enums.template.d.ts.map +0 -1
- package/dist/templates/init_enums.template.js +0 -54
- package/dist/templates/init_enums.template.js.map +0 -1
- package/dist/templates/init_generated.template.d.ts +0 -17
- package/dist/templates/init_generated.template.d.ts.map +0 -1
- package/dist/templates/init_generated.template.js +0 -46
- package/dist/templates/init_generated.template.js.map +0 -1
- package/dist/templates/init_types.template.d.ts +0 -17
- package/dist/templates/init_types.template.d.ts.map +0 -1
- package/dist/templates/init_types.template.js +0 -37
- 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 -168
- package/dist/templates/model.template.js.map +0 -1
- package/dist/templates/model_test.template.d.ts +0 -17
- package/dist/templates/model_test.template.d.ts.map +0 -1
- package/dist/templates/model_test.template.js +0 -34
- package/dist/templates/model_test.template.js.map +0 -1
- package/dist/templates/service.template.d.ts +0 -28
- package/dist/templates/service.template.d.ts.map +0 -1
- package/dist/templates/service.template.js +0 -167
- package/dist/templates/service.template.js.map +0 -1
- package/dist/templates/smd.template.d.ts +0 -17
- package/dist/templates/smd.template.d.ts.map +0 -1
- package/dist/templates/smd.template.js +0 -49
- package/dist/templates/smd.template.js.map +0 -1
- package/dist/templates/view_enums_buttonset.template.d.ts +0 -17
- package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
- package/dist/templates/view_enums_buttonset.template.js +0 -30
- package/dist/templates/view_enums_buttonset.template.js.map +0 -1
- package/dist/templates/view_enums_dropdown.template.d.ts +0 -18
- package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
- package/dist/templates/view_enums_dropdown.template.js +0 -68
- package/dist/templates/view_enums_dropdown.template.js.map +0 -1
- package/dist/templates/view_enums_select.template.d.ts +0 -17
- package/dist/templates/view_enums_select.template.d.ts.map +0 -1
- package/dist/templates/view_enums_select.template.js +0 -54
- package/dist/templates/view_enums_select.template.js.map +0 -1
- package/dist/templates/view_form.template.d.ts +0 -74
- package/dist/templates/view_form.template.d.ts.map +0 -1
- package/dist/templates/view_form.template.js +0 -368
- package/dist/templates/view_form.template.js.map +0 -1
- package/dist/templates/view_id_all_select.template.d.ts +0 -17
- package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
- package/dist/templates/view_id_all_select.template.js +0 -30
- package/dist/templates/view_id_all_select.template.js.map +0 -1
- package/dist/templates/view_id_async_select.template.d.ts +0 -17
- package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
- package/dist/templates/view_id_async_select.template.js +0 -104
- package/dist/templates/view_id_async_select.template.js.map +0 -1
- package/dist/templates/view_list.template.d.ts +0 -86
- package/dist/templates/view_list.template.d.ts.map +0 -1
- package/dist/templates/view_list.template.js +0 -526
- package/dist/templates/view_list.template.js.map +0 -1
- package/dist/templates/view_list_columns.template.d.ts +0 -17
- package/dist/templates/view_list_columns.template.d.ts.map +0 -1
- package/dist/templates/view_list_columns.template.js +0 -47
- package/dist/templates/view_list_columns.template.js.map +0 -1
- package/dist/templates/view_search_input.template.d.ts +0 -17
- package/dist/templates/view_search_input.template.d.ts.map +0 -1
- package/dist/templates/view_search_input.template.js +0 -63
- package/dist/templates/view_search_input.template.js.map +0 -1
- package/dist/testing/fixture-manager.d.ts +0 -18
- package/dist/testing/fixture-manager.d.ts.map +0 -1
- package/dist/testing/fixture-manager.js +0 -238
- package/dist/testing/fixture-manager.js.map +0 -1
- package/dist/types/smd.types.d.ts +0 -741
- package/dist/types/smd.types.d.ts.map +0 -1
- package/dist/types/smd.types.js +0 -292
- package/dist/types/smd.types.js.map +0 -1
- package/dist/types/types.d.ts +0 -721
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.js +0 -287
- package/dist/types/types.js.map +0 -1
- package/dist/ui/index.d.ts +0 -4
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -14
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/main.d.ts +0 -4
- package/dist/ui/main.d.ts.map +0 -1
- package/dist/ui/main.js +0 -15
- package/dist/ui/main.js.map +0 -1
- package/dist/utils/controller.d.ts +0 -9
- package/dist/utils/controller.d.ts.map +0 -1
- package/dist/utils/controller.js +0 -36
- package/dist/utils/controller.js.map +0 -1
- package/dist/utils/lodash-able.d.ts +0 -2
- package/dist/utils/lodash-able.d.ts.map +0 -1
- package/dist/utils/lodash-able.js +0 -9
- package/dist/utils/lodash-able.js.map +0 -1
- package/dist/utils/model.d.ts +0 -17
- package/dist/utils/model.d.ts.map +0 -1
- package/dist/utils/model.js +0 -23
- package/dist/utils/model.js.map +0 -1
- package/dist/utils/sql-parser.d.ts +0 -4
- package/dist/utils/sql-parser.d.ts.map +0 -1
- package/dist/utils/sql-parser.js +0 -40
- package/dist/utils/sql-parser.js.map +0 -1
- package/dist/utils/utils.d.ts +0 -9
- package/dist/utils/utils.d.ts.map +0 -1
- package/dist/utils/utils.js +0 -100
- package/dist/utils/utils.js.map +0 -1
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Template__model = void 0;
|
|
4
|
-
const entity_manager_1 = require("../entity/entity-manager");
|
|
5
|
-
const base_template_1 = require("./base-template");
|
|
6
|
-
const view_list_template_1 = require("./view_list.template");
|
|
7
|
-
const api_1 = require("../api");
|
|
8
|
-
class Template__model extends base_template_1.Template {
|
|
9
|
-
constructor() {
|
|
10
|
-
super("model");
|
|
11
|
-
}
|
|
12
|
-
getTargetAndPath(names) {
|
|
13
|
-
const { dir } = api_1.Sonamu.config.api;
|
|
14
|
-
return {
|
|
15
|
-
target: `${dir}/src/application`,
|
|
16
|
-
path: `${names.fs}/${names.fs}.model.ts`,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
render({ entityId }, _columnsNode, listParamsNode) {
|
|
20
|
-
const names = entity_manager_1.EntityManager.getNamesFromId(entityId);
|
|
21
|
-
const entity = entity_manager_1.EntityManager.get(entityId);
|
|
22
|
-
const vlTpl = new view_list_template_1.Template__view_list();
|
|
23
|
-
if ((listParamsNode === null || listParamsNode === void 0 ? void 0 : listParamsNode.children) === undefined) {
|
|
24
|
-
throw new Error(`listParamsNode가 없습니다. ${entityId}`);
|
|
25
|
-
}
|
|
26
|
-
const def = vlTpl.getDefault(listParamsNode.children);
|
|
27
|
-
return Object.assign(Object.assign({}, this.getTargetAndPath(names)), { body: `
|
|
28
|
-
import { BaseModelClass, ListResult, asArray, NotFoundException, BadRequestException, api } from 'sonamu';
|
|
29
|
-
import {
|
|
30
|
-
${entityId}SubsetKey,
|
|
31
|
-
${entityId}SubsetMapping,
|
|
32
|
-
} from "../sonamu.generated";
|
|
33
|
-
import {
|
|
34
|
-
${names.camel}SubsetQueries,
|
|
35
|
-
} from "../sonamu.generated.sso";
|
|
36
|
-
import { ${entityId}ListParams, ${entityId}SaveParams } from "./${names.fs}.types";
|
|
37
|
-
|
|
38
|
-
/*
|
|
39
|
-
${entityId} Model
|
|
40
|
-
*/
|
|
41
|
-
class ${entityId}ModelClass extends BaseModelClass {
|
|
42
|
-
modelName = "${entityId}";
|
|
43
|
-
|
|
44
|
-
@api({ httpMethod: "GET", clients: ["axios", "swr"], resourceName: "${entityId}" })
|
|
45
|
-
async findById<T extends ${entityId}SubsetKey>(
|
|
46
|
-
subset: T,
|
|
47
|
-
id: number
|
|
48
|
-
): Promise<${entityId}SubsetMapping[T]> {
|
|
49
|
-
const { rows } = await this.findMany(subset, {
|
|
50
|
-
id,
|
|
51
|
-
num: 1,
|
|
52
|
-
page: 1,
|
|
53
|
-
});
|
|
54
|
-
if (rows.length == 0) {
|
|
55
|
-
throw new NotFoundException(\`존재하지 않는 ${names.capital} ID \${id}\`);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return rows[0];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
async findOne<T extends ${entityId}SubsetKey>(
|
|
62
|
-
subset: T,
|
|
63
|
-
listParams: ${entityId}ListParams
|
|
64
|
-
): Promise<${entityId}SubsetMapping[T] | null> {
|
|
65
|
-
const { rows } = await this.findMany(subset, {
|
|
66
|
-
...listParams,
|
|
67
|
-
num: 1,
|
|
68
|
-
page: 1,
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
return rows[0] ?? null;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@api({ httpMethod: "GET", clients: ["axios", "swr"], resourceName: "${names.capitalPlural}" })
|
|
75
|
-
async findMany<T extends ${entityId}SubsetKey>(
|
|
76
|
-
subset: T,
|
|
77
|
-
params: ${entityId}ListParams = {}
|
|
78
|
-
): Promise<ListResult<${entityId}SubsetMapping[T]>> {
|
|
79
|
-
// params with defaults
|
|
80
|
-
params = {
|
|
81
|
-
num: 24,
|
|
82
|
-
page: 1,
|
|
83
|
-
search: "${def.search}",
|
|
84
|
-
orderBy: "${def.orderBy}",
|
|
85
|
-
...params,
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// build queries
|
|
89
|
-
let { rows, total } = await this.runSubsetQuery({
|
|
90
|
-
subset,
|
|
91
|
-
params,
|
|
92
|
-
subsetQuery: ${names.camel}SubsetQueries[subset],
|
|
93
|
-
build: ({ qb }) => {
|
|
94
|
-
// id
|
|
95
|
-
if (params.id) {
|
|
96
|
-
qb.whereIn("${entity.table}.id", asArray(params.id));
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// search-keyword
|
|
100
|
-
if (params.search && params.keyword && params.keyword.length > 0) {
|
|
101
|
-
if (params.search === "id") {
|
|
102
|
-
qb.where("${entity.table}.id", params.keyword);
|
|
103
|
-
// } else if (params.search === "field") {
|
|
104
|
-
// qb.where("${entity.table}.field", "like", \`%\${params.keyword}%\`);
|
|
105
|
-
} else {
|
|
106
|
-
throw new BadRequestException(
|
|
107
|
-
\`구현되지 않은 검색 필드 \${params.search}\`
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// orderBy
|
|
113
|
-
if (params.orderBy) {
|
|
114
|
-
// default orderBy
|
|
115
|
-
const [orderByField, orderByDirec] = params.orderBy.split("-");
|
|
116
|
-
qb.orderBy("${entity.table}." + orderByField, orderByDirec);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return qb;
|
|
120
|
-
},
|
|
121
|
-
debug: false,
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
return {
|
|
125
|
-
rows,
|
|
126
|
-
total,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
@api({ httpMethod: "POST" })
|
|
131
|
-
async save(
|
|
132
|
-
spa: ${entityId}SaveParams[]
|
|
133
|
-
): Promise<number[]> {
|
|
134
|
-
const wdb = this.getDB("w");
|
|
135
|
-
const ub = this.getUpsertBuilder();
|
|
136
|
-
|
|
137
|
-
// register
|
|
138
|
-
spa.map((sp) => {
|
|
139
|
-
ub.register("${entity.table}", sp);
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
// transaction
|
|
143
|
-
return wdb.transaction(async (trx) => {
|
|
144
|
-
const ids = await ub.upsert(trx, "${entity.table}");
|
|
145
|
-
|
|
146
|
-
return ids;
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
@api({ httpMethod: "POST", guards: [ "admin" ] })
|
|
151
|
-
async del(ids: number[]): Promise<number> {
|
|
152
|
-
const wdb = this.getDB("w");
|
|
153
|
-
|
|
154
|
-
// transaction
|
|
155
|
-
await wdb.transaction(async (trx) => {
|
|
156
|
-
return trx("${entity.table}").whereIn("${entity.table}.id", ids).delete();
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
return ids.length;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export const ${entityId}Model = new ${entityId}ModelClass();
|
|
164
|
-
`.trim(), importKeys: [] });
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
exports.Template__model = Template__model;
|
|
168
|
-
//# sourceMappingURL=model.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.template.js","sourceRoot":"","sources":["../../src/templates/model.template.ts"],"names":[],"mappings":";;;AACA,6DAA4E;AAC5E,mDAA2C;AAC3C,6DAA2D;AAC3D,gCAAgC;AAEhC,MAAa,eAAgB,SAAQ,wBAAQ;IAC3C;QACE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,KAAwB;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,YAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QAElC,OAAO;YACL,MAAM,EAAE,GAAG,GAAG,kBAAkB;YAChC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,WAAW;SACzC,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,EAAE,QAAQ,EAA4B,EACtC,YAA2B,EAC3B,cAA6B;QAE7B,MAAM,KAAK,GAAG,8BAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,8BAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,KAAK,GAAG,IAAI,wCAAmB,EAAE,CAAC;QACxC,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,MAAK,SAAS,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;SACtD;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEtD,uCACK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAC/B,IAAI,EAAE;;;IAGR,QAAQ;IACR,QAAQ;;;IAGR,KAAK,CAAC,KAAK;;WAEJ,QAAQ,eAAe,QAAQ,wBAAwB,KAAK,CAAC,EAAE;;;IAGtE,QAAQ;;QAEJ,QAAQ;iBACC,QAAQ;;wEAE+C,QAAQ;6BACnD,QAAQ;;;eAGtB,QAAQ;;;;;;;8CAOuB,KAAK,CAAC,OAAO;;;;;;4BAM/B,QAAQ;;kBAElB,QAAQ;eACX,QAAQ;;;;;;;;;;wEAUiD,KAAK,CAAC,aAAa;6BAC9D,QAAQ;;cAEvB,QAAQ;0BACI,QAAQ;;;;;iBAKjB,GAAG,CAAC,MAAM;kBACT,GAAG,CAAC,OAAO;;;;;;;;qBAQR,KAAK,CAAC,KAAK;;;;wBAIR,MAAM,CAAC,KAAK;;;;;;wBAMZ,MAAM,CAAC,KAAK;;2BAET,MAAM,CAAC,KAAK;;;;;;;;;;;;wBAYf,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;WAgBzB,QAAQ;;;;;;;qBAOE,MAAM,CAAC,KAAK;;;;;0CAKS,MAAM,CAAC,KAAK;;;;;;;;;;;;oBAYlC,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,KAAK;;;;;;;eAO5C,QAAQ,eAAe,QAAQ;OACvC,CAAC,IAAI,EAAE,EACR,UAAU,EAAE,EAAE,IACd;IACJ,CAAC;CACF;AA3KD,0CA2KC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { TemplateOptions } from "../types/types";
|
|
2
|
-
import { EntityNamesRecord } from "../entity/entity-manager";
|
|
3
|
-
import { Template } from "./base-template";
|
|
4
|
-
export declare class Template__model_test extends Template {
|
|
5
|
-
constructor();
|
|
6
|
-
getTargetAndPath(names: EntityNamesRecord): {
|
|
7
|
-
target: string;
|
|
8
|
-
path: string;
|
|
9
|
-
};
|
|
10
|
-
render({ entityId }: TemplateOptions["model_test"]): {
|
|
11
|
-
body: string;
|
|
12
|
-
importKeys: never[];
|
|
13
|
-
target: string;
|
|
14
|
-
path: string;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=model_test.template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model_test.template.d.ts","sourceRoot":"","sources":["../../src/templates/model_test.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,qBAAa,oBAAqB,SAAQ,QAAQ;;IAKhD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IASzC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,YAAY,CAAC;;;;;;CAmBnD"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Template__model_test = void 0;
|
|
4
|
-
const entity_manager_1 = require("../entity/entity-manager");
|
|
5
|
-
const base_template_1 = require("./base-template");
|
|
6
|
-
const api_1 = require("../api");
|
|
7
|
-
class Template__model_test extends base_template_1.Template {
|
|
8
|
-
constructor() {
|
|
9
|
-
super("model_test");
|
|
10
|
-
}
|
|
11
|
-
getTargetAndPath(names) {
|
|
12
|
-
const { dir } = api_1.Sonamu.config.api;
|
|
13
|
-
return {
|
|
14
|
-
target: `${dir}/src/application`,
|
|
15
|
-
path: `${names.fs}/${names.fs}.model.test.ts`,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
render({ entityId }) {
|
|
19
|
-
const names = entity_manager_1.EntityManager.getNamesFromId(entityId);
|
|
20
|
-
return Object.assign(Object.assign({}, this.getTargetAndPath(names)), { body: `
|
|
21
|
-
import { describe, test, expect } from "vitest";
|
|
22
|
-
import { bootstrap } from '../../testing/bootstrap';
|
|
23
|
-
|
|
24
|
-
bootstrap([]);
|
|
25
|
-
describe.skip("${entityId}ModelTest", () => {
|
|
26
|
-
test("Query", async () => {
|
|
27
|
-
expect(true).toBe(true);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
`.trim(), importKeys: [] });
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.Template__model_test = Template__model_test;
|
|
34
|
-
//# sourceMappingURL=model_test.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model_test.template.js","sourceRoot":"","sources":["../../src/templates/model_test.template.ts"],"names":[],"mappings":";;;AACA,6DAA4E;AAC5E,mDAA2C;AAC3C,gCAAgC;AAEhC,MAAa,oBAAqB,SAAQ,wBAAQ;IAChD;QACE,KAAK,CAAC,YAAY,CAAC,CAAC;IACtB,CAAC;IAED,gBAAgB,CAAC,KAAwB;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,YAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QAElC,OAAO;YACL,MAAM,EAAE,GAAG,GAAG,kBAAkB;YAChC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,gBAAgB;SAC9C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAE,QAAQ,EAAiC;QAChD,MAAM,KAAK,GAAG,8BAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAErD,uCACK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAC/B,IAAI,EAAE;;;;;iBAKK,QAAQ;;;;;OAKlB,CAAC,IAAI,EAAE,EACR,UAAU,EAAE,EAAE,IACd;IACJ,CAAC;CACF;AAjCD,oDAiCC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
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 "./base-template";
|
|
6
|
-
export declare class Template__service extends Template {
|
|
7
|
-
constructor();
|
|
8
|
-
getTargetAndPath(names: EntityNamesRecord): {
|
|
9
|
-
target: string;
|
|
10
|
-
path: string;
|
|
11
|
-
};
|
|
12
|
-
render({ entityId }: TemplateOptions["service"], apis: ExtendedApi[]): {
|
|
13
|
-
body: string;
|
|
14
|
-
importKeys: string[];
|
|
15
|
-
customHeaders: string[];
|
|
16
|
-
target: string;
|
|
17
|
-
path: string;
|
|
18
|
-
};
|
|
19
|
-
getTypeSource(apis: ExtendedApi[]): {
|
|
20
|
-
lines: string[];
|
|
21
|
-
importKeys: string[];
|
|
22
|
-
};
|
|
23
|
-
renderAxios(api: ExtendedApi, apiBaseUrl: string, typeParamsDef: string, paramsDef: string, returnTypeDef: string, payloadDef: string): string;
|
|
24
|
-
renderAxiosMultipart(api: ExtendedApi, apiBaseUrl: string, typeParamsDef: string, paramsDef: string, returnTypeDef: string, paramsWithoutContext: ApiParam[]): string;
|
|
25
|
-
renderSwr(api: ExtendedApi, apiBaseUrl: string, typeParamsDef: string, paramsDef: string, returnTypeDef: string, payloadDef: string): string;
|
|
26
|
-
renderWindowFetch(api: ExtendedApi, apiBaseUrl: string, typeParamsDef: string, paramsDef: string, payloadDef: string): string;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=service.template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service.template.d.ts","sourceRoot":"","sources":["../../src/templates/service.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAgB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,qBAAa,iBAAkB,SAAQ,QAAQ;;IAK7C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAOzC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;;;;;;;IAqBpE,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG;QAClC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB;IA4GD,WAAW,CACT,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM;IA4BpB,oBAAoB,CAClB,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,oBAAoB,EAAE,QAAQ,EAAE;IA+BlC,SAAS,CACP,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM;IAoBpB,iBAAiB,CACf,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM;CAQrB"}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Template__service = void 0;
|
|
7
|
-
const inflection_1 = __importDefault(require("inflection"));
|
|
8
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const entity_manager_1 = require("../entity/entity-manager");
|
|
10
|
-
const types_1 = require("../types/types");
|
|
11
|
-
const code_converters_1 = require("../api/code-converters");
|
|
12
|
-
const base_template_1 = require("./base-template");
|
|
13
|
-
const sonamu_1 = require("../api/sonamu");
|
|
14
|
-
class Template__service extends base_template_1.Template {
|
|
15
|
-
constructor() {
|
|
16
|
-
super("service");
|
|
17
|
-
}
|
|
18
|
-
getTargetAndPath(names) {
|
|
19
|
-
return {
|
|
20
|
-
target: ":target/src/services",
|
|
21
|
-
path: `${names.fs}/${names.fs}.service.ts`,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
render({ entityId }, apis) {
|
|
25
|
-
const names = entity_manager_1.EntityManager.getNamesFromId(entityId);
|
|
26
|
-
// 서비스 TypeSource
|
|
27
|
-
const { lines, importKeys } = this.getTypeSource(apis);
|
|
28
|
-
return Object.assign(Object.assign({}, this.getTargetAndPath(names)), { body: lines.join("\n"), importKeys: importKeys.filter((key) => ["ListResult"].includes(key) === false), customHeaders: [
|
|
29
|
-
`import { z } from 'zod';`,
|
|
30
|
-
`import qs from "qs";`,
|
|
31
|
-
`import useSWR, { SWRResponse } from "swr";`,
|
|
32
|
-
`import { fetch, ListResult, SWRError, SwrOptions, handleConditional, swrPostFetcher } from '../sonamu.shared';`,
|
|
33
|
-
] });
|
|
34
|
-
}
|
|
35
|
-
getTypeSource(apis) {
|
|
36
|
-
const importKeys = [];
|
|
37
|
-
// 제네릭에서 선언한 타입, importKeys에서 제외 필요
|
|
38
|
-
let typeParamNames = [];
|
|
39
|
-
const groups = lodash_1.default.groupBy(apis, (api) => api.modelName);
|
|
40
|
-
const body = Object.keys(groups)
|
|
41
|
-
.map((modelName) => {
|
|
42
|
-
const methods = groups[modelName];
|
|
43
|
-
const methodCodes = methods
|
|
44
|
-
.map((api) => {
|
|
45
|
-
// 컨텍스트 제외된 파라미터 리스트
|
|
46
|
-
const paramsWithoutContext = api.parameters.filter((param) => !types_1.ApiParamType.isContext(param.type) &&
|
|
47
|
-
!types_1.ApiParamType.isRefKnex(param.type));
|
|
48
|
-
// 파라미터 타입 정의
|
|
49
|
-
const typeParamsDef = api.typeParameters
|
|
50
|
-
.map((typeParam) => {
|
|
51
|
-
return (0, code_converters_1.apiParamTypeToTsType)(typeParam, importKeys);
|
|
52
|
-
})
|
|
53
|
-
.join(", ");
|
|
54
|
-
typeParamNames = typeParamNames.concat(api.typeParameters.map((typeParam) => typeParam.id));
|
|
55
|
-
// 파라미터 정의
|
|
56
|
-
const paramsDef = (0, code_converters_1.apiParamToTsCode)(paramsWithoutContext, importKeys);
|
|
57
|
-
// 리턴 타입 정의
|
|
58
|
-
const returnTypeDef = (0, code_converters_1.apiParamTypeToTsType)((0, code_converters_1.unwrapPromiseOnce)(api.returnType), importKeys);
|
|
59
|
-
// 페이로드 데이터 정의
|
|
60
|
-
const payloadDef = `{ ${paramsWithoutContext
|
|
61
|
-
.map((param) => param.name)
|
|
62
|
-
.join(", ")} }`;
|
|
63
|
-
return lodash_1.default.sortBy(api.options.clients, (client) => client === "swr" ? 0 : 1)
|
|
64
|
-
.map((client) => {
|
|
65
|
-
const apiBaseUrl = `${sonamu_1.Sonamu.config.route.prefix}${api.path}`;
|
|
66
|
-
switch (client) {
|
|
67
|
-
case "axios":
|
|
68
|
-
return this.renderAxios(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef);
|
|
69
|
-
case "axios-multipart":
|
|
70
|
-
return this.renderAxiosMultipart(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, paramsWithoutContext);
|
|
71
|
-
case "swr":
|
|
72
|
-
return this.renderSwr(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef);
|
|
73
|
-
case "window-fetch":
|
|
74
|
-
return this.renderWindowFetch(api, apiBaseUrl, typeParamsDef, paramsDef, payloadDef);
|
|
75
|
-
case "socketio":
|
|
76
|
-
default:
|
|
77
|
-
return `// Not supported ${inflection_1.default.camelize(client, true)} yet.`;
|
|
78
|
-
}
|
|
79
|
-
})
|
|
80
|
-
.join("\n");
|
|
81
|
-
})
|
|
82
|
-
.join("\n\n");
|
|
83
|
-
return `export namespace ${modelName.replace(/Model$/, "Service")} {
|
|
84
|
-
${methodCodes}
|
|
85
|
-
}`;
|
|
86
|
-
})
|
|
87
|
-
.join("\n\n");
|
|
88
|
-
return {
|
|
89
|
-
lines: [body],
|
|
90
|
-
importKeys: lodash_1.default.difference(lodash_1.default.uniq(importKeys), typeParamNames),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
renderAxios(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef) {
|
|
94
|
-
const methodNameAxios = api.options.resourceName
|
|
95
|
-
? "get" + inflection_1.default.camelize(api.options.resourceName)
|
|
96
|
-
: api.methodName;
|
|
97
|
-
if (api.options.httpMethod === "GET") {
|
|
98
|
-
return `
|
|
99
|
-
export async function ${methodNameAxios}${typeParamsDef}(${paramsDef}): Promise<${returnTypeDef}> {
|
|
100
|
-
return fetch({
|
|
101
|
-
method: "GET",
|
|
102
|
-
url: \`${apiBaseUrl}?\${qs.stringify(${payloadDef})}\`,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
`.trim();
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
return `
|
|
109
|
-
export async function ${methodNameAxios}${typeParamsDef}(${paramsDef}): Promise<${returnTypeDef}> {
|
|
110
|
-
return fetch({
|
|
111
|
-
method: '${api.options.httpMethod}',
|
|
112
|
-
url: \`${apiBaseUrl}\`,
|
|
113
|
-
data: ${payloadDef},
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
`.trim();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
renderAxiosMultipart(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, paramsWithoutContext) {
|
|
120
|
-
const formDataDef = [
|
|
121
|
-
'formData.append("file", file);',
|
|
122
|
-
...paramsWithoutContext.map((param) => `formData.append('${param.name}', String(${param.name}));`),
|
|
123
|
-
].join("\n");
|
|
124
|
-
const paramsDefComma = paramsDef !== "" ? ", " : "";
|
|
125
|
-
return `
|
|
126
|
-
export async function ${api.methodName}${typeParamsDef}(
|
|
127
|
-
${paramsDef}${paramsDefComma}
|
|
128
|
-
file: File,
|
|
129
|
-
onUploadProgress?: (pe:ProgressEvent) => void
|
|
130
|
-
): Promise<${returnTypeDef}> {
|
|
131
|
-
const formData = new FormData();
|
|
132
|
-
${formDataDef}
|
|
133
|
-
return fetch({
|
|
134
|
-
method: 'POST',
|
|
135
|
-
url: \`${apiBaseUrl}\`,
|
|
136
|
-
headers: {
|
|
137
|
-
"Content-Type": "multipart/form-data",
|
|
138
|
-
},
|
|
139
|
-
onUploadProgress,
|
|
140
|
-
data: formData,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
`.trim();
|
|
144
|
-
}
|
|
145
|
-
renderSwr(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef) {
|
|
146
|
-
const methodNameSwr = api.options.resourceName
|
|
147
|
-
? "use" + inflection_1.default.camelize(api.options.resourceName)
|
|
148
|
-
: "use" + inflection_1.default.camelize(api.methodName);
|
|
149
|
-
return ` export function ${inflection_1.default.camelize(methodNameSwr, true)}${typeParamsDef}(${[paramsDef, "swrOptions?: SwrOptions"]
|
|
150
|
-
.filter((p) => p !== "")
|
|
151
|
-
.join(",")}, ): SWRResponse<${returnTypeDef}, SWRError> {
|
|
152
|
-
return useSWR(handleConditional([
|
|
153
|
-
\`${apiBaseUrl}\`,
|
|
154
|
-
${payloadDef},
|
|
155
|
-
], swrOptions?.conditional)${api.options.httpMethod === "POST" ? ", swrPostFetcher" : ""});
|
|
156
|
-
}`;
|
|
157
|
-
}
|
|
158
|
-
renderWindowFetch(api, apiBaseUrl, typeParamsDef, paramsDef, payloadDef) {
|
|
159
|
-
return `
|
|
160
|
-
export async function ${api.methodName}${typeParamsDef}(${paramsDef}): Promise<Response> {
|
|
161
|
-
return window.fetch(\`${apiBaseUrl}?\${qs.stringify(${payloadDef})}\`);
|
|
162
|
-
}
|
|
163
|
-
`.trim();
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
exports.Template__service = Template__service;
|
|
167
|
-
//# sourceMappingURL=service.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service.template.js","sourceRoot":"","sources":["../../src/templates/service.template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { TemplateOptions } from "../types/types";
|
|
2
|
-
import { EntityNamesRecord } from "../smd/entity-manager";
|
|
3
|
-
import { Template } from "./base-template";
|
|
4
|
-
export declare class Template__smd extends Template {
|
|
5
|
-
constructor();
|
|
6
|
-
getTargetAndPath(names: EntityNamesRecord): {
|
|
7
|
-
target: string;
|
|
8
|
-
path: string;
|
|
9
|
-
};
|
|
10
|
-
render(options: TemplateOptions["smd"]): {
|
|
11
|
-
body: string;
|
|
12
|
-
importKeys: never[];
|
|
13
|
-
target: string;
|
|
14
|
-
path: string;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=smd.template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smd.template.d.ts","sourceRoot":"","sources":["../../src/templates/smd.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,aAAc,SAAQ,QAAQ;;IAKzC,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAOzC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;;;;;;CAoCvC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Template__smd = void 0;
|
|
4
|
-
const entity_manager_1 = require("../smd/entity-manager");
|
|
5
|
-
const base_template_1 = require("./base-template");
|
|
6
|
-
class Template__smd extends base_template_1.Template {
|
|
7
|
-
constructor() {
|
|
8
|
-
super("smd");
|
|
9
|
-
}
|
|
10
|
-
getTargetAndPath(names) {
|
|
11
|
-
return {
|
|
12
|
-
target: "api/src/application",
|
|
13
|
-
path: `${names.fs}/${names.fs}.smd.ts`,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
render(options) {
|
|
17
|
-
const { smdId, title, refCode } = options;
|
|
18
|
-
const names = entity_manager_1.EntityManager.getNamesFromId(smdId);
|
|
19
|
-
return Object.assign(Object.assign({}, this.getTargetAndPath(names)), { body: `
|
|
20
|
-
import { p, i, SMDInput } from "sonamu";
|
|
21
|
-
import { ${smdId}FieldExpr } from "./${names.fs}.generated";
|
|
22
|
-
|
|
23
|
-
/*
|
|
24
|
-
${smdId} SMD
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
export const ${names.camel}SmdInput: SMDInput<${smdId}FieldExpr> = {
|
|
28
|
-
id: "${smdId}",
|
|
29
|
-
title: "${title !== null && title !== void 0 ? title : smdId}",
|
|
30
|
-
props: [
|
|
31
|
-
p.integer("id", { unsigned: true }),
|
|
32
|
-
p.timestamp("created_at", {
|
|
33
|
-
now: true,
|
|
34
|
-
}),
|
|
35
|
-
],
|
|
36
|
-
indexes: [
|
|
37
|
-
i.index('created_at'),
|
|
38
|
-
//
|
|
39
|
-
],
|
|
40
|
-
subsets: {
|
|
41
|
-
A: [ 'id', 'created_at' ]
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
${refCode ? `\n/* REFERENCE\n\n${refCode}\n*/` : ""}
|
|
45
|
-
`.trim(), importKeys: [] });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.Template__smd = Template__smd;
|
|
49
|
-
//# sourceMappingURL=smd.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smd.template.js","sourceRoot":"","sources":["../../src/templates/smd.template.ts"],"names":[],"mappings":";;;AACA,0DAAyE;AACzE,mDAA2C;AAE3C,MAAa,aAAc,SAAQ,wBAAQ;IACzC;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,gBAAgB,CAAC,KAAwB;QACvC,OAAO;YACL,MAAM,EAAE,qBAAqB;YAC7B,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,SAAS;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAA+B;QACpC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC1C,MAAM,KAAK,GAAG,8BAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAElD,uCACK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAC/B,IAAI,EAAE;;WAED,KAAK,uBAAuB,KAAK,CAAC,EAAE;;;IAG3C,KAAK;;;eAGM,KAAK,CAAC,KAAK,sBAAsB,KAAK;SAC5C,KAAK;YACF,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK;;;;;;;;;;;;;;;EAexB,OAAO,CAAC,CAAC,CAAC,qBAAqB,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE;CAClD,CAAC,IAAI,EAAE,EACF,UAAU,EAAE,EAAE,IACd;IACJ,CAAC;CACF;AAhDD,sCAgDC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { TemplateOptions } from "../types/types";
|
|
2
|
-
import { EntityNamesRecord } from "../entity/entity-manager";
|
|
3
|
-
import { Template } from "./base-template";
|
|
4
|
-
export declare class Template__view_enums_buttonset extends Template {
|
|
5
|
-
constructor();
|
|
6
|
-
getTargetAndPath(names: EntityNamesRecord, componentId: string): {
|
|
7
|
-
target: string;
|
|
8
|
-
path: string;
|
|
9
|
-
};
|
|
10
|
-
render({ entityId, enumId }: TemplateOptions["view_enums_buttonset"]): {
|
|
11
|
-
body: string;
|
|
12
|
-
importKeys: never[];
|
|
13
|
-
target: string;
|
|
14
|
-
path: string;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=view_enums_buttonset.template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view_enums_buttonset.template.d.ts","sourceRoot":"","sources":["../../src/templates/view_enums_buttonset.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,8BAA+B,SAAQ,QAAQ;;IAK1D,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM;;;;IAO9D,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,sBAAsB,CAAC;;;;;;CAiBrE"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Template__view_enums_buttonset = void 0;
|
|
4
|
-
const entity_manager_1 = require("../entity/entity-manager");
|
|
5
|
-
const base_template_1 = require("./base-template");
|
|
6
|
-
class Template__view_enums_buttonset extends base_template_1.Template {
|
|
7
|
-
constructor() {
|
|
8
|
-
super("view_enums_buttonset");
|
|
9
|
-
}
|
|
10
|
-
getTargetAndPath(names, componentId) {
|
|
11
|
-
return {
|
|
12
|
-
target: "web/src/components",
|
|
13
|
-
path: `${names.fs}/${componentId}ButtonSet.tsx`,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
render({ entityId, enumId }) {
|
|
17
|
-
const names = entity_manager_1.EntityManager.getNamesFromId(entityId);
|
|
18
|
-
return Object.assign(Object.assign({}, this.getTargetAndPath(names, enumId)), { body: `
|
|
19
|
-
/*
|
|
20
|
-
view_enums_buttonset
|
|
21
|
-
${JSON.stringify({
|
|
22
|
-
key: this.key,
|
|
23
|
-
options: entityId,
|
|
24
|
-
})}
|
|
25
|
-
*/
|
|
26
|
-
`.trim(), importKeys: [] });
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.Template__view_enums_buttonset = Template__view_enums_buttonset;
|
|
30
|
-
//# sourceMappingURL=view_enums_buttonset.template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view_enums_buttonset.template.js","sourceRoot":"","sources":["../../src/templates/view_enums_buttonset.template.ts"],"names":[],"mappings":";;;AACA,6DAA4E;AAC5E,mDAA2C;AAE3C,MAAa,8BAA+B,SAAQ,wBAAQ;IAC1D;QACE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,KAAwB,EAAE,WAAmB;QAC5D,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,WAAW,eAAe;SAChD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAA2C;QAClE,MAAM,KAAK,GAAG,8BAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAErD,uCACK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,KACvC,IAAI,EAAE;;;EAGV,IAAI,CAAC,SAAS,CAAC;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,QAAQ;aAClB,CAAC;;OAEK,CAAC,IAAI,EAAE,EACR,UAAU,EAAE,EAAE,IACd;IACJ,CAAC;CACF;AA7BD,wEA6BC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { TemplateOptions } from "../types/types";
|
|
2
|
-
import { EntityNamesRecord } from "../entity/entity-manager";
|
|
3
|
-
import { Template } from "./base-template";
|
|
4
|
-
export declare class Template__view_enums_dropdown extends Template {
|
|
5
|
-
constructor();
|
|
6
|
-
getTargetAndPath(names: EntityNamesRecord, enumId: string): {
|
|
7
|
-
target: string;
|
|
8
|
-
path: string;
|
|
9
|
-
};
|
|
10
|
-
render({ entityId, enumId }: TemplateOptions["view_enums_dropdown"]): {
|
|
11
|
-
body: string;
|
|
12
|
-
importKeys: never[];
|
|
13
|
-
target: string;
|
|
14
|
-
path: string;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
export declare function getLabel(entityId: string, enumId: string): string;
|
|
18
|
-
//# sourceMappingURL=view_enums_dropdown.template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view_enums_dropdown.template.d.ts","sourceRoot":"","sources":["../../src/templates/view_enums_dropdown.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,qBAAa,6BAA8B,SAAQ,QAAQ;;IAKzD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;;;;IAOzD,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,qBAAqB,CAAC;;;;;;CAmCpE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAcjE"}
|