@postxl/generator 0.60.7 → 0.62.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.
Files changed (41) hide show
  1. package/dist/generator.js +29 -36
  2. package/dist/generators/indices/businesslogic-actiontypes.generator.js +6 -6
  3. package/dist/generators/indices/businesslogic-update-clonecontext.generator.js +3 -3
  4. package/dist/generators/indices/businesslogic-update-module.generator.js +9 -9
  5. package/dist/generators/indices/businesslogic-update-service.generator.js +6 -6
  6. package/dist/generators/indices/businesslogic-view-module.generator.js +8 -8
  7. package/dist/generators/indices/businesslogic-view-service.generator.js +6 -6
  8. package/dist/generators/indices/data-types.generator.js +1 -1
  9. package/dist/generators/indices/datamock-module.generator.js +8 -32
  10. package/dist/generators/indices/datamocker.generator.js +3 -3
  11. package/dist/generators/indices/datamodule.generator.js +5 -4
  12. package/dist/generators/indices/dataservice.generator.js +4 -4
  13. package/dist/generators/indices/dispatcher-service.generator.js +11 -10
  14. package/dist/generators/indices/importexport-convert-import-functions.generator.js +7 -7
  15. package/dist/generators/indices/importexport-exporter-class.generator.js +6 -6
  16. package/dist/generators/indices/importexport-import-service.generator.js +14 -12
  17. package/dist/generators/indices/importexport-types.generator.js +2 -2
  18. package/dist/generators/indices/repositories.generator.d.ts +0 -7
  19. package/dist/generators/indices/repositories.generator.js +2 -16
  20. package/dist/generators/indices/seed-migration.generator.js +6 -4
  21. package/dist/generators/indices/testdata-service.generator.js +7 -7
  22. package/dist/generators/models/businesslogic-update.generator.js +24 -23
  23. package/dist/generators/models/businesslogic-view.generator.js +8 -9
  24. package/dist/generators/models/importexport-decoder.generator.d.ts +0 -7
  25. package/dist/generators/models/importexport-decoder.generator.js +2 -16
  26. package/dist/generators/models/repository.generator.js +5 -7
  27. package/dist/generators/models/route.generator.js +3 -3
  28. package/dist/generators/models/seed.generator.js +2 -2
  29. package/dist/generators/models/stub.generator.js +1 -1
  30. package/dist/lib/meta.d.ts +189 -231
  31. package/dist/lib/meta.js +78 -91
  32. package/dist/lib/schema/schema.d.ts +10 -3
  33. package/dist/lib/schema/types.d.ts +27 -0
  34. package/dist/lib/schema/types.js +28 -1
  35. package/package.json +2 -2
  36. package/dist/generators/indices/businesslogic-update-index.generator.d.ts +0 -9
  37. package/dist/generators/indices/businesslogic-update-index.generator.js +0 -23
  38. package/dist/generators/indices/businesslogic-view-index.generator.d.ts +0 -9
  39. package/dist/generators/indices/businesslogic-view-index.generator.js +0 -19
  40. package/dist/generators/indices/stubs.generator.d.ts +0 -16
  41. package/dist/generators/indices/stubs.generator.js +0 -29
package/dist/generator.js CHANGED
@@ -43,10 +43,8 @@ const react_generator_1 = require("./generators/enums/react.generator");
43
43
  const types_generator_1 = require("./generators/enums/types.generator");
44
44
  const businesslogic_actiontypes_generator_1 = require("./generators/indices/businesslogic-actiontypes.generator");
45
45
  const businesslogic_update_clonecontext_generator_1 = require("./generators/indices/businesslogic-update-clonecontext.generator");
46
- const businesslogic_update_index_generator_1 = require("./generators/indices/businesslogic-update-index.generator");
47
46
  const businesslogic_update_module_generator_1 = require("./generators/indices/businesslogic-update-module.generator");
48
47
  const businesslogic_update_service_generator_1 = require("./generators/indices/businesslogic-update-service.generator");
49
- const businesslogic_view_index_generator_1 = require("./generators/indices/businesslogic-view-index.generator");
50
48
  const businesslogic_view_module_generator_1 = require("./generators/indices/businesslogic-view-module.generator");
51
49
  const businesslogic_view_service_generator_1 = require("./generators/indices/businesslogic-view-service.generator");
52
50
  const data_types_generator_1 = require("./generators/indices/data-types.generator");
