@postxl/generator 0.69.0 → 0.70.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 (57) hide show
  1. package/README.md +1 -20
  2. package/dist/generator.js +41 -40
  3. package/dist/generators/indices/{datamodule.generator.d.ts → data/module.generator.d.ts} +2 -2
  4. package/dist/generators/indices/{datamodule.generator.js → data/module.generator.js} +4 -5
  5. package/dist/generators/indices/{dataservice.generator.d.ts → data/service.generator.d.ts} +2 -2
  6. package/dist/generators/indices/{dataservice.generator.js → data/service.generator.js} +5 -5
  7. package/dist/generators/indices/{data-types.generator.d.ts → data/types.generator.d.ts} +2 -2
  8. package/dist/generators/indices/{data-types.generator.js → data/types.generator.js} +2 -2
  9. package/dist/generators/indices/{importexport-convert-import-functions.generator.d.ts → import-export/importexport-convert-import-functions.generator.d.ts} +2 -2
  10. package/dist/generators/indices/{importexport-convert-import-functions.generator.js → import-export/importexport-convert-import-functions.generator.js} +4 -4
  11. package/dist/generators/indices/{importexport-exporter-class.generator.d.ts → import-export/importexport-exporter-class.generator.d.ts} +2 -2
  12. package/dist/generators/indices/{importexport-exporter-class.generator.js → import-export/importexport-exporter-class.generator.js} +4 -5
  13. package/dist/generators/indices/{importexport-import-service.generator.d.ts → import-export/importexport-import-service.generator.d.ts} +2 -2
  14. package/dist/generators/indices/{importexport-import-service.generator.js → import-export/importexport-import-service.generator.js} +4 -4
  15. package/dist/generators/indices/{importexport-types.generator.d.ts → import-export/importexport-types.generator.d.ts} +2 -2
  16. package/dist/generators/indices/{importexport-types.generator.js → import-export/importexport-types.generator.js} +2 -2
  17. package/dist/generators/indices/{routes-index.generator.js → routes.generator.js} +3 -0
  18. package/dist/generators/indices/seed-template.generator.js +2 -2
  19. package/dist/generators/indices/types.generator.js +13 -1
  20. package/dist/generators/indices/{businesslogic-actiontypes.generator.d.ts → update/actiontypes.generator.d.ts} +2 -2
  21. package/dist/generators/indices/{businesslogic-actiontypes.generator.js → update/actiontypes.generator.js} +3 -3
  22. package/dist/generators/indices/{businesslogic-update-module.generator.d.ts → update/module.generator.d.ts} +2 -2
  23. package/dist/generators/indices/{businesslogic-update-module.generator.js → update/module.generator.js} +2 -2
  24. package/dist/generators/indices/{businesslogic-update-service.generator.d.ts → update/service.generator.d.ts} +2 -2
  25. package/dist/generators/indices/{businesslogic-update-service.generator.js → update/service.generator.js} +2 -2
  26. package/dist/generators/indices/{businesslogic-view-module.generator.d.ts → view/module.generator.d.ts} +2 -2
  27. package/dist/generators/indices/{businesslogic-view-module.generator.js → view/module.generator.js} +2 -2
  28. package/dist/generators/indices/{businesslogic-view-service.generator.d.ts → view/service.generator.d.ts} +2 -2
  29. package/dist/generators/indices/{businesslogic-view-service.generator.js → view/service.generator.js} +2 -2
  30. package/dist/generators/models/importexport-decoder.generator.d.ts +1 -2
  31. package/dist/generators/models/importexport-decoder.generator.js +17 -46
  32. package/dist/generators/models/repository.generator.d.ts +0 -39
  33. package/dist/generators/models/repository.generator.js +103 -175
  34. package/dist/generators/models/route.generator.js +7 -3
  35. package/dist/generators/models/types.generator.js +27 -2
  36. package/dist/generators/models/{businesslogic-update.generator.d.ts → update/service.generator.d.ts} +2 -2
  37. package/dist/generators/models/update/service.generator.js +252 -0
  38. package/dist/generators/models/{businesslogic-view.generator.d.ts → view/service.generator.d.ts} +2 -2
  39. package/dist/generators/models/{businesslogic-view.generator.js → view/service.generator.js} +12 -18
  40. package/dist/lib/meta.d.ts +16 -31
  41. package/dist/lib/meta.js +2 -19
  42. package/dist/lib/schema/fields.d.ts +1 -1
  43. package/dist/lib/zod.d.ts +1 -1
  44. package/dist/prisma/parse.js +1 -1
  45. package/package.json +5 -8
  46. package/dist/generators/models/businesslogic-update.generator.js +0 -324
  47. /package/dist/generators/indices/{routes-index.generator.d.ts → routes.generator.d.ts} +0 -0
  48. /package/dist/generators/models/{react.generator → react}/context.generator.d.ts +0 -0
  49. /package/dist/generators/models/{react.generator → react}/context.generator.js +0 -0
  50. /package/dist/generators/models/{react.generator → react}/index.d.ts +0 -0
  51. /package/dist/generators/models/{react.generator → react}/index.js +0 -0
  52. /package/dist/generators/models/{react.generator → react}/library.generator.d.ts +0 -0
  53. /package/dist/generators/models/{react.generator → react}/library.generator.js +0 -0
  54. /package/dist/generators/models/{react.generator → react}/lookup.generator.d.ts +0 -0
  55. /package/dist/generators/models/{react.generator → react}/lookup.generator.js +0 -0
  56. /package/dist/generators/models/{react.generator → react}/modals.generator.d.ts +0 -0
  57. /package/dist/generators/models/{react.generator → react}/modals.generator.js +0 -0
