@postxl/generator 0.69.1 → 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 +7 -7
- 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 +5 -8
- /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,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.`);
|
|
@@ -172,7 +172,7 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
|
|
|
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
177
|
generated.write(`/${meta.view.serviceLocation.path}.ts`, (0, service_generator_5.generateModelBusinessLogicView)({ model, meta }));
|
|
178
178
|
generated.write(`/${meta.update.serviceClassLocation.path}.ts`, (0, service_generator_4.generateModelBusinessLogicUpdate)({ model, meta }));
|
|
@@ -217,7 +217,7 @@ function generate({ models, enums, config, prismaClientPath, logger, }) {
|
|
|
217
217
|
generated.write(`/${meta.seedData.initialMigrationLocation.path}.ts`, (0, seed_migration_generator_1.generateSeedMigration)({ models, meta }));
|
|
218
218
|
generated.write(`/${meta.seedData.templateExcelFilePath}`, yield (0, seed_template_generator_1.generateSeedExcelTemplate)({ models }));
|
|
219
219
|
// Routes
|
|
220
|
-
generated.write(`/${meta.trpc.routesFilePath}.ts`, (0,
|
|
220
|
+
generated.write(`/${meta.trpc.routesFilePath}.ts`, (0, routes_generator_1.generateRoutesIndex)({ models, meta }));
|
|
221
221
|
// Types
|
|
222
222
|
generated.write(`/${meta.types.indexFilePath}.ts`, (0, types_generator_3.generateTypesIndex)({ models, enums, meta }));
|
|
223
223
|
// -------------------------------------------------------------------------
|
|
@@ -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.0",
|
|
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.
|
|
23
|
+
"zod": "3.22.2",
|
|
24
24
|
"@postxl/lock": "1.4.1",
|
|
25
25
|
"@postxl/prettier": "0.0.1"
|
|
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/jest": "29.5.0",
|
|
31
31
|
"@types/node": "18.15.10",
|
|
32
32
|
"jest": "29.7.0",
|
|
33
33
|
"prisma": "5.8.1",
|
|
34
|
-
"ts-jest": "29.
|
|
34
|
+
"ts-jest": "29.1.3",
|
|
35
35
|
"ts-node": "10.9.1",
|
|
36
36
|
"ts-toolbelt": "9.6.0",
|
|
37
37
|
"tsconfig-paths": "4.1.2",
|
|
38
|
-
"typescript": "5.
|
|
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
|