@postxl/generator 0.52.1 → 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 +3 -13
- package/dist/generators/indices/seed-migration.generator.js +0 -4
- package/dist/generators/models/businesslogic-update.generator.js +10 -1
- package/dist/generators/models/types.generator.js +1 -1
- package/dist/lib/attributes.d.ts +0 -6
- package/dist/prisma/attributes.js +0 -3
- package/package.json +1 -1
- package/dist/lib/skip-generator.d.ts +0 -18
- package/dist/lib/skip-generator.js +0 -41
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
|
-
|
|
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
|
-
|
|
188
|
-
|
|
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],
|
|
@@ -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
|
-
|
|
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
|
|
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
|
`;
|
package/dist/lib/attributes.d.ts
CHANGED
|
@@ -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,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;
|