@postxl/generator 0.74.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +50 -0
- package/README.md +79 -1
- package/dist/generator-manager.class.d.ts +59 -0
- package/dist/generator-manager.class.js +221 -0
- package/dist/generator.class.d.ts +90 -0
- package/dist/generator.class.js +32 -0
- package/dist/generator.context.d.ts +174 -0
- package/dist/generator.context.js +125 -0
- package/dist/helpers/branded.types.d.ts +149 -0
- package/dist/helpers/branded.types.js +111 -0
- package/dist/helpers/config-builder.class.d.ts +27 -0
- package/dist/helpers/config-builder.class.js +54 -0
- package/dist/helpers/import-generator.class.d.ts +70 -0
- package/dist/helpers/import-generator.class.js +166 -0
- package/dist/helpers/importable.types.d.ts +52 -0
- package/dist/helpers/importable.types.js +15 -0
- package/dist/helpers/index-generator.class.d.ts +10 -0
- package/dist/helpers/index-generator.class.js +46 -0
- package/dist/helpers/index.d.ts +8 -0
- package/dist/helpers/index.js +24 -0
- package/dist/helpers/package-json.generator.d.ts +56 -0
- package/dist/helpers/package-json.generator.js +36 -0
- package/dist/helpers/tsconfig.generator.d.ts +1 -0
- package/dist/helpers/tsconfig.generator.js +14 -0
- package/dist/helpers/verify-context.d.ts +4 -0
- package/dist/helpers/verify-context.js +23 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +21 -0
- package/dist/utils/checksum.d.ts +10 -0
- package/dist/utils/checksum.js +132 -0
- package/dist/utils/fs-utils.d.ts +34 -0
- package/dist/utils/fs-utils.js +126 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.js +26 -0
- package/dist/utils/jsdoc.d.ts +12 -0
- package/dist/utils/jsdoc.js +37 -0
- package/dist/utils/lint.d.ts +46 -0
- package/dist/utils/lint.js +154 -0
- package/dist/utils/lockfile.d.ts +7 -0
- package/dist/utils/lockfile.js +80 -0
- package/dist/utils/logger.class.d.ts +25 -0
- package/dist/utils/logger.class.js +55 -0
- package/dist/utils/merge-conflict.d.ts +55 -0
- package/dist/utils/merge-conflict.js +264 -0
- package/dist/utils/path.d.ts +52 -0
- package/dist/utils/path.js +183 -0
- package/dist/utils/prettier-config.d.ts +2 -0
- package/dist/utils/prettier-config.js +13 -0
- package/dist/utils/prettier.d.ts +5 -0
- package/dist/utils/prettier.js +67 -0
- package/dist/utils/prettier.skiptest.d.ts +1 -0
- package/dist/utils/prettier.skiptest.js +22 -0
- package/dist/utils/promise.d.ts +2 -0
- package/dist/utils/promise.js +10 -0
- package/dist/utils/string-functions.d.ts +9 -0
- package/dist/utils/string-functions.js +23 -0
- package/dist/utils/sync-log-result.d.ts +9 -0
- package/dist/utils/sync-log-result.js +90 -0
- package/dist/utils/sync.d.ts +143 -0
- package/dist/utils/sync.js +325 -0
- package/dist/utils/template.d.ts +66 -0
- package/dist/utils/template.js +159 -0
- package/dist/utils/vfs.class.d.ts +115 -0
- package/dist/utils/vfs.class.js +239 -0
- package/dist/utils/zip.d.ts +13 -0
- package/dist/utils/zip.js +40 -0
- package/package.json +57 -34
- package/dist/generator.d.ts +0 -13
- package/dist/generator.js +0 -455
- package/dist/generators/enums/react.generator.d.ts +0 -10
- package/dist/generators/enums/react.generator.js +0 -110
- package/dist/generators/enums/types.generator.d.ts +0 -10
- package/dist/generators/enums/types.generator.js +0 -39
- package/dist/generators/indices/data/module.generator.d.ts +0 -9
- package/dist/generators/indices/data/module.generator.js +0 -60
- package/dist/generators/indices/data/service.generator.d.ts +0 -9
- package/dist/generators/indices/data/service.generator.js +0 -249
- package/dist/generators/indices/data/types.generator.d.ts +0 -9
- package/dist/generators/indices/data/types.generator.js +0 -49
- package/dist/generators/indices/dispatcher-service.generator.d.ts +0 -9
- package/dist/generators/indices/dispatcher-service.generator.js +0 -107
- package/dist/generators/indices/export/class.generator.d.ts +0 -9
- package/dist/generators/indices/export/class.generator.js +0 -140
- package/dist/generators/indices/export/encoder.generator.d.ts +0 -9
- package/dist/generators/indices/export/encoder.generator.js +0 -50
- package/dist/generators/indices/import/convert-functions.generator.d.ts +0 -9
- package/dist/generators/indices/import/convert-functions.generator.js +0 -509
- package/dist/generators/indices/import/decoder.generator.d.ts +0 -9
- package/dist/generators/indices/import/decoder.generator.js +0 -40
- package/dist/generators/indices/import/service.generator.d.ts +0 -9
- package/dist/generators/indices/import/service.generator.js +0 -573
- package/dist/generators/indices/import/types.generator.d.ts +0 -9
- package/dist/generators/indices/import/types.generator.js +0 -242
- package/dist/generators/indices/repositories.generator.d.ts +0 -9
- package/dist/generators/indices/repositories.generator.js +0 -25
- package/dist/generators/indices/routes.generator.d.ts +0 -9
- package/dist/generators/indices/routes.generator.js +0 -29
- package/dist/generators/indices/seed-migration.generator.d.ts +0 -9
- package/dist/generators/indices/seed-migration.generator.js +0 -36
- package/dist/generators/indices/seed-template.generator.d.ts +0 -9
- package/dist/generators/indices/seed-template.generator.js +0 -80
- package/dist/generators/indices/testids.generator.d.ts +0 -7
- package/dist/generators/indices/testids.generator.js +0 -71
- package/dist/generators/indices/types.generator.d.ts +0 -10
- package/dist/generators/indices/types.generator.js +0 -35
- package/dist/generators/indices/update/actiontypes.generator.d.ts +0 -9
- package/dist/generators/indices/update/actiontypes.generator.js +0 -49
- package/dist/generators/indices/update/module.generator.d.ts +0 -9
- package/dist/generators/indices/update/module.generator.js +0 -41
- package/dist/generators/indices/update/service.generator.d.ts +0 -9
- package/dist/generators/indices/update/service.generator.js +0 -34
- package/dist/generators/indices/view/module.generator.d.ts +0 -9
- package/dist/generators/indices/view/module.generator.js +0 -39
- package/dist/generators/indices/view/service.generator.d.ts +0 -9
- package/dist/generators/indices/view/service.generator.js +0 -34
- package/dist/generators/models/admin.page.generator.d.ts +0 -7
- package/dist/generators/models/admin.page.generator.js +0 -74
- package/dist/generators/models/export/encoder.generator.d.ts +0 -9
- package/dist/generators/models/export/encoder.generator.js +0 -51
- package/dist/generators/models/import/decoder.generator.d.ts +0 -9
- package/dist/generators/models/import/decoder.generator.js +0 -148
- package/dist/generators/models/react/context.generator.d.ts +0 -9
- package/dist/generators/models/react/context.generator.js +0 -71
- package/dist/generators/models/react/index.d.ts +0 -10
- package/dist/generators/models/react/index.js +0 -31
- package/dist/generators/models/react/library.generator.d.ts +0 -10
- package/dist/generators/models/react/library.generator.js +0 -94
- package/dist/generators/models/react/lookup.generator.d.ts +0 -9
- package/dist/generators/models/react/lookup.generator.js +0 -175
- package/dist/generators/models/react/modals.generator.d.ts +0 -23
- package/dist/generators/models/react/modals.generator.js +0 -710
- package/dist/generators/models/repository.generator.d.ts +0 -9
- package/dist/generators/models/repository.generator.js +0 -955
- package/dist/generators/models/route.generator.d.ts +0 -9
- package/dist/generators/models/route.generator.js +0 -92
- package/dist/generators/models/seed.generator.d.ts +0 -21
- package/dist/generators/models/seed.generator.js +0 -285
- package/dist/generators/models/stub.generator.d.ts +0 -9
- package/dist/generators/models/stub.generator.js +0 -92
- package/dist/generators/models/types.generator.d.ts +0 -9
- package/dist/generators/models/types.generator.js +0 -125
- package/dist/generators/models/update/service.generator.d.ts +0 -10
- package/dist/generators/models/update/service.generator.js +0 -302
- package/dist/generators/models/view/service.generator.d.ts +0 -10
- package/dist/generators/models/view/service.generator.js +0 -239
- package/dist/lib/attributes.d.ts +0 -114
- package/dist/lib/attributes.js +0 -2
- package/dist/lib/exports.d.ts +0 -45
- package/dist/lib/exports.js +0 -90
- package/dist/lib/imports.d.ts +0 -65
- package/dist/lib/imports.js +0 -114
- package/dist/lib/meta.d.ts +0 -1191
- package/dist/lib/meta.js +0 -434
- package/dist/lib/schema/fields.d.ts +0 -46
- package/dist/lib/schema/fields.js +0 -62
- package/dist/lib/schema/schema.d.ts +0 -466
- package/dist/lib/schema/schema.js +0 -18
- package/dist/lib/schema/types.d.ts +0 -201
- package/dist/lib/schema/types.js +0 -112
- package/dist/lib/serializer.d.ts +0 -15
- package/dist/lib/serializer.js +0 -24
- package/dist/lib/test-id-collector.d.ts +0 -42
- package/dist/lib/test-id-collector.js +0 -53
- package/dist/lib/types.d.ts +0 -7
- package/dist/lib/types.js +0 -13
- package/dist/lib/typescript.d.ts +0 -5
- package/dist/lib/typescript.js +0 -22
- package/dist/lib/utils/ast.d.ts +0 -29
- package/dist/lib/utils/ast.js +0 -23
- package/dist/lib/utils/error.d.ts +0 -17
- package/dist/lib/utils/error.js +0 -52
- package/dist/lib/utils/file.d.ts +0 -10
- package/dist/lib/utils/file.js +0 -56
- package/dist/lib/utils/jsdoc.d.ts +0 -9
- package/dist/lib/utils/jsdoc.js +0 -37
- package/dist/lib/utils/logger.d.ts +0 -17
- package/dist/lib/utils/logger.js +0 -12
- package/dist/lib/utils/string.d.ts +0 -40
- package/dist/lib/utils/string.js +0 -187
- package/dist/lib/utils/types.d.ts +0 -12
- package/dist/lib/utils/types.js +0 -2
- package/dist/lib/zod.d.ts +0 -8
- package/dist/lib/zod.js +0 -60
- package/dist/prisma/attributes.d.ts +0 -21
- package/dist/prisma/attributes.js +0 -175
- package/dist/prisma/client-path.d.ts +0 -7
- package/dist/prisma/client-path.js +0 -29
- package/dist/prisma/parse.d.ts +0 -12
- package/dist/prisma/parse.js +0 -452
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateImportTypes = void 0;
|
|
4
|
-
const imports_1 = require("../../../lib/imports");
|
|
5
|
-
const meta_1 = require("../../../lib/meta");
|
|
6
|
-
/**
|
|
7
|
-
* Generates types for import module.
|
|
8
|
-
*/
|
|
9
|
-
function generateImportTypes({ models, meta }) {
|
|
10
|
-
const { types } = meta.import;
|
|
11
|
-
const imports = imports_1.ImportsGenerator.from(types.location.path);
|
|
12
|
-
const dto = meta.types.dto;
|
|
13
|
-
imports
|
|
14
|
-
.addTypeImport({
|
|
15
|
-
from: meta.types.importPath,
|
|
16
|
-
items: [dto.create, dto.update, dto.genericModel, dto.idType],
|
|
17
|
-
})
|
|
18
|
-
.addTypeImport({
|
|
19
|
-
from: meta.data.types.location.import,
|
|
20
|
-
items: [meta.data.types.bulkMutation],
|
|
21
|
-
});
|
|
22
|
-
const deltaTypes = [];
|
|
23
|
-
const errorTypes = [];
|
|
24
|
-
for (const model of models) {
|
|
25
|
-
const modelMeta = (0, meta_1.getModelMetadata)({ model });
|
|
26
|
-
imports.addTypeImport({
|
|
27
|
-
items: [modelMeta.types.typeName, modelMeta.types.brandedIdType],
|
|
28
|
-
from: modelMeta.types.importPath,
|
|
29
|
-
});
|
|
30
|
-
const missingFields = [];
|
|
31
|
-
const invalidReferenceFieldErrors = [];
|
|
32
|
-
const nonUniqueFieldErrors = [];
|
|
33
|
-
const invalidTypeFieldErrors = [];
|
|
34
|
-
const isRequiredDependencyErrors = [];
|
|
35
|
-
// Prepare field specific error types
|
|
36
|
-
for (const field of model.fields) {
|
|
37
|
-
if (field.attributes.ignore || field.kind === 'id') {
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
if (field.isRequired) {
|
|
41
|
-
missingFields.push(`"${field.name}"`);
|
|
42
|
-
}
|
|
43
|
-
if (field.kind === 'relation') {
|
|
44
|
-
invalidReferenceFieldErrors.push(`
|
|
45
|
-
${types.delta_Model.errors.invalidReference.type}<"${field.relationToModel.name}", "${field.name}", ${field.relationToModel.brandedIdType}>
|
|
46
|
-
`);
|
|
47
|
-
}
|
|
48
|
-
if (field.kind === 'scalar' && field.isUnique) {
|
|
49
|
-
if (field.isRequired) {
|
|
50
|
-
nonUniqueFieldErrors.push(`${types.delta_Model.errors.nonUnique.type}<"${field.name}", ${field.tsTypeName}>`);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
nonUniqueFieldErrors.push(`${types.delta_Model.errors.nonUnique.type}<"${field.name}", ${field.tsTypeName} | null>`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (field.kind === 'scalar' && field.validation) {
|
|
57
|
-
invalidTypeFieldErrors.push(`
|
|
58
|
-
${types.delta_Model.errors.invalidType.type}<"${field.name}", "${field.schemaType}", ${field.tsTypeName}>
|
|
59
|
-
`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// Prepare isRequiredDependency errors
|
|
63
|
-
for (const relatedModel of models) {
|
|
64
|
-
if (relatedModel.name === model.name) {
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
for (const relatedField of relatedModel.fields) {
|
|
68
|
-
if (relatedField.kind !== 'relation' ||
|
|
69
|
-
relatedField.relationToModel.name !== model.name ||
|
|
70
|
-
!relatedField.isRequired) {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
isRequiredDependencyErrors.push(`
|
|
74
|
-
${types.delta_Model.errors.isRequiredDependency.type}<
|
|
75
|
-
'${relatedModel.name}',
|
|
76
|
-
'${relatedField.name}',
|
|
77
|
-
${relatedModel.typeName},
|
|
78
|
-
${relatedModel.brandedIdType}
|
|
79
|
-
>
|
|
80
|
-
`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
const missingFieldError = missingFields.length > 0
|
|
84
|
-
? `${types.delta_Model.errors.missingField.type}<${missingFields.join(' | ')}> `
|
|
85
|
-
: undefined;
|
|
86
|
-
const modelErrorTypes = [
|
|
87
|
-
missingFieldError,
|
|
88
|
-
...invalidReferenceFieldErrors,
|
|
89
|
-
...nonUniqueFieldErrors,
|
|
90
|
-
...invalidTypeFieldErrors,
|
|
91
|
-
...isRequiredDependencyErrors,
|
|
92
|
-
].filter((t) => t !== undefined);
|
|
93
|
-
if (modelErrorTypes.length === 0) {
|
|
94
|
-
modelErrorTypes.push(`never`);
|
|
95
|
-
}
|
|
96
|
-
errorTypes.push(`export type ${modelMeta.import.delta_Model_Errors} = ${modelErrorTypes.join('\n| ')}`);
|
|
97
|
-
deltaTypes.push(`${modelMeta.seed.constantName}?: ${types.delta_Model.type}<
|
|
98
|
-
${modelMeta.types.typeName},
|
|
99
|
-
${modelMeta.types.brandedIdType},
|
|
100
|
-
${modelMeta.import.delta_Model_Errors}
|
|
101
|
-
>[]`);
|
|
102
|
-
}
|
|
103
|
-
return /* ts */ `
|
|
104
|
-
${imports.generate()}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Generic type that contains all changes between an existing item and an updated item.
|
|
108
|
-
*/
|
|
109
|
-
export type ${types.delta_Fields}<Model extends ${dto.genericModel}<ID>, ID extends ${dto.idType}> = Partial<{
|
|
110
|
-
[K in keyof Omit<Model, 'id'>]?: { old: Model[K]; new: Model[K] }
|
|
111
|
-
}>
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* For a given imported item of a model, this type contains the determined action to take - create, update, delete or unchanged.
|
|
115
|
-
*/
|
|
116
|
-
export type ${types.delta_Model.type}<Model extends ${dto.genericModel}<ID>, ID extends ${dto.idType}, ModelErrors> =
|
|
117
|
-
| ${types.delta_Model.unchanged.type}<Model, ID>
|
|
118
|
-
| ${types.delta_Model.create.type}<Model, ID>
|
|
119
|
-
| ${types.delta_Model.update.type}<Model, ID>
|
|
120
|
-
| ${types.delta_Model.delete.type}<Model, ID>
|
|
121
|
-
| ${types.delta_Model.errors.type}<Model, ID, ModelErrors>
|
|
122
|
-
|
|
123
|
-
export type ${types.delta_Model.unchanged.type}<Model extends ${dto.genericModel}<ID>, ID extends ${dto.idType}> = {
|
|
124
|
-
type: '${types.delta_Model.unchanged.discriminant}'
|
|
125
|
-
input: Model
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
export function ${types.delta_Model.unchanged.typeGuard}<Model extends ${dto.genericModel}<ID>, ID extends IDType>(
|
|
129
|
-
delta: Delta_Model<Model, ID, unknown>,
|
|
130
|
-
): delta is ${types.delta_Model.unchanged.type}<Model, ID> {
|
|
131
|
-
return delta.type === 'unchanged'
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export type ${types.delta_Model.create.type}<Model extends ${dto.genericModel}<ID>, ID extends ${dto.idType}> = {
|
|
135
|
-
type: '${types.delta_Model.create.discriminant}'
|
|
136
|
-
input: Model
|
|
137
|
-
createDTO: ${dto.create}<Model, ID>
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export function ${types.delta_Model.create.typeGuard}<Model extends ${dto.genericModel}<ID>, ID extends IDType>(
|
|
141
|
-
delta: Delta_Model<Model, ID, unknown>,
|
|
142
|
-
): delta is ${types.delta_Model.create.type}<Model, ID> {
|
|
143
|
-
return delta.type === 'create'
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export type ${types.delta_Model.update.type}<Model extends ${dto.genericModel}<ID>, ID extends ${dto.idType}> = {
|
|
147
|
-
type: '${types.delta_Model.update.discriminant}'
|
|
148
|
-
input: Model
|
|
149
|
-
updateDTO: ${dto.update}<Model, ID>
|
|
150
|
-
delta: ${types.delta_Fields}<Model, ID>
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
export function ${types.delta_Model.update.typeGuard}<Model extends ${dto.genericModel}<ID>, ID extends IDType>(
|
|
154
|
-
delta: Delta_Model<Model, ID, unknown>,
|
|
155
|
-
): delta is ${types.delta_Model.update.type}<Model, ID> {
|
|
156
|
-
return delta.type === 'update'
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export type ${types.delta_Model.delete.type}<Model extends ${dto.genericModel}<ID>, ID extends ${dto.idType}> = {
|
|
160
|
-
type: '${types.delta_Model.delete.discriminant}'
|
|
161
|
-
input: Model
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export function ${types.delta_Model.delete.typeGuard}<Model extends ${dto.genericModel}<ID>, ID extends IDType>(
|
|
165
|
-
delta: Delta_Model<Model, ID, unknown>,
|
|
166
|
-
): delta is ${types.delta_Model.delete.type}<Model, ID> {
|
|
167
|
-
return delta.type === 'delete'
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
export type ${types.delta_Model.errors.type}<Model extends GenericModel<ID>, ID extends IDType, ModelErrors> = {
|
|
171
|
-
type: '${types.delta_Model.errors.discriminant}'
|
|
172
|
-
input: Model
|
|
173
|
-
errors: ModelErrors[]
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
export function ${types.delta_Model.errors.typeGuard}<Model extends GenericModel<ID>, ID extends IDType, ModelErrors>(
|
|
177
|
-
delta: Delta_Model<Model, ID, unknown>,
|
|
178
|
-
): delta is ${types.delta_Model.errors.type}<Model, ID, ModelErrors> {
|
|
179
|
-
return delta.type === 'errors'
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export type ${types.delta_Model.errors.missingField.type}<FieldName extends string> = {
|
|
183
|
-
error: '${types.delta_Model.errors.missingField.discriminant}'
|
|
184
|
-
fieldName: FieldName
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
export type ${types.delta_Model.errors.invalidReference.type}<
|
|
188
|
-
RelatedModel extends string, FieldName extends string, Value
|
|
189
|
-
> = {
|
|
190
|
-
error: '${types.delta_Model.errors.invalidReference.discriminant}'
|
|
191
|
-
relatedModel: RelatedModel
|
|
192
|
-
fieldName: FieldName
|
|
193
|
-
value: Value
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
export type ${types.delta_Model.errors.nonUnique.type}<FieldName extends string, Value> = {
|
|
197
|
-
error: '${types.delta_Model.errors.nonUnique.discriminant}'
|
|
198
|
-
fieldName: FieldName
|
|
199
|
-
value: Value
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
export type ${types.delta_Model.errors.invalidType.type}<FieldName extends string, TypeName extends string, Value> = {
|
|
203
|
-
error: '${types.delta_Model.errors.invalidType.discriminant}'
|
|
204
|
-
fieldName: FieldName
|
|
205
|
-
typeExpected: TypeName
|
|
206
|
-
value: Value
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
export type ${types.delta_Model.errors.isRequiredDependency.type}<
|
|
210
|
-
RelatedModelName extends string,
|
|
211
|
-
RelatedField extends string,
|
|
212
|
-
RelatedModel extends GenericModel<ID>,
|
|
213
|
-
ID extends IDType
|
|
214
|
-
> = {
|
|
215
|
-
error: '${types.delta_Model.errors.isRequiredDependency.discriminant}'
|
|
216
|
-
relatedModel: RelatedModelName
|
|
217
|
-
relatedField: RelatedField
|
|
218
|
-
relatedItems: RelatedModel[]
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
${errorTypes.join('\n')}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* The delta of for all models.
|
|
225
|
-
*/
|
|
226
|
-
export type ${types.delta} = {
|
|
227
|
-
${deltaTypes.join('\n')}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
export type DataChanges = {
|
|
231
|
-
/**
|
|
232
|
-
* The delta of all models.
|
|
233
|
-
*/
|
|
234
|
-
delta: ${types.delta}
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* The bulk mutations derived from the delta.
|
|
238
|
-
*/
|
|
239
|
-
bulkMutations: ${meta.data.types.bulkMutation}[]
|
|
240
|
-
}`;
|
|
241
|
-
}
|
|
242
|
-
exports.generateImportTypes = generateImportTypes;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SchemaMetaData } from '../../lib/meta';
|
|
2
|
-
import { Model } from '../../lib/schema/schema';
|
|
3
|
-
/**
|
|
4
|
-
* Generates a an array that contains all the repositories.
|
|
5
|
-
*/
|
|
6
|
-
export declare function generateRepositoriesArray({ models, meta }: {
|
|
7
|
-
models: Model[];
|
|
8
|
-
meta: SchemaMetaData;
|
|
9
|
-
}): string;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateRepositoriesArray = void 0;
|
|
4
|
-
const imports_1 = require("../../lib/imports");
|
|
5
|
-
const meta_1 = require("../../lib/meta");
|
|
6
|
-
/**
|
|
7
|
-
* Generates a an array that contains all the repositories.
|
|
8
|
-
*/
|
|
9
|
-
function generateRepositoriesArray({ models, meta }) {
|
|
10
|
-
const mm = models.map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }));
|
|
11
|
-
const imports = imports_1.ImportsGenerator.from(meta.data.repository.constFilePath);
|
|
12
|
-
for (const { meta } of mm) {
|
|
13
|
-
imports.addImport({
|
|
14
|
-
items: [meta.data.repository.className],
|
|
15
|
-
from: meta.data.repository.location.path,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return /* ts */ `
|
|
19
|
-
${imports.generate()}
|
|
20
|
-
|
|
21
|
-
export const repositories = [${models
|
|
22
|
-
.map((model) => (0, meta_1.getModelMetadata)({ model }).data.repository.className)
|
|
23
|
-
.join(', ')}]`;
|
|
24
|
-
}
|
|
25
|
-
exports.generateRepositoriesArray = generateRepositoriesArray;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SchemaMetaData } from '../../lib/meta';
|
|
2
|
-
import { Model } from '../../lib/schema/schema';
|
|
3
|
-
/**
|
|
4
|
-
* Generates the index file for all the routes.
|
|
5
|
-
*/
|
|
6
|
-
export declare function generateRoutesIndex({ models, meta }: {
|
|
7
|
-
models: Model[];
|
|
8
|
-
meta: SchemaMetaData;
|
|
9
|
-
}): string;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateRoutesIndex = void 0;
|
|
4
|
-
const imports_1 = require("../../lib/imports");
|
|
5
|
-
const meta_1 = require("../../lib/meta");
|
|
6
|
-
/**
|
|
7
|
-
* Generates the index file for all the routes.
|
|
8
|
-
*/
|
|
9
|
-
function generateRoutesIndex({ models, meta }) {
|
|
10
|
-
const mm = models.map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }));
|
|
11
|
-
const imports = imports_1.ImportsGenerator.from(meta.trpc.routesFilePath);
|
|
12
|
-
for (const { meta } of mm) {
|
|
13
|
-
imports.addImport({ items: [meta.trpc.routerName], from: meta.trpc.routerFilePath });
|
|
14
|
-
}
|
|
15
|
-
return /* ts */ `
|
|
16
|
-
${imports.generate()}
|
|
17
|
-
|
|
18
|
-
import { viewer } from './viewer.router'
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Object with all generated routes.
|
|
22
|
-
*/
|
|
23
|
-
export const routes = {
|
|
24
|
-
viewer,
|
|
25
|
-
${mm.map(({ meta }) => `${meta.trpc.routerName}`).join(',\n')}
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
28
|
-
}
|
|
29
|
-
exports.generateRoutesIndex = generateRoutesIndex;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SchemaMetaData } from '../../lib/meta';
|
|
2
|
-
import { Model } from '../../lib/schema/schema';
|
|
3
|
-
/**
|
|
4
|
-
* Generates the initial migration based on the generated seed data.
|
|
5
|
-
*/
|
|
6
|
-
export declare function generateSeedMigration({ models, meta }: {
|
|
7
|
-
models: Model[];
|
|
8
|
-
meta: SchemaMetaData;
|
|
9
|
-
}): string;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateSeedMigration = void 0;
|
|
4
|
-
const imports_1 = require("../../lib/imports");
|
|
5
|
-
const meta_1 = require("../../lib/meta");
|
|
6
|
-
const types_1 = require("../../lib/schema/types");
|
|
7
|
-
/**
|
|
8
|
-
* Generates the initial migration based on the generated seed data.
|
|
9
|
-
*/
|
|
10
|
-
function generateSeedMigration({ models, meta }) {
|
|
11
|
-
const imports = imports_1.ImportsGenerator.from(meta.seedData.initialMigrationLocation.path);
|
|
12
|
-
const modelTypes = [];
|
|
13
|
-
for (const model of models) {
|
|
14
|
-
const modelMeta = (0, meta_1.getModelMetadata)({ model });
|
|
15
|
-
imports.addImports({
|
|
16
|
-
[modelMeta.seed.location.path]: [modelMeta.seed.constantName],
|
|
17
|
-
[meta.import.converterFunctions.location.import]: [meta.import.converterFunctions.importedDataToBulkMutations],
|
|
18
|
-
[meta.seed.actionsLocation.import]: [(0, types_1.toTypeName)('Action_Seed_Data')],
|
|
19
|
-
});
|
|
20
|
-
modelTypes.push(`${modelMeta.seed.constantName}`);
|
|
21
|
-
}
|
|
22
|
-
return /* ts */ `
|
|
23
|
-
${imports.generate()}
|
|
24
|
-
|
|
25
|
-
export const MIGRATION_001_BASEDATA: Action_Seed_Data = {
|
|
26
|
-
scope: 'seed',
|
|
27
|
-
type: 'data',
|
|
28
|
-
name: 'Base data',
|
|
29
|
-
order: 1,
|
|
30
|
-
payload: ${meta.import.converterFunctions.importedDataToBulkMutations}({
|
|
31
|
-
${modelTypes.join(',\n')}
|
|
32
|
-
}),
|
|
33
|
-
}
|
|
34
|
-
`;
|
|
35
|
-
}
|
|
36
|
-
exports.generateSeedMigration = generateSeedMigration;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Model } from '../../lib/schema/schema';
|
|
3
|
-
/**
|
|
4
|
-
* Creates an Excel template file that can be used to manage Seed data.
|
|
5
|
-
* The template file contains a sheet for each model, with the column for each field.
|
|
6
|
-
*/
|
|
7
|
-
export declare function generateSeedExcelTemplate({ models }: {
|
|
8
|
-
models: Model[];
|
|
9
|
-
}): Promise<Buffer>;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.generateSeedExcelTemplate = void 0;
|
|
36
|
-
const Excel = __importStar(require("exceljs"));
|
|
37
|
-
const meta_1 = require("../../lib/meta");
|
|
38
|
-
/**
|
|
39
|
-
* Creates an Excel template file that can be used to manage Seed data.
|
|
40
|
-
* The template file contains a sheet for each model, with the column for each field.
|
|
41
|
-
*/
|
|
42
|
-
function generateSeedExcelTemplate(_a) {
|
|
43
|
-
return __awaiter(this, arguments, void 0, function* ({ models }) {
|
|
44
|
-
const wb = initializeWorkbook();
|
|
45
|
-
for (const model of [...models].sort((a, b) => a.name.localeCompare(b.name))) {
|
|
46
|
-
const meta = (0, meta_1.getModelMetadata)({ model });
|
|
47
|
-
addModel({ model, meta, wb });
|
|
48
|
-
}
|
|
49
|
-
const buffer = Buffer.from(yield wb.xlsx.writeBuffer());
|
|
50
|
-
return buffer;
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
exports.generateSeedExcelTemplate = generateSeedExcelTemplate;
|
|
54
|
-
function initializeWorkbook() {
|
|
55
|
-
const wb = new Excel.Workbook();
|
|
56
|
-
wb.creator = 'XLPort';
|
|
57
|
-
wb.lastModifiedBy = 'XLPort';
|
|
58
|
-
wb.created = new Date();
|
|
59
|
-
wb.modified = new Date();
|
|
60
|
-
return wb;
|
|
61
|
-
}
|
|
62
|
-
function addModel({ model, meta, wb }) {
|
|
63
|
-
const ws = wb.addWorksheet(model.name);
|
|
64
|
-
const table = ws.addTable({
|
|
65
|
-
name: meta.import.tableName,
|
|
66
|
-
ref: 'A1',
|
|
67
|
-
headerRow: true,
|
|
68
|
-
totalsRow: false,
|
|
69
|
-
style: {
|
|
70
|
-
theme: 'TableStyleMedium2',
|
|
71
|
-
showRowStripes: true,
|
|
72
|
-
},
|
|
73
|
-
columns: model.fields.map((field) => ({
|
|
74
|
-
name: (0, meta_1.getFieldMetadata)({ field }).excelColumnName,
|
|
75
|
-
})),
|
|
76
|
-
rows: [],
|
|
77
|
-
});
|
|
78
|
-
table.addRow(model.fields.map(() => null));
|
|
79
|
-
table.commit();
|
|
80
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates list of test ids for E2E tests.
|
|
3
|
-
*
|
|
4
|
-
* Note: This generator does not need the models or meta data passed in.
|
|
5
|
-
* Instead it uses the TestIdCollector singleton that already collected all ids during the generation process of the individual models.
|
|
6
|
-
*/
|
|
7
|
-
export declare function generateTestIds(): string;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateTestIds = void 0;
|
|
4
|
-
const test_id_collector_1 = require("../../lib/test-id-collector");
|
|
5
|
-
/**
|
|
6
|
-
* Generates list of test ids for E2E tests.
|
|
7
|
-
*
|
|
8
|
-
* Note: This generator does not need the models or meta data passed in.
|
|
9
|
-
* Instead it uses the TestIdCollector singleton that already collected all ids during the generation process of the individual models.
|
|
10
|
-
*/
|
|
11
|
-
function generateTestIds() {
|
|
12
|
-
// TestIdCollector is a static singleton that collects all ids during the generation process. We flush it here to get all ids.
|
|
13
|
-
const collectedIds = test_id_collector_1.TestIdCollector.flush();
|
|
14
|
-
const object = {};
|
|
15
|
-
const ids = collectedIds;
|
|
16
|
-
ids.sort();
|
|
17
|
-
for (const id of ids) {
|
|
18
|
-
const keys = id.split('-');
|
|
19
|
-
extendObject(object, keys, id);
|
|
20
|
-
}
|
|
21
|
-
const testIds = JSON.stringify(object, null, 2);
|
|
22
|
-
return /* ts */ `
|
|
23
|
-
/**
|
|
24
|
-
* Object with all generated test ids.
|
|
25
|
-
*/
|
|
26
|
-
export const MODEL_TEST_IDS =
|
|
27
|
-
${testIds}
|
|
28
|
-
`;
|
|
29
|
-
}
|
|
30
|
-
exports.generateTestIds = generateTestIds;
|
|
31
|
-
/**
|
|
32
|
-
* Recursively traverses the keys and adds the value to the object in a nested way.
|
|
33
|
-
* E.g. `{object, keys: ['post', 'create', 'name'], value}` will extend `object` with `{post: {create: {name: value}}}`.
|
|
34
|
-
*
|
|
35
|
-
*/
|
|
36
|
-
function extendObject(object, keys, value) {
|
|
37
|
-
const key = keys.shift();
|
|
38
|
-
// no item left -> we are at the end of the recursion
|
|
39
|
-
if (!key) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
// create the nested object if it does not exist yet
|
|
43
|
-
object[key] = object[key] || {};
|
|
44
|
-
// In case the object already has a value, we check if it is a string (and not a nested object).
|
|
45
|
-
// If it is a string, it we check if the value is the same as the new value. In this case is is a duplicate and hence fine.
|
|
46
|
-
// However, if it is a string and a different value, it means we have an inconsistent ID structure.
|
|
47
|
-
// E.g. this can happen when we have three entries: "post-create", "post-create-name", "post-create-description".
|
|
48
|
-
// In this case, the "post-create" entry will be a string - and we cannot nest `{name: ..., description: ...}` in it.
|
|
49
|
-
if (key in object && typeof object[key] === 'string') {
|
|
50
|
-
if (keys.length !== 0) {
|
|
51
|
-
throw new Error(`Key ${key} already exists with value: ${object[key]} but we are trying to nest ${keys.join('-')}`);
|
|
52
|
-
}
|
|
53
|
-
if (object[key] !== value) {
|
|
54
|
-
throw new Error(`Duplicate key ${key} with different values: ${object[key]} and ${value}`);
|
|
55
|
-
}
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
// If there are still keys left, we recursively call this function with the nested object and the remaining keys.
|
|
59
|
-
if (keys.length !== 0) {
|
|
60
|
-
extendObject(object[key], keys, value);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
// If there are no keys left, we need to verify that the object might not already have a nested object.
|
|
64
|
-
// This can happen, e.g. when we have two entries: "post-create-name" and "post-create".
|
|
65
|
-
// In this case, the `post.create` entry will be a nested object`{name: ...}`.
|
|
66
|
-
// If we would set `post.create` to a string, we would lose the nested object.
|
|
67
|
-
if (key in object && typeof object[key] !== 'string' && Object.keys(object[key]).length !== 0) {
|
|
68
|
-
throw new Error(`Key ${key} already has nested object ${JSON.stringify(object[key])} but we are trying to set it to ${value}`);
|
|
69
|
-
}
|
|
70
|
-
object[key] = value;
|
|
71
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { SchemaMetaData } from '../../lib/meta';
|
|
2
|
-
import { Enum, Model } from '../../lib/schema/schema';
|
|
3
|
-
/**
|
|
4
|
-
* Generates an index file that exports all types.
|
|
5
|
-
*/
|
|
6
|
-
export declare function generateTypesIndex({ models, enums, meta: schemaMeta, }: {
|
|
7
|
-
models: Model[];
|
|
8
|
-
enums: Enum[];
|
|
9
|
-
meta: SchemaMetaData;
|
|
10
|
-
}): string;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateTypesIndex = void 0;
|
|
4
|
-
const exports_1 = require("../../lib/exports");
|
|
5
|
-
const imports_1 = require("../../lib/imports");
|
|
6
|
-
const meta_1 = require("../../lib/meta");
|
|
7
|
-
/**
|
|
8
|
-
* Generates an index file that exports all types.
|
|
9
|
-
*/
|
|
10
|
-
function generateTypesIndex({ models, enums, meta: schemaMeta, }) {
|
|
11
|
-
const imports = imports_1.ImportsGenerator.from(schemaMeta.types.indexFilePath);
|
|
12
|
-
const exports = exports_1.ExportsGenerator.from(schemaMeta.types.indexFilePath);
|
|
13
|
-
for (const model of models) {
|
|
14
|
-
const modelMeta = (0, meta_1.getModelMetadata)({ model });
|
|
15
|
-
exports.exportEverythingFromPath(modelMeta.types.filePath);
|
|
16
|
-
imports.addTypeImport({ from: modelMeta.types.importPath, items: [modelMeta.types.brandedIdType] });
|
|
17
|
-
}
|
|
18
|
-
for (const enumerator of enums) {
|
|
19
|
-
const enumMeta = (0, meta_1.getEnumMetadata)({ enumerator });
|
|
20
|
-
exports.exportEverythingFromPath(enumMeta.types.filePath);
|
|
21
|
-
}
|
|
22
|
-
// dto.types contains generic types that are used by all models
|
|
23
|
-
exports.exportEverythingFromPath(schemaMeta.types.dto.path);
|
|
24
|
-
return /* ts */ `
|
|
25
|
-
${imports.generate()}
|
|
26
|
-
|
|
27
|
-
${exports.generate()}
|
|
28
|
-
|
|
29
|
-
export type ${schemaMeta.types.idTypesIndex} = {
|
|
30
|
-
${models.map((model) => `${model.typeName}: ${model.brandedIdType}`).join('\n')}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
`;
|
|
34
|
-
}
|
|
35
|
-
exports.generateTypesIndex = generateTypesIndex;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SchemaMetaData } from '../../../lib/meta';
|
|
2
|
-
import { Model } from '../../../lib/schema/schema';
|
|
3
|
-
/**
|
|
4
|
-
* Generates the action types for the BusinessLogicModule.
|
|
5
|
-
*/
|
|
6
|
-
export declare function generateBusinessLogicActionTypes({ models, meta }: {
|
|
7
|
-
models: Model[];
|
|
8
|
-
meta: SchemaMetaData;
|
|
9
|
-
}): string;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateBusinessLogicActionTypes = void 0;
|
|
4
|
-
const imports_1 = require("../../../lib/imports");
|
|
5
|
-
const meta_1 = require("../../../lib/meta");
|
|
6
|
-
const file_1 = require("../../../lib/utils/file");
|
|
7
|
-
/**
|
|
8
|
-
* Generates the action types for the BusinessLogicModule.
|
|
9
|
-
*/
|
|
10
|
-
function generateBusinessLogicActionTypes({ models, meta }) {
|
|
11
|
-
const imports = imports_1.ImportsGenerator.from(meta.update.actionTypesFilePath).addImport({
|
|
12
|
-
from: meta.actions.definition.importPath,
|
|
13
|
-
items: [meta.actions.definition.payload, meta.actions.definition.resultDict],
|
|
14
|
-
});
|
|
15
|
-
const updateServiceImports = [];
|
|
16
|
-
const modelNameTypeElements = [];
|
|
17
|
-
const actionsTypeElements = [];
|
|
18
|
-
const actionResultTypeElements = [];
|
|
19
|
-
for (const model of models) {
|
|
20
|
-
const modelMeta = (0, meta_1.getModelMetadata)({ model });
|
|
21
|
-
const className = modelMeta.update.serviceClassName;
|
|
22
|
-
const scope = modelMeta.update.actionModelDiscriminantName;
|
|
23
|
-
modelNameTypeElements.push(`'${scope}'`);
|
|
24
|
-
const relativeImportPath = (0, file_1.getRelativePath)({
|
|
25
|
-
from: meta.update.actionTypesFilePath,
|
|
26
|
-
to: modelMeta.update.serviceClassLocation.path,
|
|
27
|
-
});
|
|
28
|
-
updateServiceImports.push(`import type * as ${className} from '${relativeImportPath}'`);
|
|
29
|
-
actionsTypeElements.push(`${meta.actions.definition.payload}<${className}.Scope, ${className}.Actions>`);
|
|
30
|
-
actionResultTypeElements.push(`${scope}: ${meta.actions.definition.resultDict}<${className}.Actions>`);
|
|
31
|
-
}
|
|
32
|
-
return /* ts */ `
|
|
33
|
-
${imports.generate()}
|
|
34
|
-
|
|
35
|
-
${updateServiceImports.join('\n')}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Used by any of the default actions (create, update, delete) to identify the model.
|
|
39
|
-
*/
|
|
40
|
-
export type ModelName = ${modelNameTypeElements.join(' | ')}
|
|
41
|
-
|
|
42
|
-
export type Action_BusinessLogic = ${actionsTypeElements.join(' | ')}
|
|
43
|
-
|
|
44
|
-
export type ActionResult_BusinessLogic = {
|
|
45
|
-
${actionResultTypeElements.join('\n')}
|
|
46
|
-
}
|
|
47
|
-
`;
|
|
48
|
-
}
|
|
49
|
-
exports.generateBusinessLogicActionTypes = generateBusinessLogicActionTypes;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SchemaMetaData } from '../../../lib/meta';
|
|
2
|
-
import { Model } from '../../../lib/schema/schema';
|
|
3
|
-
/**
|
|
4
|
-
* Generates a BusinessLogic update module class.
|
|
5
|
-
*/
|
|
6
|
-
export declare function generateBusinessLogicUpdateModule({ models, meta }: {
|
|
7
|
-
models: Model[];
|
|
8
|
-
meta: SchemaMetaData;
|
|
9
|
-
}): string;
|