@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.
- package/README.md +1 -20
- package/dist/generator.js +41 -40
- package/dist/generators/indices/{datamodule.generator.d.ts → data/module.generator.d.ts} +2 -2
- package/dist/generators/indices/{datamodule.generator.js → data/module.generator.js} +4 -5
- package/dist/generators/indices/{dataservice.generator.d.ts → data/service.generator.d.ts} +2 -2
- package/dist/generators/indices/{dataservice.generator.js → data/service.generator.js} +5 -5
- package/dist/generators/indices/{data-types.generator.d.ts → data/types.generator.d.ts} +2 -2
- package/dist/generators/indices/{data-types.generator.js → data/types.generator.js} +2 -2
- package/dist/generators/indices/{importexport-convert-import-functions.generator.d.ts → import-export/importexport-convert-import-functions.generator.d.ts} +2 -2
- package/dist/generators/indices/{importexport-convert-import-functions.generator.js → import-export/importexport-convert-import-functions.generator.js} +4 -4
- package/dist/generators/indices/{importexport-exporter-class.generator.d.ts → import-export/importexport-exporter-class.generator.d.ts} +2 -2
- package/dist/generators/indices/{importexport-exporter-class.generator.js → import-export/importexport-exporter-class.generator.js} +4 -5
- package/dist/generators/indices/{importexport-import-service.generator.d.ts → import-export/importexport-import-service.generator.d.ts} +2 -2
- package/dist/generators/indices/{importexport-import-service.generator.js → import-export/importexport-import-service.generator.js} +4 -4
- package/dist/generators/indices/{importexport-types.generator.d.ts → import-export/importexport-types.generator.d.ts} +2 -2
- package/dist/generators/indices/{importexport-types.generator.js → import-export/importexport-types.generator.js} +2 -2
- package/dist/generators/indices/{routes-index.generator.js → routes.generator.js} +3 -0
- package/dist/generators/indices/seed-template.generator.js +2 -2
- package/dist/generators/indices/types.generator.js +13 -1
- package/dist/generators/indices/{businesslogic-actiontypes.generator.d.ts → update/actiontypes.generator.d.ts} +2 -2
- package/dist/generators/indices/{businesslogic-actiontypes.generator.js → update/actiontypes.generator.js} +3 -3
- package/dist/generators/indices/{businesslogic-update-module.generator.d.ts → update/module.generator.d.ts} +2 -2
- package/dist/generators/indices/{businesslogic-update-module.generator.js → update/module.generator.js} +2 -2
- package/dist/generators/indices/{businesslogic-update-service.generator.d.ts → update/service.generator.d.ts} +2 -2
- package/dist/generators/indices/{businesslogic-update-service.generator.js → update/service.generator.js} +2 -2
- package/dist/generators/indices/{businesslogic-view-module.generator.d.ts → view/module.generator.d.ts} +2 -2
- package/dist/generators/indices/{businesslogic-view-module.generator.js → view/module.generator.js} +2 -2
- package/dist/generators/indices/{businesslogic-view-service.generator.d.ts → view/service.generator.d.ts} +2 -2
- package/dist/generators/indices/{businesslogic-view-service.generator.js → view/service.generator.js} +2 -2
- package/dist/generators/models/importexport-decoder.generator.d.ts +1 -2
- package/dist/generators/models/importexport-decoder.generator.js +17 -46
- package/dist/generators/models/repository.generator.d.ts +0 -39
- package/dist/generators/models/repository.generator.js +103 -175
- package/dist/generators/models/route.generator.js +7 -3
- package/dist/generators/models/types.generator.js +27 -2
- package/dist/generators/models/{businesslogic-update.generator.d.ts → update/service.generator.d.ts} +2 -2
- package/dist/generators/models/update/service.generator.js +252 -0
- package/dist/generators/models/{businesslogic-view.generator.d.ts → view/service.generator.d.ts} +2 -2
- package/dist/generators/models/{businesslogic-view.generator.js → view/service.generator.js} +12 -18
- package/dist/lib/meta.d.ts +16 -31
- package/dist/lib/meta.js +2 -19
- package/dist/lib/schema/fields.d.ts +1 -1
- package/dist/lib/zod.d.ts +1 -1
- package/dist/prisma/parse.js +1 -1
- package/package.json +5 -8
- package/dist/generators/models/businesslogic-update.generator.js +0 -324
- /package/dist/generators/indices/{routes-index.generator.d.ts → routes.generator.d.ts} +0 -0
- /package/dist/generators/models/{react.generator → react}/context.generator.d.ts +0 -0
- /package/dist/generators/models/{react.generator → react}/context.generator.js +0 -0
- /package/dist/generators/models/{react.generator → react}/index.d.ts +0 -0
- /package/dist/generators/models/{react.generator → react}/index.js +0 -0
- /package/dist/generators/models/{react.generator → react}/library.generator.d.ts +0 -0
- /package/dist/generators/models/{react.generator → react}/library.generator.js +0 -0
- /package/dist/generators/models/{react.generator → react}/lookup.generator.d.ts +0 -0
- /package/dist/generators/models/{react.generator → react}/lookup.generator.js +0 -0
- /package/dist/generators/models/{react.generator → react}/modals.generator.d.ts +0 -0
- /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
|
-