package/README.md CHANGED
@@ -1,22 +1,3 @@
1
1
  # PXL Generator
2
2
 
3
- A utility package that lets you move quickly and generate basic components of your app easily.
4
-
5
- #### Linking Generator to Template
6
-
7
- To use the latest version of the generator link the local dependency using [`pnpm link`](https://pnpm.io/cli/link) command.
8
-
9
- ```sh
10
- # /
11
- pnpm build
12
-
13
- # /packages/manager/template/
14
- pnpm link ../../generator/
15
-
16
- # /
17
- pnpm prisma generate
18
- ```
19
-
20
- > If you've correctly linked the generator, you should see a message when running `pnpm i`.
21
-
22
- ![pnpm link](./media/link.png)
3
+ > A utility package that lets you move quickly and generate basic components of your app easily.
package/dist/generator.js CHANGED
@@ -41,35 +41,35 @@ const lock_1 = require("@postxl/lock");
41
41
  const prettier = __importStar(require("@postxl/prettier"));
42
42
  const react_generator_1 = require("./generators/enums/react.generator");
43
43
  const types_generator_1 = require("./generators/enums/types.generator");
44
- const businesslogic_actiontypes_generator_1 = require("./generators/indices/businesslogic-actiontypes.generator");
45
- const businesslogic_update_module_generator_1 = require("./generators/indices/businesslogic-update-module.generator");
46
- const businesslogic_update_service_generator_1 = require("./generators/indices/businesslogic-update-service.generator");
47
- const businesslogic_view_module_generator_1 = require("./generators/indices/businesslogic-view-module.generator");
48
- const businesslogic_view_service_generator_1 = require("./generators/indices/businesslogic-view-service.generator");
49
- const data_types_generator_1 = require("./generators/indices/data-types.generator");
50
- const datamodule_generator_1 = require("./generators/indices/datamodule.generator");
51
- const dataservice_generator_1 = require("./generators/indices/dataservice.generator");
44
+ const module_generator_1 = require("./generators/indices/data/module.generator");
45
+ const service_generator_1 = require("./generators/indices/data/service.generator");
46
+ const types_generator_2 = require("./generators/indices/data/types.generator");
52
47
  const dispatcher_service_generator_1 = require("./generators/indices/dispatcher-service.generator");
53
- const importexport_convert_import_functions_generator_1 = require("./generators/indices/importexport-convert-import-functions.generator");
54
- const importexport_exporter_class_generator_1 = require("./generators/indices/importexport-exporter-class.generator");
55
- const importexport_import_service_generator_1 = require("./generators/indices/importexport-import-service.generator");
56
- const importexport_types_generator_1 = require("./generators/indices/importexport-types.generator");
48
+ const importexport_convert_import_functions_generator_1 = require("./generators/indices/import-export/importexport-convert-import-functions.generator");
49
+ const importexport_exporter_class_generator_1 = require("./generators/indices/import-export/importexport-exporter-class.generator");
50
+ const importexport_import_service_generator_1 = require("./generators/indices/import-export/importexport-import-service.generator");
51
+ const importexport_types_generator_1 = require("./generators/indices/import-export/importexport-types.generator");
57
52
  const repositories_generator_1 = require("./generators/indices/repositories.generator");
58
- const routes_index_generator_1 = require("./generators/indices/routes-index.generator");
53
+ const routes_generator_1 = require("./generators/indices/routes.generator");
59
54
  const seed_migration_generator_1 = require("./generators/indices/seed-migration.generator");
60
55
  const seed_template_generator_1 = require("./generators/indices/seed-template.generator");
61
56
  const testids_generator_1 = require("./generators/indices/testids.generator");
62
- const types_generator_2 = require("./generators/indices/types.generator");
57
+ const types_generator_3 = require("./generators/indices/types.generator");
58
+ const actiontypes_generator_1 = require("./generators/indices/update/actiontypes.generator");
59
+ const module_generator_2 = require("./generators/indices/update/module.generator");
60
+ const service_generator_2 = require("./generators/indices/update/service.generator");
61
+ const module_generator_3 = require("./generators/indices/view/module.generator");
62
+ const service_generator_3 = require("./generators/indices/view/service.generator");
63
63
  const admin_page_generator_1 = require("./generators/models/admin.page.generator");
64
- const businesslogic_update_generator_1 = require("./generators/models/businesslogic-update.generator");
65
- const businesslogic_view_generator_1 = require("./generators/models/businesslogic-view.generator");
66
64
  const importexport_decoder_generator_1 = require("./generators/models/importexport-decoder.generator");
67
- const react_generator_2 = require("./generators/models/react.generator");
65
+ const react_1 = require("./generators/models/react");
68
66
  const repository_generator_1 = require("./generators/models/repository.generator");
69
67
  const route_generator_1 = require("./generators/models/route.generator");
70
68
  const seed_generator_1 = require("./generators/models/seed.generator");
71
69
  const stub_generator_1 = require("./generators/models/stub.generator");
72
- const types_generator_3 = require("./generators/models/types.generator");
70
+ const types_generator_4 = require("./generators/models/types.generator");
71
+ const service_generator_4 = require("./generators/models/update/service.generator");
72
+ const service_generator_5 = require("./generators/models/view/service.generator");
73
73
  const meta_1 = require("./lib/meta");
74
74
  const types_1 = require("./lib/schema/types");
75
75
  const client_path_1 = require("./prisma/client-path");
@@ -116,7 +116,7 @@ const CONFIG_SCHEMA = zod_1.z
116
116
  prismaMigrationsFolderPath: (0, types_1.toPath)(s.prismaMigrationsFolder || './migrations'),
117
117
  modelTypeDefinitionsPath: (0, types_1.toPath)(s.pathToTypes || './backend/libs/types/src/'),
118
118
  reactFolderPath: (0, types_1.toPath)(s.reactFolderOutput || './web/src/components/'),
119
- seedDataPath: (0, types_1.toPath)(s.pathToSeedData || './backend/seed-data/src/'),
119
+ seedDataPath: (0, types_1.toPath)(s.pathToSeedData || './backend/libs/seed-data/src/'),
120
120
  seedLibPath: (0, types_1.toPath)(s.pathToSeedLib || './backend/libs/seed/src/'),
121
121
  trpcRoutesFolderPath: (0, types_1.toPath)(s.trpcRoutesFolder || './backend/libs/trpc/src/routes/'),
122
122
  adminPagesFolderPath: (0, types_1.toPath)(s.pathToAdminPages || './web/src/pages/admin/'),
@@ -135,7 +135,7 @@ const CONFIG_SCHEMA = zod_1.z
135
135
  prettyName: `PXL`,
136
136
  };