@@ -65,7 +63,6 @@ const routes_index_generator_1 = require("./generators/indices/routes-index.gene
65
63
  const seed_migration_generator_1 = require("./generators/indices/seed-migration.generator");
66
64
  const seed_template_generator_1 = require("./generators/indices/seed-template.generator");
67
65
  const selectors_generator_1 = require("./generators/indices/selectors.generator");
68
- const stubs_generator_1 = require("./generators/indices/stubs.generator");
69
66
  const testdata_service_generator_1 = require("./generators/indices/testdata-service.generator");
70
67
  const types_generator_2 = require("./generators/indices/types.generator");
71
68
  const admin_page_generator_1 = require("./generators/models/admin.page.generator");
@@ -93,7 +90,8 @@ const CONFIG_SCHEMA = zod_1.z
93
90
  pathToE2ELib: zod_1.z.string().optional(),
94
91
  pathToImportExport: zod_1.z.string().optional(),
95
92
  pathToActions: zod_1.z.string().optional(),
96
- pathToBusinessLogic: zod_1.z.string().optional(),
93
+ pathToBusinessViewLogic: zod_1.z.string().optional(),
94
+ pathToBusinessUpdateLogic: zod_1.z.string().optional(),
97
95
  pathToSeedData: zod_1.z.string().optional(),
98
96
  pathToSeedLib: zod_1.z.string().optional(),
99
97
  pathToTypes: zod_1.z.string().optional(),
@@ -119,7 +117,8 @@ const CONFIG_SCHEMA = zod_1.z
119
117
  e2eLibPath: (0, types_1.toPath)(s.pathToE2ELib || './backend/libs/e2e/src/'),
120
118
  importExportPath: (0, types_1.toPath)(s.pathToImportExport || './backend/libs/import-export/src/'),
121
119
  actionsPath: (0, types_1.toPath)(s.pathToActions || './backend/libs/actions/src/'),
122
- businessLogicPath: (0, types_1.toPath)(s.pathToBusinessLogic || './backend/libs/business-logic/src/'),
120
+ businessViewLogicPath: (0, types_1.toPath)(s.pathToBusinessViewLogic || './backend/libs/view/src/'),
121
+ businessUpdateLogicPath: (0, types_1.toPath)(s.pathToBusinessUpdateLogic || './backend/libs/update/src/'),
123
122
  prismaMigrationsFolderPath: (0, types_1.toPath)(s.prismaMigrationsFolder || './migrations'),
124
123
  modelTypeDefinitionsPath: (0, types_1.toPath)(s.pathToTypes || './backend/libs/types/src/'),
125
124
  reactFolderPath: (0, types_1.toPath)(s.reactFolderOutput || './web/src/components/'),
@@ -181,17 +180,17 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
181
180
  // Types
182
181
  generated.write(`/${meta.types.filePath}.ts`, (0, types_generator_3.generateModelTypes)({ model, meta }));
183
182
  // Seed
184
- generated.write(`/${meta.seed.filePath}.ts`, (0, seed_generator_1.generateSeedModel)({ model, itemCount: 5, meta, models }));
183
+ generated.write(`/${meta.seed.location.path}.ts`, (0, seed_generator_1.generateSeedModel)({ model, itemCount: 5, meta, models }));
185
184
  // Data
186
- generated.write(`/${meta.data.stubFilePath}.ts`, (0, stub_generator_1.generateStub)({ model, meta }));
187
- generated.write(`/${meta.data.repository.filePath}.ts`, (0, repository_generator_1.generateRepository)({ model, meta }));
188
- generated.write(`/${meta.data.mockRepository.filePath}.ts`, (0, repository_generator_1.generateMockRepository)({ model, meta }));
189
- generated.write(`/${meta.e2e.dataMockerStubFilePath}.ts`, (0, stub_generator_1.generateStub)({ model, meta }));
185
+ generated.write(`/${meta.data.stubLocation.path}.ts`, (0, stub_generator_1.generateStub)({ model, meta }));
186
+ generated.write(`/${meta.data.repository.location.path}.ts`, (0, repository_generator_1.generateRepository)({ model, meta }));
187
+ generated.write(`/${meta.data.mockRepository.location.path}.ts`, (0, repository_generator_1.generateMockRepository)({ model, meta }));
188
+ generated.write(`/${meta.e2e.stubLocation.path}.ts`, (0, stub_generator_1.generateStub)({ model, meta }));
190
189
  // Import-Export
191
190
  generated.write(`/${meta.importExport.decoder.filePath}.ts`, (0, importexport_decoder_generator_1.generateModelImportExportDecoder)({ model, meta, schemaMeta: (0, meta_1.getSchemaMetadata)({ config }) }));
192
191
  // Business Logic
193
- generated.write(`/${meta.businessLogic.view.serviceFilePath}.ts`, (0, businesslogic_view_generator_1.generateModelBusinessLogicView)({ model, meta }));
194
- generated.write(`/${meta.businessLogic.update.serviceFilePath}.ts`, (0, businesslogic_update_generator_1.generateModelBusinessLogicUpdate)({ model, meta }));
192
+ generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, businesslogic_view_generator_1.generateModelBusinessLogicView)({ model, meta }));
193
+ generated.write(`/${meta.update.serviceClassLocation.path}.ts`, (0, businesslogic_update_generator_1.generateModelBusinessLogicUpdate)({ model, meta }));
195
194
  // Routes
196
195
  generated.write(`/${meta.trpc.routerFilePath}.ts`, (0, route_generator_1.generateRoute)({ model, meta }));
197
196
  // React
@@ -209,38 +208,32 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
209
208
  // Generate Index Files and Services
210
209
  const meta = (0, meta_1.getSchemaMetadata)({ config });
211
210
  // Data
212
- generated.write(`/${meta.data.dataMockModuleFilePath}.ts`, (0, datamock_module_generator_1.generateDataMockModule)({ models, meta }));
213
- generated.write(`/${meta.data.dataModuleFilePath}.ts`, (0, datamodule_generator_1.generateDataModule)({ models, meta }));
211
+ generated.write(`/${meta.data.mockModule.location.path}.ts`, (0, datamock_module_generator_1.generateDataMockModule)({ models, meta }));
212
+ generated.write(`/${meta.data.moduleLocation.path}.ts`, (0, datamodule_generator_1.generateDataModule)({ models, meta }));
214
213
  generated.write(`/${meta.data.emptyDbCommandFilePath}.ts`, (0, emptydatabasemigration_generator_1.generateEmptyDatabaseCommand)({ models, meta }));
215
- generated.write(`/${meta.data.dataService.filePath}.ts`, (0, dataservice_generator_1.generateDataService)({ models, meta }));
214
+ generated.write(`/${meta.data.dataService.location.path}.ts`, (0, dataservice_generator_1.generateDataService)({ models, meta }));
216
215
  generated.write(`/${meta.data.testDataServiceFilePath}.ts`, (0, testdata_service_generator_1.generateTestDataService)({ models, meta }));
217
- generated.write(`/${meta.e2e.dataMocker.filePath}.ts`, (0, datamocker_generator_1.generateDataMocker)({ models, meta }));
216
+ generated.write(`/${meta.e2e.dataMockerLocation.path}.ts`, (0, datamocker_generator_1.generateDataMocker)({ models, meta }));
218
217
  generated.write(`/${meta.e2e.selectorsFilePath}.ts`, (0, selectors_generator_1.generateSelectors)());