|
|
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
|
|
45
|
-
const
|
|
46
|
-
const
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: (
|
|
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(
|
|
157
|
-
return __awaiter(this,
|
|
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,
|
|
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
|
|
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,
|
|
178
|
-
generated.write(`/${meta.update.serviceClassLocation.path}.ts`, (0,
|
|
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,
|
|
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,
|
|
197
|
-
generated.write(`/${meta.data.dataService.location.path}.ts`, (0,
|
|
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,
|
|
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
|
-
//
|
|
210
|
-
generated.write(`/${meta.view.moduleLocation.path}.ts`, (0,
|
|
211
|
-
generated.write(`/${meta.view.serviceLocation.path}.ts`, (0,
|
|
212
|
-
|
|
213
|
-
generated.write(`/${meta.update.
|
|
214
|
-
generated.write(`/${meta.update.
|
|
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,
|
|
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,
|
|
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
|
-
//
|
|
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,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("
|
|
5
|
-
const meta_1 = require("
|
|
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 '
|
|
2
|
-
import { Model } from '
|
|
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("
|
|
5
|
-
const meta_1 = require("
|
|
6
|
-
const types_1 = require("
|
|
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}:
|
|
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,
|
|
48
|
+
import { format, pluralize } from '@postxl/runtime'
|
|
49
49
|
|
|
50
50
|
${imports.generate()}
|
|
51
51
|
|
|
@@ -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("
|
|
5
|
-
const meta_1 = require("
|
|
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 '
|
|
2
|
-
import { Model } from '
|
|
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("
|
|
5
|
-
const meta_1 = require("
|
|
6
|
-
const types_1 = require("
|
|
7
|
-
const types_2 = require("
|
|
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 '
|
|
2
|
-
import { Model } from '
|
|
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("
|
|
5
|
-
const meta_1 = require("
|
|
6
|
-
const types_1 = require("
|
|
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}:
|
|
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 '
|
|
2
|
-
import { Model } from '
|
|
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("
|
|
5
|
-
const meta_1 = require("
|
|
6
|
-
const types_1 = require("
|
|
7
|
-
const string_1 = require("
|
|
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,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("
|
|
5
|
-
const meta_1 = require("
|
|
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(
|
|
43
|
-
return __awaiter(this,
|
|
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
|
|
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 '
|
|
2
|
-
import { Model } from '
|
|
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("
|
|
5
|
-
const meta_1 = require("
|
|
6
|
-
const file_1 = require("
|
|
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 '
|
|
2
|
-
import { Model } from '
|
|
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("
|
|
5
|
-
const meta_1 = require("
|
|
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,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("
|
|
5
|
-
const meta_1 = require("
|
|
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
|
*/
|
package/dist/generators/indices/{businesslogic-view-module.generator.js → view/module.generator.js}
RENAMED
|
@@ -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("
|
|
5
|
-
const meta_1 = require("
|
|
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,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("
|
|
5
|
-
const meta_1 = require("
|
|
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
|
|
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.
|