@postxl/generator 0.52.0 โ†’ 0.53.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
@@ -77,7 +77,6 @@ const stub_generator_1 = require("./generators/models/stub.generator");
77
77
  const types_generator_3 = require("./generators/models/types.generator");
78
78
  const meta_1 = require("./lib/meta");
79
79
  const types_1 = require("./lib/schema/types");
80
- const skip_generator_1 = require("./lib/skip-generator");
81
80
  const vfs_1 = require("./lib/vfs");
82
81
  const client_path_1 = require("./prisma/client-path");
83
82
  const parse_1 = require("./prisma/parse");
@@ -168,9 +167,7 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
168
167
  // Types
169
168
  generated.write(`/${meta.types.filePath}.ts`, (0, types_generator_3.generateModelTypes)({ model, meta }));
170
169
  // Seed
171
- if (!(0, skip_generator_1.skipDecoder)({ model, generatorName: 'seed' })) {
172
- generated.write(`/${meta.seed.filePath}.ts`, (0, seed_generator_1.generateSeedModel)({ model, itemCount: 5, meta, models }));
173
- }
170
+ generated.write(`/${meta.seed.filePath}.ts`, (0, seed_generator_1.generateSeedModel)({ model, itemCount: 5, meta, models }));
174
171
  // Data
175
172
  generated.write(`/${meta.data.stubFilePath}.ts`, (0, stub_generator_1.generateStub)({ model, meta }));
176
173
  generated.write(`/${meta.data.repository.filePath}.ts`, (0, repository_generator_1.generateRepository)({ model, meta }));
@@ -184,15 +181,8 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
184
181
  // Routes
185
182
  generated.write(`/${meta.trpc.routerFilePath}.ts`, (0, route_generator_1.generateRoute)({ model, meta }));
186
183
  // React
187
- if (!(0, skip_generator_1.skipDecoder)({ model, generatorName: 'react' })) {
188
- yield generated.copy((0, react_generator_2.generateReactComponentsForModel)({ model, meta }), meta.react.folderPath);
189
- }
190
- if (model.attributes.skipGenerators.size === 0) {
191
- logger.log(`- ${model.name} processed`);
192
- }
193
- else {
194
- logger.log(`- ${model.name} processed (skipped generators for: ${[...model.attributes.skipGenerators].join(', ')})`);
195
- }
184
+ yield generated.copy((0, react_generator_2.generateReactComponentsForModel)({ model, meta }), meta.react.folderPath);
185
+ logger.log(`- ${model.name} processed`);
196
186
  }
197
187
  // Generate Enums