219
- generated.write(`/${meta.e2e.dataMocker.stubIndexFilePath}.ts`, (0, stubs_generator_1.generateDataMockerStubsIndex)({ models, meta }));
220
218
  generated.write(`/${meta.data.repository.constFilePath}.ts`, (0, repositories_generator_1.generateRepositoriesArray)({ models, meta }));
221
- generated.write(`/${meta.data.repository.indexFilePath}.ts`, (0, repositories_generator_1.generateRepositoriesIndex)({ models, meta }));
222
- generated.write(`/${meta.data.stubIndexFilePath}.ts`, (0, stubs_generator_1.generateStubsIndex)({ models, meta }));
223
- generated.write(`/${meta.data.types.filePath}.ts`, (0, data_types_generator_1.generateDataTypes)({ models, meta }));
219
+ generated.write(`/${meta.data.types.location.path}.ts`, (0, data_types_generator_1.generateDataTypes)({ models, meta }));
224
220
  // Import-Export
225
- generated.write(`/${meta.importExport.types.filePath}.ts`, (0, importexport_types_generator_1.generateImportExportTypes)({ models, meta }));
226
- generated.write(`/${meta.importExport.exporterClass.filePath}.ts`, (0, importexport_exporter_class_generator_1.generateImportExportExporterClass)({ models, meta }));
227
- generated.write(`/${meta.importExport.importService.filePath}.ts`, (0, importexport_import_service_generator_1.generateImportExportImportService)({ models, meta }));
228
- generated.write(`/${meta.importExport.decoder.indexFilePath}.ts`, (0, importexport_decoder_generator_1.generateImportExportDecoderIndex)({ models, meta }));
229
- generated.write(`/${meta.importExport.decoder.fullDecoderFilePath}.ts`, (0, importexport_decoder_generator_1.generateImportExportDecoder)({ models, meta }));
230
- generated.write(`/${meta.importExport.converterFunctions.filePath}.ts`, (0, importexport_convert_import_functions_generator_1.generateImportExportConvertImportFunctions)({ models, meta }));
221
+ generated.write(`/${meta.importExport.types.location.path}.ts`, (0, importexport_types_generator_1.generateImportExportTypes)({ models, meta }));
222
+ generated.write(`/${meta.importExport.exporterClass.location.path}.ts`, (0, importexport_exporter_class_generator_1.generateImportExportExporterClass)({ models, meta }));
223
+ generated.write(`/${meta.importExport.importService.location.path}.ts`, (0, importexport_import_service_generator_1.generateImportExportImportService)({ models, meta }));
224
+ generated.write(`/${meta.importExport.decoder.location.path}.ts`, (0, importexport_decoder_generator_1.generateImportExportDecoder)({ models, meta }));
225
+ generated.write(`/${meta.importExport.converterFunctions.location.path}.ts`, (0, importexport_convert_import_functions_generator_1.generateImportExportConvertImportFunctions)({ models, meta }));
231
226
  // Actions
232
- generated.write(`/${meta.actions.dispatcher.filePath}.ts`, (0, dispatcher_service_generator_1.generateActionsDispatcherService)({ models, meta }));
227
+ generated.write(`/${meta.actions.dispatcher.classLocation.path}.ts`, (0, dispatcher_service_generator_1.generateActionsDispatcherService)({ models, meta }));
233
228
  // Business Logic
234
- generated.write(`/${meta.businessLogic.view.indexFilePath}.ts`, (0, businesslogic_view_index_generator_1.generateBusinessLogicViewIndex)({ models, meta }));
235
- generated.write(`/${meta.businessLogic.view.moduleFilePath}.ts`, (0, businesslogic_view_module_generator_1.generateBusinessLogicViewModule)({ models, meta }));
236
- generated.write(`/${meta.businessLogic.view.serviceFilePath}.ts`, (0, businesslogic_view_service_generator_1.generateBusinessLogicViewService)({ models, meta }));
237
- generated.write(`/${meta.businessLogic.update.indexFilePath}.ts`, (0, businesslogic_update_index_generator_1.generateBusinessLogicUpdateIndex)({ models, meta }));
238
- generated.write(`/${meta.businessLogic.update.cloneContextFilePath}.ts`, (0, businesslogic_update_clonecontext_generator_1.generateBusinessLogicCloneContext)({ models, meta }));
239
- generated.write(`/${meta.businessLogic.update.moduleFilePath}.ts`, (0, businesslogic_update_module_generator_1.generateBusinessLogicUpdateModule)({ models, meta }));
240
- generated.write(`/${meta.businessLogic.update.serviceFilePath}.ts`, (0, businesslogic_update_service_generator_1.generateBusinessLogicUpdateService)({ models, meta }));
241
- generated.write(`/${meta.businessLogic.update.actionTypesFilePath}.ts`, (0, businesslogic_actiontypes_generator_1.generateBusinessLogicActionTypes)({ models, meta }));
229
+ generated.write(`/${meta.view.moduleLocation.path}.ts`, (0, businesslogic_view_module_generator_1.generateBusinessLogicViewModule)({ models, meta }));
230
+ generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, businesslogic_view_service_generator_1.generateBusinessLogicViewService)({ models, meta }));
231
+ generated.write(`/${meta.update.cloneContextFilePath}.ts`, (0, businesslogic_update_clonecontext_generator_1.generateBusinessLogicCloneContext)({ models, meta }));
232
+ generated.write(`/${meta.update.moduleLocation.path}.ts`, (0, businesslogic_update_module_generator_1.generateBusinessLogicUpdateModule)({ models, meta }));
233
+ generated.write(`/${meta.update.serviceLocation.path}.ts`, (0, businesslogic_update_service_generator_1.generateBusinessLogicUpdateService)({ models, meta }));
234
+ generated.write(`/${meta.update.actionTypesFilePath}.ts`, (0, businesslogic_actiontypes_generator_1.generateBusinessLogicActionTypes)({ models, meta }));
242
235
  // Seed
