@postxl/generator 0.69.1 → 0.70.1
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 +9 -9
- 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/models/importexport-decoder.generator.d.ts +1 -2
- package/dist/generators/models/importexport-decoder.generator.js +17 -46
- package/dist/generators/models/repository.generator.js +3 -3
- package/dist/generators/models/route.generator.js +5 -1
- package/dist/lib/meta.d.ts +0 -23
- package/dist/lib/meta.js +0 -17
- 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 +10 -13
- /package/dist/generators/indices/{routes-index.generator.d.ts → routes.generator.d.ts} +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
|
@@ -50,7 +50,7 @@ const importexport_exporter_class_generator_1 = require("./generators/indices/im
|
|
|
50
50
|
const importexport_import_service_generator_1 = require("./generators/indices/import-export/importexport-import-service.generator");
|
|
51
51
|
const importexport_types_generator_1 = require("./generators/indices/import-export/importexport-types.generator");
|
|
52
52
|
const repositories_generator_1 = require("./generators/indices/repositories.generator");
|
|
53
|
-
const
|
|
53
|
+
const routes_generator_1 = require("./generators/indices/routes.generator");
|
|
54
54
|
const seed_migration_generator_1 = require("./generators/indices/seed-migration.generator");
|
|
55
55
|
const seed_template_generator_1 = require("./generators/indices/seed-template.generator");
|
|
56
56
|
const testids_generator_1 = require("./generators/indices/testids.generator");
|
|
@@ -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,12 +135,13 @@ 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);
|
|
142
142
|
if (!decodedConfig.success) {
|
|
143
|
-
|
|
143
|
+
console.error(`Invalid generator config: ${decodedConfig.error.message}`);
|
|
144
|
+
process.exit(1);
|
|
144
145
|
}
|
|
145
146
|
const config = decodedConfig.data;
|
|
146
147
|
internals_1.logger.log(`Parsing DMMF...`);
|
|
@@ -153,8 +154,8 @@ const CONFIG_SCHEMA = zod_1.z
|
|
|
153
154
|
/**
|
|
154
155
|
* Generates PXL files and flushes them to disk.
|
|
155
156
|
*/
|
|
156
|
-
function generate(
|
|
157
|
-
return __awaiter(this,
|
|
157
|
+
function generate(_a) {
|
|
158
|
+
return __awaiter(this, arguments, void 0, function* ({ models, enums, config, prismaClientPath, logger, }) {
|
|
158
159
|
const root = yield lock_1.LockFile.findProjectRoot();
|
|
159
160
|
if (root == undefined) {
|
|
160
161
|
throw new Error(`Could not find lock file. Make sure you are running the generator in a project folder.`);
|
|
@@ -172,7 +173,7 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
|
|
|
172
173
|
generated.write(`/${meta.data.stubLocation.path}.ts`, (0, stub_generator_1.generateStub)({ model, meta }));
|
|
173
174
|
generated.write(`/${meta.data.repository.location.path}.ts`, (0, repository_generator_1.generateRepository)({ model, meta }));
|
|
174
175
|
// Import-Export
|
|
175
|
-
generated.write(`/${meta.importExport.decoder.filePath}.ts`, (0, importexport_decoder_generator_1.generateModelImportExportDecoder)({ model, meta
|
|
176
|
+
generated.write(`/${meta.importExport.decoder.filePath}.ts`, (0, importexport_decoder_generator_1.generateModelImportExportDecoder)({ model, meta }));
|
|
176
177
|
// Business Logic
|
|
177
178
|
generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, service_generator_5.generateModelBusinessLogicView)({ model, meta }));
|
|
178
179
|
generated.write(`/${meta.update.serviceClassLocation.path}.ts`, (0, service_generator_4.generateModelBusinessLogicUpdate)({ model, meta }));
|
|
@@ -217,7 +218,7 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
|
|
|
217
218
|
generated.write(`/${meta.seedData.initialMigrationLocation.path}.ts`, (0, seed_migration_generator_1.generateSeedMigration)({ models, meta }));
|
|
218
219
|
generated.write(`/${meta.seedData.templateExcelFilePath}`, yield (0, seed_template_generator_1.generateSeedExcelTemplate)({ models }));
|
|
219
220
|
// Routes
|
|
220
|
-
generated.write(`/${meta.trpc.routesFilePath}.ts`, (0,
|
|
221
|
+
generated.write(`/${meta.trpc.routesFilePath}.ts`, (0, routes_generator_1.generateRoutesIndex)({ models, meta }));
|
|
221
222
|
// Types
|
|
222
223
|
generated.write(`/${meta.types.indexFilePath}.ts`, (0, types_generator_3.generateTypesIndex)({ models, enums, meta }));
|
|
223
224
|
// -------------------------------------------------------------------------
|
|
@@ -226,7 +227,6 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
|
|
|
226
227
|
// NOTE: the eslint config provided here must match the .eslintrc files in the template!!!
|
|
227
228
|
const lintResult = yield generated.lintUTF8Files({
|
|
228
229
|
fix: true,
|
|
229
|
-
useEslintrc: false,
|
|
230
230
|
allowInlineConfig: true,
|
|
231
231
|
extensions: ['.ts', '.tsx', '.js', '.jsx'],
|
|
232
232
|
overrideConfig: {
|
|
@@ -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 });
|
|
@@ -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.
|
|
@@ -5,17 +5,18 @@ const imports_1 = require("../../lib/imports");
|
|
|
5
5
|
const meta_1 = require("../../lib/meta");
|
|
6
6
|
const types_1 = require("../../lib/schema/types");
|
|
7
7
|
const types_2 = require("../../lib/types");
|
|
8
|
+
const zodPackageName = (0, types_1.toPackageName)('@postxl/zod');
|
|
8
9
|
/**
|
|
9
10
|
* Creates a decoder for the Seed Excel template.
|
|
10
11
|
*/
|
|
11
|
-
function generateModelImportExportDecoder({ model, meta
|
|
12
|
+
function generateModelImportExportDecoder({ model, meta }) {
|
|
12
13
|
const { filePath: decoderFilePath, itemEncoderFunctionName: rowExportFunctionName, encodedExcelType: excelType, arrayEncoderFunctionName: tableExportFunctionName, tableDecoder: tableImportDecoder, } = meta.importExport.decoder;
|
|
13
14
|
const imports = imports_1.ImportsGenerator.from(decoderFilePath).addImports({
|
|
14
|
-
[
|
|
15
|
+
[zodPackageName]: [(0, types_1.toFunctionName)('excelNullOrBlankDecoder')],
|
|
15
16
|
[meta.types.importPath]: [(0, types_1.toAnnotatedTypeName)(meta.types.typeName)],
|
|
16
17
|
});
|
|
17
18
|
const { userFriendlyName: userFriendly, userFriendlyNamePlural: userFriendlyPlural, internalSingularName: singular, internalSingularNameCapitalized: singularCapitalized, } = meta;
|
|
18
|
-
const { fieldDecoders, blankFieldDecoders } = generateFieldDecoders({ model, meta,
|
|
19
|
+
const { fieldDecoders, blankFieldDecoders } = generateFieldDecoders({ model, meta, imports });
|
|
19
20
|
return `
|
|
20
21
|
import * as z from 'zod'
|
|
21
22
|
|
|
@@ -72,7 +73,7 @@ export const ${tableExportFunctionName} = (items: ${model.typeName}[]): ${excelT
|
|
|
72
73
|
`;
|
|
73
74
|
}
|
|
74
75
|
exports.generateModelImportExportDecoder = generateModelImportExportDecoder;
|
|
75
|
-
function generateFieldDecoders({ model, meta,
|
|
76
|
+
function generateFieldDecoders({ model, meta, imports, }) {
|
|
76
77
|
const fieldDecoders = [];
|
|
77
78
|
const blankFieldDecoders = [];
|
|
78
79
|
for (const field of model.fields) {
|
|
@@ -84,20 +85,16 @@ function generateFieldDecoders({ model, meta, schemaMeta, imports, }) {
|
|
|
84
85
|
imports.addImport({ items: [meta.types.toBrandedIdTypeFnName], from: meta.types.importPath });
|
|
85
86
|
fieldDecoders.push(`${fieldMeta.excelColumnName}: ${toExcelDecoder({
|
|
86
87
|
tsTypeName: field.unbrandedTypeName,
|
|
87
|
-
dbTypeName: field.schemaType,
|
|
88
88
|
nullable: false,
|
|
89
89
|
imports,
|
|
90
|
-
schemaMeta,
|
|
91
90
|
})}.transform((id: ${field.unbrandedTypeName}) => ${meta.types.toBrandedIdTypeFnName}(id))`);
|
|
92
91
|
break;
|
|
93
92
|
}
|
|
94
93
|
case 'scalar': {
|
|
95
94
|
fieldDecoders.push(`${fieldMeta.excelColumnName}: ${toExcelDecoder({
|
|
96
95
|
tsTypeName: field.tsTypeName,
|
|
97
|
-
dbTypeName: field.schemaType,
|
|
98
96
|
nullable: !field.isRequired,
|
|
99
97
|
imports,
|
|
100
|
-
schemaMeta,
|
|
101
98
|
})}${optionalModifier}`);
|
|
102
99
|
break;
|
|
103
100
|
}
|
|
@@ -107,10 +104,8 @@ function generateFieldDecoders({ model, meta, schemaMeta, imports, }) {
|
|
|
107
104
|
imports.addImport({ items: [refMeta.types.toBrandedIdTypeFnName], from: refMeta.types.importPath });
|
|
108
105
|
fieldDecoders.push(`${fieldMeta.excelColumnName}: ${toExcelDecoder({
|
|
109
106
|
tsTypeName: field.unbrandedTypeName,
|
|
110
|
-
dbTypeName: field.schemaType,
|
|
111
107
|
nullable: !field.isRequired,
|
|
112
108
|
imports,
|
|
113
|
-
schemaMeta,
|
|
114
109
|
})}
|
|
115
110
|
.transform(
|
|
116
111
|
(id: ${field.unbrandedTypeName}${field.isRequired ? '' : '| null'}) =>
|
|
@@ -131,50 +126,26 @@ function generateFieldDecoders({ model, meta, schemaMeta, imports, }) {
|
|
|
131
126
|
}
|
|
132
127
|
return { fieldDecoders, blankFieldDecoders };
|
|
133
128
|
}
|
|
134
|
-
function toExcelDecoder({ tsTypeName,
|
|
135
|
-
// We will use the DB type later when extending the number decoder
|
|
136
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
137
|
-
dbTypeName, nullable, imports, schemaMeta, }) {
|
|
129
|
+
function toExcelDecoder({ tsTypeName, nullable, imports, }) {
|
|
138
130
|
switch (tsTypeName) {
|
|
139
131
|
case 'string': {
|
|
140
|
-
const decoder =
|
|
141
|
-
imports.addImport({ items: [decoder], from:
|
|
132
|
+
const decoder = nullable ? (0, types_1.toFunctionName)('excelStringNullableDecoder') : (0, types_1.toFunctionName)('excelStringDecoder');
|
|
133
|
+
imports.addImport({ items: [decoder], from: zodPackageName });
|
|
134
|
+
return decoder;
|
|
135
|
+
}
|
|
136
|
+
case 'boolean': {
|
|
137
|
+
const decoder = (0, types_1.toFunctionName)('excelBooleanDecoder');
|
|
138
|
+
imports.addImport({ items: [decoder], from: zodPackageName });
|
|
142
139
|
return decoder;
|
|
143
140
|
}
|
|
144
|
-
case 'boolean':
|
|
145
|
-
imports.addImport({
|
|
146
|
-
items: [schemaMeta.backendModules.common.functions.excelBooleanDecoder],
|
|
147
|
-
from: schemaMeta.backendModules.common.importPath,
|
|
148
|
-
});
|
|
149
|
-
return 'excelBooleanDecoder';
|
|
150
141
|
case 'number': {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
case 'Int':
|
|
154
|
-
decoder =
|
|
155
|
-
schemaMeta.backendModules.common.functions[nullable ? 'excelNumberNullableDecoder' : 'excelNumberDecoder'];
|
|
156
|
-
break;
|
|
157
|
-
case 'BigInt':
|
|
158
|
-
decoder =
|
|
159
|
-
schemaMeta.backendModules.common.functions[nullable ? 'excelNumberNullableDecoder' : 'excelNumberDecoder'];
|
|
160
|
-
break;
|
|
161
|
-
default:
|
|
162
|
-
decoder =
|
|
163
|
-
schemaMeta.backendModules.common.functions[nullable ? 'excelNumberNullableDecoder' : 'excelNumberDecoder'];
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
imports.addImport({
|
|
167
|
-
items: [decoder],
|
|
168
|
-
from: schemaMeta.backendModules.common.importPath,
|
|
169
|
-
});
|
|
142
|
+
const decoder = nullable ? (0, types_1.toFunctionName)('excelNumberNullableDecoder') : (0, types_1.toFunctionName)('excelNumberDecoder');
|
|
143
|
+
imports.addImport({ items: [decoder], from: zodPackageName });
|
|
170
144
|
return decoder;
|
|
171
145
|
}
|
|
172
146
|
case 'Date': {
|
|
173
|
-
const decoder =
|
|
174
|
-
imports.addImport({
|
|
175
|
-
items: [decoder],
|
|
176
|
-
from: schemaMeta.backendModules.common.importPath,
|
|
177
|
-
});
|
|
147
|
+
const decoder = nullable ? (0, types_1.toFunctionName)('excelDateNullableDecoder') : (0, types_1.toFunctionName)('excelDateDecoder');
|
|
148
|
+
imports.addImport({ items: [decoder], from: zodPackageName });
|
|
178
149
|
return decoder;
|
|
179
150
|
}
|
|
180
151
|
default:
|
|
@@ -33,7 +33,7 @@ function generateRepository({ model, meta }) {
|
|
|
33
33
|
const uniqueStringFieldsBlocks = generateUniqueFieldsBlocks({ model, meta });
|
|
34
34
|
const maxLengthBlocks = generateMaxLengthBlocks({ model, meta });
|
|
35
35
|
const validationBlocks = generateValidationBlocks({ model, meta });
|
|
36
|
-
const indexBlocks = generateIndexBlocks({ model,
|
|
36
|
+
const indexBlocks = generateIndexBlocks({ model, imports });
|
|
37
37
|
const relationsBlocks = generateRelationsBlocks({ model, meta, imports });
|
|
38
38
|
imports.addImports({
|
|
39
39
|
[meta.types.importPath]: [meta.types.zodDecoderFnNames.fromDatabase],
|
|
@@ -828,10 +828,10 @@ function generateValidationBlocks({ model }) {
|
|
|
828
828
|
}
|
|
829
829
|
return result;
|
|
830
830
|
}
|
|
831
|
-
function generateIndexBlocks({ model, imports
|
|
831
|
+
function generateIndexBlocks({ model, imports }) {
|
|
832
832
|
const indexes = model.attributes.index ? [getIndexDefinition({ fieldNames: model.attributes.index, model })] : [];
|
|
833
833
|
if (indexes.length > 0) {
|
|
834
|
-
imports.addTypeImport({ items: [(0, types_1.toTypeName)('NestedMap')]
|
|
834
|
+
imports.addTypeImport({ from: (0, types_1.toPackageName)('@postxl/runtime'), items: [(0, types_1.toTypeName)('NestedMap')] });
|
|
835
835
|
}
|
|
836
836
|
const result = {
|
|
837
837
|
nestedMapDeclarations: [],
|
|
@@ -27,7 +27,7 @@ function generateRoute({ model, meta }) {
|
|
|
27
27
|
});
|
|
28
28
|
return /* ts */ `
|
|
29
29
|
import { z } from 'zod'
|
|
30
|
-
import { procedure, router } from '../trpc'
|
|
30
|
+
import { authMiddleware, procedure, router } from '../trpc'
|
|
31
31
|
|
|
32
32
|
${imports.generate()}
|
|
33
33
|
|
|
@@ -64,18 +64,22 @@ export const ${meta.trpc.routerName} = router({
|
|
|
64
64
|
}),
|
|
65
65
|
|
|
66
66
|
create: procedure
|
|
67
|
+
.use(authMiddleware)
|
|
67
68
|
.input(${meta.update.createInputDecoder})
|
|
68
69
|
.mutation(({ input, ctx }) => ctx.dispatch({scope: "${scopeName}", type: "create", payload: input})),
|
|
69
70
|
|
|
70
71
|
update: procedure
|
|
72
|
+
.use(authMiddleware)
|
|
71
73
|
.input(${meta.update.updateInputDecoder})
|
|
72
74
|
.mutation(({ input, ctx }) => ctx.dispatch({scope: "${scopeName}", type: "update", payload: input})),
|
|
73
75
|
|
|
74
76
|
upsert: procedure
|
|
77
|
+
.use(authMiddleware)
|
|
75
78
|
.input(${meta.update.upsertInputDecoder})
|
|
76
79
|
.mutation(({ input, ctx }) => ctx.dispatch({scope: "${scopeName}", type: "upsert", payload: input})),
|
|
77
80
|
|
|
78
81
|
delete: procedure
|
|
82
|
+
.use(authMiddleware)
|
|
79
83
|
.input(${meta.types.zodDecoderFnNames.id})
|
|
80
84
|
.mutation(({ input, ctx }) => ctx.dispatch({scope: "${scopeName}", type: "delete", payload: input})),
|
|
81
85
|
})
|
package/dist/lib/meta.d.ts
CHANGED
|
@@ -8,29 +8,6 @@ export type SchemaMetaData = {
|
|
|
8
8
|
* Static meta data for the backend modules that are not generated
|
|
9
9
|
*/
|
|
10
10
|
backendModules: {
|
|
11
|
-
common: {
|
|
12
|
-
/**
|
|
13
|
-
* Path that may be used to import the common backend module.
|
|
14
|
-
*/
|
|
15
|
-
importPath: Types.BackendModulePath;
|
|
16
|
-
/**
|
|
17
|
-
* Names of the functions that are provided by the common backend module.
|
|
18
|
-
*/
|
|
19
|
-
functions: {
|
|
20
|
-
excelNullOrBlankDecoder: Types.FunctionName;
|
|
21
|
-
excelStringNullableDecoder: Types.FunctionName;
|
|
22
|
-
excelStringDecoder: Types.FunctionName;
|
|
23
|
-
excelNumberNullableDecoder: Types.FunctionName;
|
|
24
|
-
excelNumberDecoder: Types.FunctionName;
|
|
25
|
-
excelIntDecoder: Types.FunctionName;
|
|
26
|
-
excelIntNullableDecoder: Types.FunctionName;
|
|
27
|
-
excelBigIntDecoder: Types.FunctionName;
|
|
28
|
-
excelBigIntNullableDecoder: Types.FunctionName;
|
|
29
|
-
excelDateNullableDecoder: Types.FunctionName;
|
|
30
|
-
excelDateDecoder: Types.FunctionName;
|
|
31
|
-
excelBooleanDecoder: Types.FunctionName;
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
11
|
auth: {
|
|
35
12
|
/**
|
|
36
13
|
* Path that may be used to import the auth backend module.
|
package/dist/lib/meta.js
CHANGED
|
@@ -32,23 +32,6 @@ const string_1 = require("./utils/string");
|
|
|
32
32
|
function getSchemaMetadata({ config }) {
|
|
33
33
|
return {
|
|
34
34
|
backendModules: {
|
|
35
|
-
common: {
|
|
36
|
-
importPath: Types.toBackendModulePath(`@backend/common`),
|
|
37
|
-
functions: {
|
|
38
|
-
excelNullOrBlankDecoder: Types.toFunctionName(`excelNullOrBlankDecoder`),
|
|
39
|
-
excelStringNullableDecoder: Types.toFunctionName(`excelStringNullableDecoder`),
|
|
40
|
-
excelStringDecoder: Types.toFunctionName(`excelStringDecoder`),
|
|
41
|
-
excelNumberNullableDecoder: Types.toFunctionName(`excelNumberNullableDecoder`),
|
|
42
|
-
excelNumberDecoder: Types.toFunctionName(`excelNumberDecoder`),
|
|
43
|
-
excelIntDecoder: Types.toFunctionName(`excelIntDecoder`),
|
|
44
|
-
excelIntNullableDecoder: Types.toFunctionName(`excelIntNullableDecoder`),
|
|
45
|
-
excelBigIntDecoder: Types.toFunctionName(`excelBigIntDecoder`),
|
|
46
|
-
excelBigIntNullableDecoder: Types.toFunctionName(`excelBigIntNullableDecoder`),
|
|
47
|
-
excelDateNullableDecoder: Types.toFunctionName(`excelDateNullableDecoder`),
|
|
48
|
-
excelDateDecoder: Types.toFunctionName(`excelDateDecoder`),
|
|
49
|
-
excelBooleanDecoder: Types.toFunctionName(`excelBooleanDecoder`),
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
35
|
auth: {
|
|
53
36
|
importPath: Types.toBackendModulePath(`@backend/auth`),
|
|
54
37
|
},
|
|
@@ -14,7 +14,7 @@ export declare const getDefaultField: ({ fields }: {
|
|
|
14
14
|
*/
|
|
15
15
|
export declare const getScalarFields: ({ fields, tsTypeName }: {
|
|
16
16
|
fields: Field[];
|
|
17
|
-
tsTypeName?: string
|
|
17
|
+
tsTypeName?: string;
|
|
18
18
|
}) => FieldScalar[];
|
|
19
19
|
/**
|
|
20
20
|
* List of all relation fields of the model.
|
package/dist/lib/zod.d.ts
CHANGED
package/dist/prisma/parse.js
CHANGED
|
@@ -65,7 +65,7 @@ exports.parsePrismaSchema = parsePrismaSchema;
|
|
|
65
65
|
/**
|
|
66
66
|
* These models are required for the generators/backend to work.
|
|
67
67
|
*/
|
|
68
|
-
const SYSTEM_MODELS = ['User', '
|
|
68
|
+
const SYSTEM_MODELS = ['User', 'File', 'Action', 'Mutation'];
|
|
69
69
|
function ensurePXLSystemModelsExist(models) {
|
|
70
70
|
for (const requiredModel of SYSTEM_MODELS) {
|
|
71
71
|
if (!models.find((m) => m.name === requiredModel)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@postxl/generator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.70.1",
|
|
4
4
|
"main": "./dist/generator.js",
|
|
5
5
|
"typings": "./dist/generator.d.ts",
|
|
6
6
|
"bin": {
|
|
@@ -20,22 +20,22 @@
|
|
|
20
20
|
"exceljs": "4.3.0",
|
|
21
21
|
"fast-glob": "3.2.12",
|
|
22
22
|
"remeda": "1.9.4",
|
|
23
|
-
"zod": "3.
|
|
24
|
-
"@postxl/lock": "1.4.
|
|
25
|
-
"@postxl/prettier": "0.0.
|
|
23
|
+
"zod": "3.22.2",
|
|
24
|
+
"@postxl/lock": "1.4.2",
|
|
25
|
+
"@postxl/prettier": "0.0.2"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
+
"@jest/globals": "29.7.0",
|
|
28
29
|
"@prisma/client": "5.8.1",
|
|
29
30
|
"@types/eslint": "8.44.7",
|
|
30
|
-
"@types/
|
|
31
|
-
"@types/node": "18.15.10",
|
|
31
|
+
"@types/node": "20.5.0",
|
|
32
32
|
"jest": "29.7.0",
|
|
33
33
|
"prisma": "5.8.1",
|
|
34
|
-
"ts-jest": "29.
|
|
35
|
-
"ts-node": "10.9.
|
|
34
|
+
"ts-jest": "29.1.3",
|
|
35
|
+
"ts-node": "10.9.2",
|
|
36
36
|
"ts-toolbelt": "9.6.0",
|
|
37
|
-
"tsconfig-paths": "4.
|
|
38
|
-
"typescript": "5.
|
|
37
|
+
"tsconfig-paths": "4.2.0",
|
|
38
|
+
"typescript": "5.4.5"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"prisma": "5.8.1"
|
|
@@ -44,9 +44,6 @@
|
|
|
44
44
|
"autoDetect": true
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
|
-
"build": "tsc -p tsconfig.build.json",
|
|
48
|
-
"prepublish": "tsc -p tsconfig.build.json",
|
|
49
|
-
"dev": "tsc -p tsconfig.build.json -w",
|
|
50
47
|
"test:generators": "./scripts/test.sh",
|
|
51
48
|
"test:jest": "jest",
|
|
52
49
|
"test:watch": "jest --watch",
|
|
File without changes
|