137
137
  },
138
- onGenerate: ({ generator, otherGenerators, dmmf }) => __awaiter(void 0, void 0, void 0, function* () {
138
+ onGenerate: (_a) => __awaiter(void 0, [_a], void 0, function* ({ generator, otherGenerators, dmmf }) {
139
139
  internals_1.logger.info(`PXL started generating code...`);
140
140
  const prismaClientPath = (0, client_path_1.getClientImportPath)(otherGenerators);
141
141
  const decodedConfig = CONFIG_SCHEMA.safeParse(generator.config);
@@ -153,8 +153,8 @@ const CONFIG_SCHEMA = zod_1.z
153
153
  /**
154
154
  * Generates PXL files and flushes them to disk.
155
155
  */
156
- function generate({ models, enums, config, prismaClientPath, logger, }) {
157
- return __awaiter(this, void 0, void 0, function* () {
156
+ function generate(_a) {
157
+ return __awaiter(this, arguments, void 0, function* ({ models, enums, config, prismaClientPath, logger, }) {
158
158
  const root = yield lock_1.LockFile.findProjectRoot();
159
159
  if (root == undefined) {
160
160
  throw new Error(`Could not find lock file. Make sure you are running the generator in a project folder.`);
@@ -165,21 +165,21 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
165
165
  for (const model of models) {
166
166
  const meta = (0, meta_1.getModelMetadata)({ model });
167
167
  // Types
168
- generated.write(`/${meta.types.filePath}.ts`, (0, types_generator_3.generateModelTypes)({ model, meta }));
168
+ generated.write(`/${meta.types.filePath}.ts`, (0, types_generator_4.generateModelTypes)({ model, meta }));
169
169
  // Seed
170
170
  generated.write(`/${meta.seed.location.path}.ts`, (0, seed_generator_1.generateSeedModel)({ model, itemCount: 5, meta, models }));
171
171
  // Data
172
172
  generated.write(`/${meta.data.stubLocation.path}.ts`, (0, stub_generator_1.generateStub)({ model, meta }));
173
173
  generated.write(`/${meta.data.repository.location.path}.ts`, (0, repository_generator_1.generateRepository)({ model, meta }));
174
174
  // Import-Export
175
- generated.write(`/${meta.importExport.decoder.filePath}.ts`, (0, importexport_decoder_generator_1.generateModelImportExportDecoder)({ model, meta, schemaMeta: (0, meta_1.getSchemaMetadata)({ config }) }));
175
+ generated.write(`/${meta.importExport.decoder.filePath}.ts`, (0, importexport_decoder_generator_1.generateModelImportExportDecoder)({ model, meta }));
176
176
  // Business Logic
177
- generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, businesslogic_view_generator_1.generateModelBusinessLogicView)({ model, meta }));
178
- generated.write(`/${meta.update.serviceClassLocation.path}.ts`, (0, businesslogic_update_generator_1.generateModelBusinessLogicUpdate)({ model, meta }));
177
+ generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, service_generator_5.generateModelBusinessLogicView)({ model, meta }));
178
+ generated.write(`/${meta.update.serviceClassLocation.path}.ts`, (0, service_generator_4.generateModelBusinessLogicUpdate)({ model, meta }));
179
179
  // Routes
180
180
  generated.write(`/${meta.trpc.routerFilePath}.ts`, (0, route_generator_1.generateRoute)({ model, meta }));
181
181
  // React
182
- yield generated.copy((0, react_generator_2.generateReactComponentsForModel)({ model, meta }), meta.react.folderPath);
182
+ yield generated.copy((0, react_1.generateReactComponentsForModel)({ model, meta }), meta.react.folderPath);
183
183
  // Admin
184
184
  generated.write(`/${meta.admin.filePath}.tsx`, (0, admin_page_generator_1.generateAdminPage)({ meta }));
185
185
  logger.log(`- ${model.name} processed`);
@@ -193,11 +193,11 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
193
193
  // Generate Index Files and Services
194
194
  const meta = (0, meta_1.getSchemaMetadata)({ config });
195
195
  // Data
196
- generated.write(`/${meta.data.moduleLocation.path}.ts`, (0, datamodule_generator_1.generateDataModule)({ models, meta }));
197
- generated.write(`/${meta.data.dataService.location.path}.ts`, (0, dataservice_generator_1.generateDataService)({ models, meta }));
198
- generated.write(`/${meta.e2e.testIdsFilePath}.ts`, (0, testids_generator_1.generateTestIds)());
196
+ generated.write(`/${meta.data.moduleLocation.path}.ts`, (0, module_generator_1.generateDataModule)({ models, meta }));
197
+ generated.write(`/${meta.data.dataService.location.path}.ts`, (0, service_generator_1.generateDataService)({ models, meta }));
199
198
  generated.write(`/${meta.data.repository.constFilePath}.ts`, (0, repositories_generator_1.generateRepositoriesArray)({ models, meta }));
200
- generated.write(`/${meta.data.types.location.path}.ts`, (0, data_types_generator_1.generateDataTypes)({ models, meta }));
199
+ generated.write(`/${meta.data.types.location.path}.ts`, (0, types_generator_2.generateDataTypes)({ models, meta }));
200
+ generated.write(`/${meta.e2e.testIdsFilePath}.ts`, (0, testids_generator_1.generateTestIds)());
201
201
  // Import-Export
202
202
  generated.write(`/${meta.importExport.types.location.path}.ts`, (0, importexport_types_generator_1.generateImportExportTypes)({ models, meta }));
203
203
  generated.write(`/${meta.importExport.exporterClass.location.path}.ts`, (0, importexport_exporter_class_generator_1.generateImportExportExporterClass)({ models, meta }));
@@ -206,23 +206,24 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
206
206
  generated.write(`/${meta.importExport.converterFunctions.location.path}.ts`, (0, importexport_convert_import_functions_generator_1.generateImportExportConvertImportFunctions)({ models, meta }));
207
207
  // Actions
208
208
  generated.write(`/${meta.actions.dispatcher.classLocation.path}.ts`, (0, dispatcher_service_generator_1.generateActionsDispatcherService)({ models, meta }));
209
- // Business Logic
210
- generated.write(`/${meta.view.moduleLocation.path}.ts`, (0, businesslogic_view_module_generator_1.generateBusinessLogicViewModule)({ models, meta }));
211
- generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, businesslogic_view_service_generator_1.generateBusinessLogicViewService)({ models, meta }));
212
- generated.write(`/${meta.update.moduleLocation.path}.ts`, (0, businesslogic_update_module_generator_1.generateBusinessLogicUpdateModule)({ models, meta }));
213
- generated.write(`/${meta.update.serviceLocation.path}.ts`, (0, businesslogic_update_service_generator_1.generateBusinessLogicUpdateService)({ models, meta }));
214
- generated.write(`/${meta.update.actionTypesFilePath}.ts`, (0, businesslogic_actiontypes_generator_1.generateBusinessLogicActionTypes)({ models, meta }));
209
+ // View
210
+ generated.write(`/${meta.view.moduleLocation.path}.ts`, (0, module_generator_3.generateBusinessLogicViewModule)({ models, meta }));
211
+ generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, service_generator_3.generateBusinessLogicViewService)({ models, meta }));
212
+ // Update
213
+ generated.write(`/${meta.update.moduleLocation.path}.ts`, (0, module_generator_2.generateBusinessLogicUpdateModule)({ models, meta }));
214
+ generated.write(`/${meta.update.serviceLocation.path}.ts`, (0, service_generator_2.generateBusinessLogicUpdateService)({ models, meta }));
215
+ generated.write(`/${meta.update.actionTypesFilePath}.ts`, (0, actiontypes_generator_1.generateBusinessLogicActionTypes)({ models, meta }));
215
216
  // Seed
216
217
  generated.write(`/${meta.seedData.initialMigrationLocation.path}.ts`, (0, seed_migration_generator_1.generateSeedMigration)({ models, meta }));
217
218
  generated.write(`/${meta.seedData.templateExcelFilePath}`, yield (0, seed_template_generator_1.generateSeedExcelTemplate)({ models }));
218
219
  // Routes
219
- generated.write(`/${meta.trpc.routesFilePath}.ts`, (0, routes_index_generator_1.generateRoutesIndex)({ models, meta }));
220
+ generated.write(`/${meta.trpc.routesFilePath}.ts`, (0, routes_generator_1.generateRoutesIndex)({ models, meta }));
220
221
  // Types
221
- generated.write(`/${meta.types.indexFilePath}.ts`, (0, types_generator_2.generateTypesIndex)({ models, enums, meta }));
222
+ generated.write(`/${meta.types.indexFilePath}.ts`, (0, types_generator_3.generateTypesIndex)({ models, enums, meta }));
222
223
  // -------------------------------------------------------------------------
223
224
  // Add disclaimer and format.
224
225
  yield generated.transformUTF8Files((path, content) => `${lock_1.GENERATED_FILE_DISCLAIMER}\n${content}`);
225
- // Important: the eslint config provided here must match the .eslintrc files in the template!
226
+ // NOTE: the eslint config provided here must match the .eslintrc files in the template!!!
226
227
  const lintResult = yield generated.lintUTF8Files({
227
228
  fix: true,
228
229
  useEslintrc: false,
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates a data module class.
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateDataModule = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
6
  /**
7
7
  * Generates a data module class.
8
8
  */
@@ -19,13 +19,12 @@ function generateDataModule({ models, meta }) {
19
19
  from: meta.data.repository.location.path,
20
20
  });
21
21
  }
22
- const moduleName = meta.data.moduleName;
23
22
  return /* ts */ `
24
23
  import { DynamicModule, FactoryProvider } from '@nestjs/common'
25
24
 
26
25
  ${imports.generate()}
27
26
 
28
- export class ${moduleName} {
27
+ export class ${meta.data.moduleName} {
29
28
  public static forRoot(): DynamicModule {
30
29
  const userRepositoryProvider: FactoryProvider<UserRepository> = {
31
30
  provide: UserRepository,
@@ -49,7 +48,7 @@ export class ${moduleName} {
49
48
  ]
50
49
 
51
50
  return {
52
- module: ${moduleName},
51
+ module: ${meta.data.moduleName},
53
52
  global: true,
54
53
  imports: [DatabaseModule],
55
54
  providers,
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates a generic data service object that may be used on the server to access database.
5
5
  */
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateDataService = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
6
- const types_1 = require("../../lib/schema/types");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
+ const types_1 = require("../../../lib/schema/types");
7
7
  /**
8
8
  * Generates a generic data service object that may be used on the server to access database.
9
9
  */
@@ -21,7 +21,7 @@ function generateDataService({ models, meta }) {
21
21
  .join(',\n');
22
22
  const initializer = mm.map(({ meta }) => `await this.${meta.data.dataServiceName}.init()`).join('\n');
23
23
  const excelExports = mm
24
- .map(({ meta }) => `${meta.importExport.tableName}: mapValues(await this.${meta.data.dataServiceName}.getAll()),`)
24
+ .map(({ meta }) => `${meta.importExport.tableName}: Array.from((await this.${meta.data.dataServiceName}.getAll()).values()),`)
25
25
  .join('\n');
26
26
  const isEmptyChecks = mm.map(({ meta }) => `(await this.${meta.data.dataServiceName}.count()) === 0`).join(' &&');
27
27
  // Building blocks for bulk mutations
@@ -45,7 +45,7 @@ function generateDataService({ models, meta }) {
45
45
  return /* ts */ `
46
46
  import { Injectable, Logger } from '@nestjs/common'
47
47
 
48
- import { format, mapValues, pluralize } from '@postxl/runtime'
48
+ import { format, pluralize } from '@postxl/runtime'
49
49
 
50
50
  ${imports.generate()}
51
51
 
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates type for BulkMutations.
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateDataTypes = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
6
  /**
7
7
  * Generates type for BulkMutations.
8
8
  */
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates the Exporter class for the Import-Export module
5
5
  */
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateImportExportConvertImportFunctions = 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
- const types_2 = require("../../lib/types");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
+ const types_1 = require("../../../lib/schema/types");
7
+ const types_2 = require("../../../lib/types");
8
8
  /**
9
9
  * Generates the Exporter class for the Import-Export module
10
10
  */
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates the Exporter class for the Import-Export module
5
5
  */
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateImportExportExporterClass = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
6
- const types_1 = require("../../lib/schema/types");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
+ const types_1 = require("../../../lib/schema/types");
7
7
  /**
8
8
  * Generates the Exporter class for the Import-Export module
9
9
  */
@@ -31,7 +31,7 @@ function generateImportExportExporterClass({ models, meta }) {
31
31
  typeExports.push(`export type ${modelMeta.importExport.exportDataTypeName} = CapitalizedKeys<${model.name}>`);
32
32
  typeExportsDataEntries.push(`${modelMeta.importExport.exportDataPropertyName}?: ${modelMeta.importExport.exportDataTypeName}[]`);
33
33
  privateMaps.push(`private ${modelMeta.internalPluralName} = new Map<${modelMeta.types.brandedIdType}, ${modelMeta.types.typeName}>()`);
34
- exportDataProperties.push(`${modelMeta.importExport.exportDataFullPropertyName}: mapValues(this.${modelMeta.internalPluralName})`);
34
+ exportDataProperties.push(`${modelMeta.importExport.exportDataFullPropertyName}: Array.from(this.${modelMeta.internalPluralName}.values())`);
35
35
  const linkedItems = [];
36
36
  for (const field of model.fields) {
37
37
  if (field.kind !== 'relation') {
@@ -95,7 +95,6 @@ function generateImportExportExporterClass({ models, meta }) {
95
95
 
96
96
  import { Logger } from '@nestjs/common'
97
97
 
98
- import { mapValues } from '@postxl/runtime'
99
98
  ${imports.generate()}
100
99
 
101
100
  /**
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates the Exporter class for the Import-Export module
5
5
  */
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateImportExportImportService = 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
- const string_1 = require("../../lib/utils/string");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
+ const types_1 = require("../../../lib/schema/types");
7
+ const string_1 = require("../../../lib/utils/string");
8
8
  /**
9
9
  * Generates the Exporter class for the Import-Export module
10
10
  */
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates types for import export module.
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateImportExportTypes = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
6
  /**
7
7
  * Generates types for import export module.
8
8
  */
@@ -14,11 +14,14 @@ function generateRoutesIndex({ models, meta }) {
14
14
  }
15
15
  return /* ts */ `
16
16
  ${imports.generate()}
17
+
18
+ import { viewer } from './viewer.router'
17
19
 
18
20
  /**
19
21
  * Object with all generated routes.
20
22
  */
21
23
  export const routes = {
24
+ viewer,
22
25
  ${mm.map(({ meta }) => `${meta.trpc.routerName}`).join(',\n')}
23
26
  }
24
27
  `;
@@ -39,8 +39,8 @@ const meta_1 = require("../../lib/meta");
39
39
  * Creates an Excel template file that can be used to manage Seed data.
40
40
  * The template file contains a sheet for each model, with the column for each field.
41
41
  */
42
- function generateSeedExcelTemplate({ models }) {
43
- return __awaiter(this, void 0, void 0, function* () {
42
+ function generateSeedExcelTemplate(_a) {
43
+ return __awaiter(this, arguments, void 0, function* ({ models }) {
44
44
  const wb = initializeWorkbook();
45
45
  for (const model of [...models].sort((a, b) => a.name.localeCompare(b.name))) {
46
46
  const meta = (0, meta_1.getModelMetadata)({ model });
@@ -2,15 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateTypesIndex = void 0;
4
4
  const exports_1 = require("../../lib/exports");
5
+ const imports_1 = require("../../lib/imports");
5
6
  const meta_1 = require("../../lib/meta");
6
7
  /**
7
8
  * Generates an index file that exports all types.
8
9
  */
9
10
  function generateTypesIndex({ models, enums, meta: schemaMeta, }) {
11
+ const imports = imports_1.ImportsGenerator.from(schemaMeta.types.indexFilePath);
10
12
  const exports = exports_1.ExportsGenerator.from(schemaMeta.types.indexFilePath);
11
13
  for (const model of models) {
12
14
  const modelMeta = (0, meta_1.getModelMetadata)({ model });
13
15
  exports.exportEverythingFromPath(modelMeta.types.filePath);
16
+ imports.addTypeImport({ from: modelMeta.types.importPath, items: [modelMeta.types.brandedIdType] });
14
17
  }
15
18
  for (const enumerator of enums) {
16
19
  const enumMeta = (0, meta_1.getEnumMetadata)({ enumerator });
@@ -18,6 +21,15 @@ function generateTypesIndex({ models, enums, meta: schemaMeta, }) {
18
21
  }
19
22
  // dto.types contains generic types that are used by all models
20
23
  exports.exportEverythingFromPath(schemaMeta.types.dto.path);
21
- return exports.generate();
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
+ `;
22
34
  }
23
35
  exports.generateTypesIndex = generateTypesIndex;
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates the action types for the BusinessLogicModule.
5
5
  */
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
+ const file_1 = require("../../../lib/utils/file");
7
7
  /**
8
8
  * Generates the action types for the BusinessLogicModule.
9
9
  */
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates a BusinessLogic update module class.
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateBusinessLogicUpdateModule = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
6
  /**
7
7
  * Generates a BusinessLogic update module class.
8
8
  */
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates the business logic service class.
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateBusinessLogicUpdateService = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
6
  /**
7
7
  * Generates the business logic service class.
8
8
  */
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates a BusinessLogic view module class.
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateBusinessLogicViewModule = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
6
  /**
7
7
  * Generates a BusinessLogic view module class.
8
8
  */
@@ -1,5 +1,5 @@
1
- import { SchemaMetaData } from '../../lib/meta';
2
- import { Model } from '../../lib/schema/schema';
1
+ import { SchemaMetaData } from '../../../lib/meta';
2
+ import { Model } from '../../../lib/schema/schema';
3
3
  /**
4
4
  * Generates the business logic service class.
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateBusinessLogicViewService = void 0;
4
- const imports_1 = require("../../lib/imports");
5
- const meta_1 = require("../../lib/meta");
4
+ const imports_1 = require("../../../lib/imports");
5
+ const meta_1 = require("../../../lib/meta");
6
6
  /**
7
7
  * Generates the business logic service class.
8
8
  */
@@ -3,10 +3,9 @@ import { Model } from '../../lib/schema/schema';
3
3
  /**
4
4
  * Creates a decoder for the Seed Excel template.
5
5
  */
6
- export declare function generateModelImportExportDecoder({ model, meta, schemaMeta, }: {
6
+ export declare function generateModelImportExportDecoder({ model, meta }: {
7
7
  model: Model;
8
8
  meta: ModelMetaData;
9
- schemaMeta: SchemaMetaData;
10
9
  }): string;
11
10
  /**
12
11
  * Generates the data decoder, aggregating all the models.