198
188
  for (const enumerator of enums.values()) {
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateSeedMigration = void 0;
4
4
  const imports_1 = require("../../lib/imports");
5
5
  const meta_1 = require("../../lib/meta");
6
- const skip_generator_1 = require("../../lib/skip-generator");
7
6
  /**
8
7
  * Generates the initial migration based on the generated seed data.
9
8
  */
@@ -11,9 +10,6 @@ function generateSeedMigration({ models, meta }) {
11
10
  const imports = imports_1.ImportsGenerator.from(meta.seedData.initialMigrationFilePath);
12
11
  const modelTypes = [];
13
12
  for (const model of models) {
14
- if ((0, skip_generator_1.skipDecoder)({ model, generatorName: 'seed' })) {
15
- continue;
16
- }
17
13
  const modelMeta = (0, meta_1.getModelMetadata)({ model });
18
14
  imports.addImports({
19
15
  [modelMeta.seed.filePath]: [modelMeta.seed.constantName],
@@ -47,11 +47,14 @@ export class TestDataService {
47
47
  ) {}
48
48
 
49
49
  public async resetTestData(data: MockData) {
50
+ this.logger.log('๐Ÿ’ฅ Emptying test data')
50
51
  await this.db.WIPE_ENTIRE_DATABASE()
51
52
 
52
53
  // We need to init the user repository first so the root user is created
53
54
  await this.dataService.users.init()
54
55
 
56
+ this.logger.log('โœ Setting test data')
57
+
55
58
  const mockData = ${schemaMeta.importExport.converterFunctions.mockDataToBulkMutations}(data)
56
59
  const action = createActionSeedData({ name: 'E2E', order: 0, data: [] })
57
60
  const actionExecution = await this.actionExecutionFactory.create({
@@ -63,7 +66,7 @@ export class TestDataService {
63
66
  ${reInitCalls.join('\n')}
64
67
 
65
68
  await actionExecution.success()
66
- this.logger.log(\`โœ… Reset test data\`)
69
+ this.logger.log('โœ… Reset test data')
67
70
  } catch (e) {
68
71
  await actionExecution.error(e)
69
72
  throw e
@@ -17,6 +17,7 @@ function generateModelBusinessLogicUpdate({ model, meta }) {
17
17
  [meta.data.importPath]: meta.data.repository.className,
18
18
  [schemaMeta.actions.importPath]: schemaMeta.actions.actionExecution.interface,
19
19
  [meta.types.importPath]: [(0, types_1.toAnnotatedTypeName)(model.brandedIdType), (0, types_1.toAnnotatedTypeName)(meta.types.typeName)],
20
+ [meta.businessLogic.view.serviceFilePath]: [meta.businessLogic.view.serviceClassName],
20
21
  [schemaMeta.businessLogic.update.serviceFilePath]: schemaMeta.businessLogic.update.serviceClassName,
21
22
  [schemaMeta.businessLogic.view.serviceFilePath]: schemaMeta.businessLogic.view.serviceClassName,
22
23
  [meta.data.importPath]: [meta.data.repository.className],
@@ -56,7 +57,15 @@ ${actionBlocks.typeDefinitionWithCreateFunction}
56
57
 
57
58
  @Injectable()
58
59
  export class ${meta.businessLogic.update.serviceClassName} {
59
- constructor(${constructorParameters.join(',\n')}) {}
60
+
61
+ /**
62
+ * Instance of the ${meta.userFriendlyName} view service for convenience.
63
+ */
64
+ private view: ${meta.businessLogic.view.serviceClassName}
65
+
66
+ constructor(${constructorParameters.join(',\n')}) {
67
+ this.view = this.${viewServiceClassName}.${meta.businessLogic.view.serviceVariableName}
68
+ }
60
69
 
61
70
  ${actionBlocks.dispatcher}
62
71
 
@@ -131,7 +131,7 @@ export type ${meta.types.dto.create} = ${schemaMeta.types.dto.create}<${meta.typ
131
131
  export type ${meta.types.dto.update} = ${schemaMeta.types.dto.update}<${meta.types.typeName}, ${model.brandedIdType}>
132
132
 
133
133
  /**
134
- * Data transfer object for upserting an existing ${meta.userFriendlyName} instance.
134
+ * Data transfer object for upserting a new or existing ${meta.userFriendlyName} instance.
135
135
  */
136
136
  export type ${meta.types.dto.upsert} = ${schemaMeta.types.dto.upsert}<${meta.types.typeName}, ${model.brandedIdType}>
137
137
  `;
@@ -1,4 +1,3 @@
1
- import { GeneratorName } from './skip-generator';
2
1
  export type AttributeValue = unknown;
3
2
  export type Attributes = Record<string, AttributeValue>;
4
3
  export type ModelAttributes = {
@@ -37,11 +36,6 @@ export type ModelAttributes = {
37
36
  * The user that is used for system actions.
38
37
  */
39
38
  systemUser?: object;
40
- /**
41
- * Set of generators that should be skipped for this model.
42
- * Schema tag: ยด@@Skip("seed", "react")`
43
- */
44
- skipGenerators: Set<GeneratorName>;
45
39
  };
46
40
  export type FieldAttributes = {
47
41
  /**
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getFieldAttributes = exports.getEnumAttributes = exports.getModelAttributes = exports.parseArgumentToStringOrStringArray = exports.parseAttributesFromDocumentation = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
- const skip_generator_1 = require("../lib/skip-generator");
9
8
  const string_1 = require("../lib/utils/string");
10
9
  /**
11
10
  * Parses attributes from a given string using provided prefix.
@@ -75,7 +74,6 @@ function getModelAttributes(model) {
75
74
  schema: zod_1.default.string().optional(),
76
75
  index: zod_1.default.array(zod_1.default.string()).optional(),
77
76
  seed: zod_1.default.string().optional(),
78
- skip: skip_generator_1.skipAttributeDecoder,
79
77
  systemUser: zod_1.default
80
78
  .string()
81
79
  .transform((t) => JSON.parse(t))
@@ -87,7 +85,6 @@ function getModelAttributes(model) {
87
85
  description: obj.description,
88
86
  databaseSchema: obj.schema,
89
87
  index: obj.index,
90
- skipGenerators: obj.skip,
91
88
  systemUser: obj.systemUser,
92
89
  randomSeed: obj.seed !== undefined ? parseInt(obj.seed, 10) : undefined,
93
90
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postxl/generator",
3
- "version": "0.52.0",
3
+ "version": "0.53.0",
4
4
  "main": "./dist/generator.js",
5
5
  "typings": "./dist/generator.d.ts",
6
6
  "bin": {
@@ -1,18 +0,0 @@
1
- import * as z from 'zod';
2
- import { ModelCore } from './schema/schema';
3
- /**
4
- * Identifiers of generators that can be skipped.
5
- */
6
- export type GeneratorName = 'seed' | 'react';
7
- /**
8
- * Decoder to convert a list of generator names to a Set of generator names.
9
- */
10
- export declare const skipAttributeDecoder: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodLiteral<"seed">, z.ZodLiteral<"react">]>, "many">>, Set<"seed" | "react">, ("seed" | "react")[] | undefined>;
11
- export type SkipAttribute = z.infer<typeof skipAttributeDecoder>;
12
- /**
13
- * Returns true if the given generator should be skipped.
14
- */
15
- export declare function skipDecoder({ model, generatorName }: {
16
- model: ModelCore;
17
- generatorName: GeneratorName;
18
- }): boolean;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.skipDecoder = exports.skipAttributeDecoder = void 0;
27
- const z = __importStar(require("zod"));
28
- /**
29
- * Decoder to convert a list of generator names to a Set of generator names.
30
- */
31
- exports.skipAttributeDecoder = z
32
- .array(z.union([z.literal('seed'), z.literal('react')]))
33
- .optional()
34
- .transform((t) => new Set(t));
35
- /**
36
- * Returns true if the given generator should be skipped.
37
- */
38
- function skipDecoder({ model, generatorName }) {
39
- return model.attributes.skipGenerators.has(generatorName);
40
- }
41
- exports.skipDecoder = skipDecoder;