@postxl/generator 0.7.1 → 0.8.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/dist/generator.js CHANGED
@@ -178,7 +178,7 @@ const generate = ({ models, enums, config, prismaClientPath, logger, }) => __awa
178
178
  generated.write(`/${meta.data.dataMockModuleFilePath}.ts`, (0, datamockmodule_generator_1.generateDataMockModule)({ models, meta }));
179
179
  generated.write(`/${meta.data.dataModuleFilePath}.ts`, (0, datamodule_generator_1.generateDataModule)({ models, meta }));
180
180
  generated.write(`/${meta.data.dataServiceFilePath}.ts`, (0, dataservice_generator_1.generateDataService)({ models, meta }));
181
- generated.write(`/${meta.data.testDataServiceFilePath}.ts`, (0, testdataservice_generator_1.generateTestDataService)({ meta }));
181
+ generated.write(`/${meta.data.testDataServiceFilePath}.ts`, (0, testdataservice_generator_1.generateTestDataService)({ models, meta }));
182
182
  generated.write(`/${meta.data.repositoriesConstFilePath}.ts`, (0, repositories_generator_1.generateRepositoriesArray)({ models, meta }));
183
183
  generated.write(`/${meta.data.repositoriesIndexFilePath}.ts`, (0, repositories_generator_1.generateRepositoriesIndex)({ models, meta }));
184
184
  generated.write(`/${meta.data.stubIndexFilePath}.ts`, (0, stubs_generator_1.generateStubsIndex)({ models, meta }));
@@ -1,7 +1,9 @@
1
1
  import { SchemaMetaData } from '../../lib/meta';
2
+ import { Model } from '../../lib/schema/schema';
2
3
  /**
3
4
  * Generates a generic data service object that may be used on the server to access database.
4
5
  */
5
- export declare function generateTestDataService({ meta }: {
6
+ export declare function generateTestDataService({ meta, models }: {
6
7
  meta: SchemaMetaData;
8
+ models: Model[];
7
9
  }): string;
@@ -24,16 +24,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.generateTestDataService = void 0;
27
+ const meta_1 = require("../../lib/meta");
27
28
  const Types = __importStar(require("../../lib/schema/types"));
28
29
  const imports_1 = require("../../lib/imports");
29
30
  /**
30
31
  * Generates a generic data service object that may be used on the server to access database.
31
32
  */
32
- function generateTestDataService({ meta }) {
33
+ function generateTestDataService({ meta, models }) {
33
34
  const imports = imports_1.ImportsGenerator.from(meta.data.testDataServiceFilePath).addImport({
34
35
  items: [Types.toVariableName('MockData')],
35
36
  from: meta.data.dataMockModuleFilePath,
36
37
  });
38
+ const mm = models.map((model) => ({ model, meta: (0, meta_1.getModelMetadata)({ model }) }));
39
+ for (const { meta } of mm) {
40
+ imports.addImport({
41
+ items: [meta.data.repositoryClassName],
42
+ from: meta.data.repoFilePath,
43
+ });
44
+ }
45
+ const constructor = mm
46
+ .map(({ meta }) => `private ${meta.data.dataServiceName} :${meta.data.repositoryClassName}`)
47
+ .join(',\n');
37
48
  return `
38
49
  import { Injectable, Logger } from '@nestjs/common'
39
50
 
@@ -47,14 +58,19 @@ function generateTestDataService({ meta }) {
47
58
  private logger = new Logger(TestDataService.name)
48
59
  constructor(
49
60
  private db: DbService,
50
-
51
61
  private resetService: ResetService,
62
+ ${constructor}
52
63
  ) {}
53
64
 
54
65
  public async resetTestData(data: MockData) {
55
66
  this.logger.log(\`✅ Reset test data\`)
56
67
  await this.db.emptyDatabase()
57
- return this.resetService.reset()
68
+
69
+ ${mm
70
+ .map(({ meta }) => `await this.${meta.data.dataServiceName}.reInit(data.${meta.data.mockDataPropertyName} ?? [])`)
71
+ .join('\n')}
72
+
73
+ return this.resetService.reset()
58
74
  }
59
75
  }
60
76
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postxl/generator",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "main": "./dist/generator.js",
5
5
  "typings": "./dist/generator.d.ts",
6
6
  "bin": {