243
- generated.write(`/${meta.seedData.initialMigrationFilePath}.ts`, (0, seed_migration_generator_1.generateSeedMigration)({ models, meta }));
236
+ generated.write(`/${meta.seedData.initialMigrationLocation.path}.ts`, (0, seed_migration_generator_1.generateSeedMigration)({ models, meta }));
244
237
  generated.write(`/${meta.seedData.templateExcelFilePath}`, yield (0, seed_template_generator_1.generateSeedExcelTemplate)({ models }));
245
238
  // Routes
246
239
  generated.write(`/${meta.trpc.routesFilePath}.ts`, (0, routes_index_generator_1.generateRoutesIndex)({ models, meta }));
@@ -8,8 +8,8 @@ const file_1 = require("../../lib/utils/file");
8
8
  * Generates the action types for the BusinessLogicModule.
9
9
  */
10
10
  function generateBusinessLogicActionTypes({ models, meta }) {
11
- const imports = imports_1.ImportsGenerator.from(meta.businessLogic.update.actionTypesFilePath).addImport({
12
- from: meta.actions.importPath,
11
+ const imports = imports_1.ImportsGenerator.from(meta.update.actionTypesFilePath).addImport({
12
+ from: meta.actions.definition.importPath,
13
13
  items: [meta.actions.definition.payload, meta.actions.definition.resultDict],
14
14
  });
15
15
  const updateServiceImports = [];
@@ -18,12 +18,12 @@ function generateBusinessLogicActionTypes({ models, meta }) {
18
18
  const actionResultTypeElements = [];
19
19
  for (const model of models) {
20
20
  const modelMeta = (0, meta_1.getModelMetadata)({ model });
21
- const className = modelMeta.businessLogic.update.serviceClassName;
22
- const scope = modelMeta.businessLogic.update.actionModelDiscriminantName;
21
+ const className = modelMeta.update.serviceClassName;
22
+ const scope = modelMeta.update.actionModelDiscriminantName;
23
23
  modelNameTypeElements.push(`'${scope}'`);
24
24
  const relativeImportPath = (0, file_1.getRelativePath)({
25
- from: meta.businessLogic.update.actionTypesFilePath,
26
- to: modelMeta.businessLogic.update.serviceFilePath,
25
+ from: meta.update.actionTypesFilePath,
26
+ to: modelMeta.update.serviceClassLocation.path,
27
27
  });
28
28
  updateServiceImports.push(`import type * as ${className} from '${relativeImportPath}'`);
29
29
  actionsTypeElements.push(`${meta.actions.definition.payload}<${className}.Scope, ${className}.Actions>`);
@@ -7,7 +7,7 @@ const meta_1 = require("../../lib/meta");
7
7
  * Generates the clone context for the business logic update service.
8
8
  */
9
9
  function generateBusinessLogicCloneContext({ models, meta: schemaMeta, }) {
10
- const imports = imports_1.ImportsGenerator.from(schemaMeta.businessLogic.update.cloneContextFilePath);
10
+ const imports = imports_1.ImportsGenerator.from(schemaMeta.update.cloneContextFilePath);
11
11
  const typeDefinitions = [];
12
12
  const mapAssignments = [];
13
13
  for (const model of models) {
@@ -15,8 +15,8 @@ function generateBusinessLogicCloneContext({ models, meta: schemaMeta, }) {
15
15
  imports.addImports({
16
16
  [schemaMeta.types.importPath]: [modelMeta.types.brandedIdType, modelMeta.types.typeName],
17
17
  });
18
- typeDefinitions.push(`${modelMeta.businessLogic.update.cloneContextMap}: Map<${modelMeta.types.brandedIdType}, ${modelMeta.types.typeName}>`);
19
- mapAssignments.push(`${modelMeta.businessLogic.update.cloneContextMap}: new Map()`);
18
+ typeDefinitions.push(`${modelMeta.update.cloneContextMap}: Map<${modelMeta.types.brandedIdType}, ${modelMeta.types.typeName}>`);
19
+ mapAssignments.push(`${modelMeta.update.cloneContextMap}: new Map()`);
20
20
  }
21
21
  return /* ts */ `
22
22
  ${imports.generate()}
@@ -9,20 +9,20 @@ const meta_1 = require("../../lib/meta");
9
9
  function generateBusinessLogicUpdateModule({ models, meta }) {
10
10
  const mm = models
11
11
  .map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }))
12
- .sort((a, b) => a.meta.businessLogic.update.serviceClassName.localeCompare(b.meta.businessLogic.update.serviceClassName));
13
- const imports = imports_1.ImportsGenerator.from(meta.businessLogic.update.moduleFilePath).addImports({
14
- [meta.businessLogic.update.serviceFilePath]: meta.businessLogic.update.serviceClassName,
15
- [meta.businessLogic.view.importPath]: meta.businessLogic.view.moduleName,
12
+ .sort((a, b) => a.meta.update.serviceClassName.localeCompare(b.meta.update.serviceClassName));
13
+ const imports = imports_1.ImportsGenerator.from(meta.update.moduleLocation.path).addImports({
14
+ [meta.update.serviceLocation.path]: meta.update.serviceClassName,
15
+ [meta.view.moduleLocation.import]: meta.view.moduleName,
16
16
  });
17
- const providers = [meta.businessLogic.update.serviceClassName];
17
+ const providers = [meta.update.serviceClassName];
18
18
  for (const { meta } of mm) {
19
19
  imports.addImport({
20
- items: [meta.businessLogic.update.serviceClassName],
21
- from: meta.businessLogic.update.serviceFilePath,
20
+ items: [meta.update.serviceClassName],
21
+ from: meta.update.serviceClassLocation.path,
22
22
  });
23
- providers.push(meta.businessLogic.update.serviceClassName);
23
+ providers.push(meta.update.serviceClassName);
24
24
  }
25
- const moduleName = meta.businessLogic.update.moduleName;
25
+ const moduleName = meta.update.moduleName;
26
26
  return /* ts */ `
27
27
  import { Module } from '@nestjs/common'
28
28
 
@@ -9,16 +9,16 @@ const meta_1 = require("../../lib/meta");
9
9
  function generateBusinessLogicUpdateService({ models, meta, }) {
10
10
  const mm = models
11
11
  .map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }))
12
- .sort((a, b) => a.meta.businessLogic.update.serviceClassName.localeCompare(b.meta.businessLogic.update.serviceClassName));
13
- const imports = imports_1.ImportsGenerator.from(meta.businessLogic.update.serviceFilePath);
12
+ .sort((a, b) => a.meta.update.serviceClassName.localeCompare(b.meta.update.serviceClassName));
13
+ const imports = imports_1.ImportsGenerator.from(meta.update.serviceLocation.path);
14
14
  for (const { meta } of mm) {
15
15
  imports.addImport({
16
- items: [meta.businessLogic.update.serviceClassName],
17
- from: meta.businessLogic.update.serviceFilePath,
16
+ items: [meta.update.serviceClassName],
17
+ from: meta.update.serviceClassLocation.path,
18
18
  });
19
19
  }
20
20
  const constructor = mm
21
- .map(({ meta }) => `@Inject(forwardRef(() => ${meta.businessLogic.update.serviceClassName})) public readonly ${meta.businessLogic.update.serviceVariableName} :${meta.businessLogic.update.serviceClassName}`)
21
+ .map(({ meta }) => `@Inject(forwardRef(() => ${meta.update.serviceClassName})) public readonly ${meta.update.serviceVariableName} :${meta.update.serviceClassName}`)
22
22
  .join(',\n');
23
23
  return /* ts */ `
24
24
  import { Inject, Injectable, forwardRef } from '@nestjs/common'
@@ -26,7 +26,7 @@ function generateBusinessLogicUpdateService({ models, meta, }) {
26
26
  ${imports.generate()}
27
27
 
28
28
  @Injectable()
29
- export class ${meta.businessLogic.update.serviceClassName} {
29
+ export class ${meta.update.serviceClassName} {
30
30
  constructor(${constructor}) {}
31
31
  }
32
32
  `;
@@ -9,19 +9,19 @@ const meta_1 = require("../../lib/meta");
9
9
  function generateBusinessLogicViewModule({ models, meta }) {
10
10
  const mm = models
11
11
  .map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }))
12
- .sort((a, b) => a.meta.businessLogic.view.serviceClassName.localeCompare(b.meta.businessLogic.view.serviceClassName));
13
- const imports = imports_1.ImportsGenerator.from(meta.businessLogic.view.moduleFilePath).addImports({
14
- [meta.businessLogic.view.serviceFilePath]: meta.businessLogic.view.serviceClassName,
12
+ .sort((a, b) => a.meta.view.serviceClassName.localeCompare(b.meta.view.serviceClassName));
13
+ const imports = imports_1.ImportsGenerator.from(meta.view.moduleLocation.path).addImports({
14
+ [meta.view.serviceLocation.path]: meta.view.serviceClassName,
15
15
  });
16
- const providers = [meta.businessLogic.view.serviceClassName];
16
+ const providers = [meta.view.serviceClassName];
17
17
  for (const { meta } of mm) {
18
18
  imports.addImport({
19
- items: [meta.businessLogic.view.serviceClassName],
20
- from: meta.businessLogic.view.serviceFilePath,
19
+ items: [meta.view.serviceClassName],
20
+ from: meta.view.serviceLocation.path,
21
21
  });
22
- providers.push(meta.businessLogic.view.serviceClassName);
22
+ providers.push(meta.view.serviceClassName);
23
23
  }
24
- const moduleName = meta.businessLogic.view.moduleName;
24
+ const moduleName = meta.view.moduleName;
25
25
  return /* ts */ `
26
26
  import { Module } from '@nestjs/common'
27
27
 
@@ -9,16 +9,16 @@ const meta_1 = require("../../lib/meta");
9
9
  function generateBusinessLogicViewService({ models, meta }) {
10
10
  const mm = models
11
11
  .map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }))
12
- .sort((a, b) => a.meta.businessLogic.view.serviceClassName.localeCompare(b.meta.businessLogic.view.serviceClassName));
13
- const imports = imports_1.ImportsGenerator.from(meta.businessLogic.view.serviceFilePath);
12
+ .sort((a, b) => a.meta.view.serviceClassName.localeCompare(b.meta.view.serviceClassName));
13
+ const imports = imports_1.ImportsGenerator.from(meta.view.serviceLocation.path);
14
14
  for (const { meta } of mm) {
15
15
  imports.addImport({
16
- items: [meta.businessLogic.view.serviceClassName],
17
- from: meta.businessLogic.view.serviceFilePath,
16
+ items: [meta.view.serviceClassName],
17
+ from: meta.view.serviceLocation.path,
18
18
  });
19
19
  }
20
20
  const constructor = mm
21
- .map(({ meta }) => `@Inject(forwardRef(() => ${meta.businessLogic.view.serviceClassName})) public readonly ${meta.businessLogic.view.serviceVariableName} :${meta.businessLogic.view.serviceClassName}`)
21
+ .map(({ meta }) => `@Inject(forwardRef(() => ${meta.view.serviceClassName})) public readonly ${meta.view.serviceVariableName} :${meta.view.serviceClassName}`)
22
22
  .join(',\n');
23
23
  return /* ts */ `
24
24
  import { Inject, Injectable, forwardRef } from '@nestjs/common'
@@ -26,7 +26,7 @@ import { Inject, Injectable, forwardRef } from '@nestjs/common'
26
26
  ${imports.generate()}
27
27
 
28
28
  @Injectable()
29
- export class ${meta.businessLogic.view.serviceClassName} {
29
+ export class ${meta.view.serviceClassName} {
30
30
  constructor(${constructor}) {}
31
31
  }
32
32
  `;
@@ -8,7 +8,7 @@ const meta_1 = require("../../lib/meta");
8
8
  */
9
9
  function generateDataTypes({ models, meta }) {
10
10
  const { types } = meta.data;
11
- const imports = imports_1.ImportsGenerator.from(types.filePath);
11
+ const imports = imports_1.ImportsGenerator.from(types.location.path);
12
12
  const dto = meta.types.dto;
13
13
  imports.addTypeImport({
14
14
  from: meta.types.importPath,
@@ -1,47 +1,24 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.generateDataMockModule = void 0;
27
4
  const imports_1 = require("../../lib/imports");
28
5
  const meta_1 = require("../../lib/meta");
29
- const Types = __importStar(require("../../lib/schema/types"));
30
6
  /**
31
7
  * Generates a mocking class
32
8
  */
33
9
  function generateDataMockModule({ models, meta }) {
34
10
  const mm = models.map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }));
35
- const imports = imports_1.ImportsGenerator.from(meta.data.dataMockModuleFilePath).addImports({
36
- [meta.data.dataModuleFilePath]: [Types.toVariableName('DataModule')],
37
- [meta.data.dataService.filePath]: [meta.data.dataService.class],
11
+ const imports = imports_1.ImportsGenerator.from(meta.data.mockModule.location.path).addImports({
12
+ [meta.data.moduleLocation.path]: [meta.data.moduleName],
13
+ [meta.data.dataService.location.path]: [meta.data.dataService.class],
14
+ [meta.backendModules.db.moduleLocation.import]: [meta.backendModules.db.moduleName],
38
15
  // we need to import the file directly instead via the normal index file as this would cause a circular dependency else
39
- [meta.actions.importPath]: [meta.actions.execution.mock],
16
+ [meta.actions.execution.mockLocation.import]: [meta.actions.execution.mock],
40
17
  });
41
18
  for (const { model, meta } of mm) {
42
19
  imports.addTypeImport({ items: [model.typeName], from: meta.types.importPath });
43
- imports.addImport({ items: [meta.data.repository.className], from: meta.data.repository.filePath });
44
- imports.addImport({ items: [meta.data.mockRepository.className], from: meta.data.mockRepository.filePath });
20
+ imports.addImport({ items: [meta.data.repository.className], from: meta.data.repository.location.path });
21
+ imports.addImport({ items: [meta.data.mockRepository.className], from: meta.data.mockRepository.location.path });
45
22
  }
46
23
  const providers = mm
47
24
  .map(({ meta }) => `{
@@ -57,11 +34,10 @@ function generateDataMockModule({ models, meta }) {
57
34
  .join(', ');
58
35
  return /* ts */ `
59
36
  import { DynamicModule } from '@nestjs/common'
60
- import { DatabaseModule } from '@backend/db'
61
37
 
62
38
  ${imports.generate()}
63
39
 
64
- export class ${meta.data.dataMockModuleName} {
40
+ export class ${meta.data.mockModule.name} {
65
41
  static mock(seed?: MockData): DynamicModule {
66
42
  const execution = new MockActionExecution()
67
43
 
@@ -10,11 +10,11 @@ const types_1 = require("../../lib/schema/types");
10
10
  */
11
11
  function generateDataMocker({ models, meta: schemaMeta }) {
12
12
  const modelMetas = models.map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }));
13
- const imports = imports_1.ImportsGenerator.from(schemaMeta.e2e.dataMocker.filePath);
13
+ const imports = imports_1.ImportsGenerator.from(schemaMeta.e2e.dataMockerLocation.path);
14
14
  for (const { model, meta } of modelMetas) {
15
15
  imports.addImports({
16
16
  [meta.types.importPath]: [(0, types_1.toAnnotatedTypeName)(model.typeName)],
17
- [schemaMeta.e2e.dataMocker.stubImportPath]: [meta.data.stubGenerationFnName],
17
+ [meta.e2e.stubLocation.path]: [meta.e2e.stubGenerationFnName],
18
18
  });
19
19
  }
20
20
  const publicVariables = modelMetas
@@ -26,7 +26,7 @@ function generateDataMocker({ models, meta: schemaMeta }) {
26
26
  const addDataFunctions = modelMetas.map(({ model, meta }) => generateAddDataFunction(model, meta)).join('\n');
27
27
  return `
28
28
  /* eslint-disable @typescript-eslint/no-unused-vars */
29
- import type { MockData } from '@backend/data'
29
+ import type { MockData } from '@backend/data/data.mock.module'
30
30
 
31
31
  ${imports.generate()}
32
32
 
@@ -8,19 +8,20 @@ const meta_1 = require("../../lib/meta");
8
8
  */
9
9
  function generateDataModule({ models, meta }) {
10
10
  const mm = models.map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }));
11
- const imports = imports_1.ImportsGenerator.from(meta.data.dataModuleFilePath).addImports({
12
- [meta.data.dataService.filePath]: [meta.data.dataService.class],
11
+ const imports = imports_1.ImportsGenerator.from(meta.data.moduleLocation.path).addImports({
12
+ [meta.data.dataService.location.path]: [meta.data.dataService.class],
13
+ [meta.backendModules.db.databaseService.location.import]: [meta.backendModules.db.databaseService.name],
14
+ [meta.backendModules.db.moduleLocation.import]: [meta.backendModules.db.moduleName],
13
15
  });
14
16
  for (const { meta } of mm) {
15
17
  imports.addImport({
16
18
  items: [meta.data.repository.className],
17
- from: meta.data.repository.filePath,
19
+ from: meta.data.repository.location.path,
18
20
  });
19
21
  }
20
22
  const moduleName = meta.data.moduleName;
21
23
  return /* ts */ `
22
24
  import { DynamicModule, FactoryProvider } from '@nestjs/common'
23
- import { DatabaseModule, DatabaseService } from '@backend/db'
24
25
 
25
26
  ${imports.generate()}
26
27
 
@@ -9,11 +9,11 @@ const types_1 = require("../../lib/schema/types");
9
9
  */
10
10
  function generateDataService({ models, meta }) {
11
11
  const mm = models.map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }));
12
- const imports = imports_1.ImportsGenerator.from(meta.data.dataService.filePath);
12
+ const imports = imports_1.ImportsGenerator.from(meta.data.dataService.location.path);
13
13
  for (const { meta } of mm) {
14
14
  imports.addImport({
15
15
  items: [meta.data.repository.className],
16
- from: meta.data.repository.filePath,
16
+ from: meta.data.repository.location.path,
17
17
  });
18
18
  }
19
19
  const constructor = mm
@@ -28,8 +28,8 @@ function generateDataService({ models, meta }) {
28
28
  imports.addImports({
29
29
  [meta.types.importPath]: [(0, types_1.toAnnotatedTypeName)(meta.types.dto.create), (0, types_1.toAnnotatedTypeName)(meta.types.dto.update)],
30
30
  [meta.data.repository.typeFilePath]: [(0, types_1.toAnnotatedTypeName)(meta.data.repository.typeName)],
31
- [meta.data.types.filePath]: [(0, types_1.toAnnotatedTypeName)(meta.data.types.bulkMutation)],
32
- [meta.actions.importPath]: [meta.actions.execution.interface],
31
+ [meta.data.types.location.import]: [(0, types_1.toAnnotatedTypeName)(meta.data.types.bulkMutation)],
32
+ [meta.actions.execution.interfaceLocation.import]: [meta.actions.execution.interface],
33
33
  });
34
34
  const creates = [];
35
35
  const updates = [];
@@ -8,11 +8,13 @@ const types_1 = require("../../lib/schema/types");
8
8
  * Generates the action dispatcher service.
9
9
  */
10
10
  function generateActionsDispatcherService({ models, meta }) {
11
- const imports = imports_1.ImportsGenerator.from(meta.actions.dispatcher.filePath).addImports({
12
- [meta.seed.importPath]: [meta.seed.serviceClassName],
13
- [meta.importExport.importPath]: [meta.importExport.importService.name],
14
- [meta.businessLogic.update.importPath]: [meta.businessLogic.update.serviceClassName],
11
+ const imports = imports_1.ImportsGenerator.from(meta.actions.dispatcher.classLocation.path).addImports({
12
+ [meta.seed.serviceLocation.import]: [meta.seed.serviceClassName],
13
+ [meta.importExport.importService.location.import]: [meta.importExport.importService.name],
14
+ [meta.update.serviceLocation.import]: [meta.update.serviceClassName],
15
15
  [meta.types.importPath]: (0, types_1.toAnnotatedTypeName)(meta.config.userType),
16
+ [meta.backendModules.db.databaseService.location.import]: [meta.backendModules.db.databaseService.name],
17
+ [meta.actions.execution.interfaceLocation.path]: [meta.actions.execution.interface],
16
18
  });
17
19
  const dataLoader = [];
18
20
  for (const model of models) {
@@ -23,11 +25,10 @@ function generateActionsDispatcherService({ models, meta }) {
23
25
  import { Injectable } from '@nestjs/common'
24
26
 
25
27
  import { ExhaustiveSwitchCheck } from '@backend/common'
26
- import { DatabaseService } from '@backend/db'
27
28
 
28
29
  ${imports.generate()}
29
30
 
30
- import { ActionExecutionFactory, IActionExecution } from './execution'
31
+ import { ActionExecutionFactory } from './execution/action'
31
32
  import { Action, ResultOfAction } from './actions.types'
32
33
 
33
34
 
@@ -42,7 +43,7 @@ export class ${meta.actions.dispatcher.class} {
42
43
  public ${meta.importExport.importService.sharedName}: ImportService = {} as unknown as any
43
44
 
44
45
  constructor(
45
- private readonly updateService: ${meta.businessLogic.update.serviceClassName},
46
+ private readonly updateService: ${meta.update.serviceClassName},
46
47
  private readonly databaseService: DatabaseService,
47
48
  private readonly actionExecutionFactory: ActionExecutionFactory,
48
49
  ) {}
@@ -77,14 +78,14 @@ export class ${meta.actions.dispatcher.class} {
77
78
  .map((model) => {
78
79
  const modelMeta = (0, meta_1.getModelMetadata)({ model });
79
80
  return `
80
- case '${modelMeta.businessLogic.scopeName}': {
81
- const method = this.updateService.${modelMeta.businessLogic.update.serviceVariableName}[action.type] as (params: {
81
+ case '${modelMeta.update.scopeName}': {
82
+ const method = this.updateService.${modelMeta.update.serviceVariableName}[action.type] as (params: {
82
83
  data: A['payload']
83
84
  execution: IActionExecution
84
85
  }) => Promise<ResultOfAction<A>>
85
86
 
86
87
  // NOTE: We need to bind the method to the service instance, as it is a method of the service and not a standalone function.
87
- return method.bind(this.updateService.${modelMeta.businessLogic.update.serviceVariableName})({ data: action.payload, execution })
88
+ return method.bind(this.updateService.${modelMeta.update.serviceVariableName})({ data: action.payload, execution })
88
89
  }
89
90
  `;
90
91
  })
@@ -13,18 +13,18 @@ function generateImportExportConvertImportFunctions({ models, meta, }) {
13
13
  const { importedDataToBulkMutations, deltaToBulkMutations } = meta.importExport.converterFunctions;
14
14
  const { types } = meta.importExport;
15
15
  const { delta } = types;
16
- const imports = imports_1.ImportsGenerator.from(meta.importExport.converterFunctions.filePath);
16
+ const imports = imports_1.ImportsGenerator.from(meta.importExport.converterFunctions.location.path);
17
17
  imports.addImports({
18
- [meta.importExport.decoder.fullDecoderFilePath]: [
18
+ [meta.importExport.decoder.location.path]: [
19
19
  (0, types_1.toAnnotatedTypeName)(meta.importExport.decoder.decodedPXLModelDataTypeName),
20
20
  ],
21
- [meta.data.importPath]: [
22
- (0, types_1.toAnnotatedTypeName)(meta.data.dataMockDataType),
21
+ [meta.data.types.location.import]: [
23
22
  (0, types_1.toAnnotatedTypeName)(meta.data.types.bulkMutation),
24
23
  (0, types_1.toAnnotatedTypeName)(meta.data.types.bulkMutationForModel),
25
24
  ],
25
+ [meta.data.mockModule.location.import]: [(0, types_1.toAnnotatedTypeName)(meta.data.dataMockDataType)],
26
26
  [meta.types.importPath]: [(0, types_1.toAnnotatedTypeName)(dto.genericModel), (0, types_1.toAnnotatedTypeName)(dto.idType)],
27
- [types.filePath]: [(0, types_1.toAnnotatedTypeName)(types.delta), (0, types_1.toAnnotatedTypeName)(types.delta_Model.type)],
27
+ [types.location.path]: [(0, types_1.toAnnotatedTypeName)(types.delta), (0, types_1.toAnnotatedTypeName)(types.delta_Model.type)],
28
28
  });
29
29
  const importConverterBlocks = [];
30
30
  const deltaConverterBlocks = [];
@@ -379,11 +379,11 @@ function generateDeltaBlock({ fieldsGrouped, modelMeta, schemaMeta, imports, })
379
379
  items: [modelMeta.types.typeName, modelMeta.types.brandedIdType],
380
380
  });
381
381
  imports.addTypeImport({
382
- from: schemaMeta.importExport.types.filePath,
382
+ from: schemaMeta.importExport.types.location.path,
383
383
  items: [type, create.type, update.type],
384
384
  });
385
385
  imports.addImport({
386
- from: schemaMeta.importExport.types.filePath,
386
+ from: schemaMeta.importExport.types.location.path,
387
387
  items: [create.typeGuard, update.typeGuard],
388
388
  });
389
389
  return /* ts */ `
@@ -8,10 +8,10 @@ const types_1 = require("../../lib/schema/types");
8
8
  * Generates the Exporter class for the Import-Export module
9
9
  */
10
10
  function generateImportExportExporterClass({ models, meta }) {
11
- const imports = imports_1.ImportsGenerator.from(meta.importExport.exporterClass.filePath);
11
+ const imports = imports_1.ImportsGenerator.from(meta.importExport.exporterClass.location.path);
12
12
  imports.addImports({
13
- [meta.businessLogic.view.importPath]: [meta.businessLogic.view.serviceClassName],
14
- [meta.importExport.decoder.fullDecoderFilePath]: [
13
+ [meta.view.serviceLocation.import]: [meta.view.serviceClassName],
14
+ [meta.importExport.decoder.location.path]: [
15
15
  meta.importExport.decoder.fullEncoderFunctionName,
16
16
  (0, types_1.toAnnotatedTypeName)(meta.importExport.decoder.encodedExcelDataTypeName),
17
17
  ],
@@ -54,7 +54,7 @@ function generateImportExportExporterClass({ models, meta }) {
54
54
  const linkedFieldMeta = (0, meta_1.getFieldMetadata)({ field: referencingField });
55
55
  childItemCalls.push(`
56
56
  // Add all ${linkedModelMeta.userFriendlyNamePlural} that are related to the ${modelMeta.userFriendlyName} via ${referencingField.name}
57
- for (const ${referencingField.name} of await this.viewService.${linkedModelMeta.businessLogic.view.serviceVariableName}.data.${linkedFieldMeta.getByForeignKeyIdsMethodFnName}(id)) {
57
+ for (const ${referencingField.name} of await this.viewService.${linkedModelMeta.view.serviceVariableName}.data.${linkedFieldMeta.getByForeignKeyIdsMethodFnName}(id)) {
58
58
  await this.${linkedModelMeta.importExport.exportAddFunctionName}({id: ${referencingField.name}, includeChildren})
59
59
  }
60
60
  `);
@@ -74,7 +74,7 @@ function generateImportExportExporterClass({ models, meta }) {
74
74
  if (this.${modelMeta.internalPluralName}.has(id)) {
75
75
  return
76
76
  }
77
- const item = await this.viewService.${modelMeta.businessLogic.view.serviceVariableName}.get(id)
77
+ const item = await this.viewService.${modelMeta.view.serviceVariableName}.get(id)
78
78
  if (!item) {
79
79
  this.logger.error(\`Cannot find ${modelMeta.userFriendlyName} \${id}\`)
80
80
  return
@@ -86,7 +86,7 @@ function generateImportExportExporterClass({ models, meta }) {
86
86
  ${childItems}
87
87
  }
88
88
  `);
89
- addAllCalls.push(`this.${modelMeta.internalPluralName} = await this.viewService.${modelMeta.businessLogic.view.serviceVariableName}.getAll()`);
89
+ addAllCalls.push(`this.${modelMeta.internalPluralName} = await this.viewService.${modelMeta.view.serviceVariableName}.getAll()`);
90
90
  }
91
91
  return /* ts */ `
92
92
  // For consistency, we include \`{ includeChildren = true }\` in the signature of every add function.