@gadmin2n/prisma-react-generator 0.0.41 → 0.0.43
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/index.d.ts +1 -0
- package/dist/generator/index.js +13 -8
- package/dist/index.js +12 -1
- package/package.json +1 -1
package/dist/generator/index.js
CHANGED
|
@@ -21,7 +21,7 @@ const generate_ui_config_1 = require("./generate-ui-config");
|
|
|
21
21
|
const generate_models_index_1 = require("./generate-models-index");
|
|
22
22
|
const IGNORE_REACT_CODE = /@IgnoreReactCode/;
|
|
23
23
|
const run = ({ output, dmmf, ...options }) => {
|
|
24
|
-
const { fileNamingStyle = 'camel', ...preAndSuffixes } = options;
|
|
24
|
+
const { fileNamingStyle = 'camel', existingPageModels, ...preAndSuffixes } = options;
|
|
25
25
|
const transformers = {
|
|
26
26
|
camel: case_1.camel,
|
|
27
27
|
kebab: case_1.kebab,
|
|
@@ -52,8 +52,9 @@ const run = ({ output, dmmf, ...options }) => {
|
|
|
52
52
|
const uiConfig = (0, generate_ui_config_1.addNewModelsConfig)(allModels, enums);
|
|
53
53
|
const modelUIFiles = allModels.map((model) => {
|
|
54
54
|
sdk_1.logger.info(`Processing Model ${model.name}`);
|
|
55
|
+
const modelDirName = transformFileNameCase(model.name);
|
|
55
56
|
const configFile = {
|
|
56
|
-
fileName: node_path_1.default.join(output, 'props',
|
|
57
|
+
fileName: node_path_1.default.join(output, 'props', modelDirName, `config.ts`),
|
|
57
58
|
content: (0, generate_config_props_1.generateConfigProps)({
|
|
58
59
|
model,
|
|
59
60
|
templateHelpers,
|
|
@@ -62,7 +63,7 @@ const run = ({ output, dmmf, ...options }) => {
|
|
|
62
63
|
}),
|
|
63
64
|
};
|
|
64
65
|
const modelFile = {
|
|
65
|
-
fileName: node_path_1.default.join(output, 'props',
|
|
66
|
+
fileName: node_path_1.default.join(output, 'props', modelDirName, `model.ts`),
|
|
66
67
|
content: (0, generate_model_props_1.generateModelProps)({
|
|
67
68
|
dmmf,
|
|
68
69
|
model,
|
|
@@ -71,8 +72,12 @@ const run = ({ output, dmmf, ...options }) => {
|
|
|
71
72
|
allModels,
|
|
72
73
|
}),
|
|
73
74
|
};
|
|
75
|
+
if (existingPageModels === null || existingPageModels === void 0 ? void 0 : existingPageModels.has(modelDirName)) {
|
|
76
|
+
sdk_1.logger.info(`Skipping page generation for Model ${model.name} (already exists in pagesDir)`);
|
|
77
|
+
return [configFile, modelFile];
|
|
78
|
+
}
|
|
74
79
|
const createPageFile = {
|
|
75
|
-
fileName: node_path_1.default.join(output, 'pages',
|
|
80
|
+
fileName: node_path_1.default.join(output, 'pages', modelDirName, `create.tsx`),
|
|
76
81
|
content: (0, generate_create_page_1.generateCreatePage)({
|
|
77
82
|
model,
|
|
78
83
|
templateHelpers,
|
|
@@ -81,7 +86,7 @@ const run = ({ output, dmmf, ...options }) => {
|
|
|
81
86
|
}),
|
|
82
87
|
};
|
|
83
88
|
const editPageFile = {
|
|
84
|
-
fileName: node_path_1.default.join(output, 'pages',
|
|
89
|
+
fileName: node_path_1.default.join(output, 'pages', modelDirName, `edit.tsx`),
|
|
85
90
|
content: (0, generate_edit_page_1.generateEditPage)({
|
|
86
91
|
model,
|
|
87
92
|
templateHelpers,
|
|
@@ -90,7 +95,7 @@ const run = ({ output, dmmf, ...options }) => {
|
|
|
90
95
|
}),
|
|
91
96
|
};
|
|
92
97
|
const indexPageFile = {
|
|
93
|
-
fileName: node_path_1.default.join(output, 'pages',
|
|
98
|
+
fileName: node_path_1.default.join(output, 'pages', modelDirName, `index.tsx`),
|
|
94
99
|
content: (0, generate_index_page_1.generateIndexPage)({
|
|
95
100
|
model,
|
|
96
101
|
templateHelpers,
|
|
@@ -99,7 +104,7 @@ const run = ({ output, dmmf, ...options }) => {
|
|
|
99
104
|
}),
|
|
100
105
|
};
|
|
101
106
|
const listPageFile = {
|
|
102
|
-
fileName: node_path_1.default.join(output, 'pages',
|
|
107
|
+
fileName: node_path_1.default.join(output, 'pages', modelDirName, `list.tsx`),
|
|
103
108
|
content: (0, generate_list_page_1.generateListPage)({
|
|
104
109
|
model,
|
|
105
110
|
templateHelpers,
|
|
@@ -108,7 +113,7 @@ const run = ({ output, dmmf, ...options }) => {
|
|
|
108
113
|
}),
|
|
109
114
|
};
|
|
110
115
|
const showPageFile = {
|
|
111
|
-
fileName: node_path_1.default.join(output, 'pages',
|
|
116
|
+
fileName: node_path_1.default.join(output, 'pages', modelDirName, `show.tsx`),
|
|
112
117
|
content: (0, generate_show_page_1.generatePageShow)({
|
|
113
118
|
model,
|
|
114
119
|
templateHelpers,
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generate = exports.stringToBoolean = void 0;
|
|
7
7
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
8
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
10
|
const make_dir_1 = __importDefault(require("make-dir"));
|
|
10
11
|
const generator_helper_1 = require("@prisma/generator-helper");
|
|
@@ -22,7 +23,7 @@ const stringToBoolean = (input, defaultValue = false) => {
|
|
|
22
23
|
exports.stringToBoolean = stringToBoolean;
|
|
23
24
|
const generate = (options) => {
|
|
24
25
|
const output = (0, sdk_1.parseEnvValue)(options.generator.output);
|
|
25
|
-
const { fileNamingStyle = 'camel', } = options.generator.config;
|
|
26
|
+
const { fileNamingStyle = 'camel', pagesDir, } = options.generator.config;
|
|
26
27
|
const supportedFileNamingStyles = ['kebab', 'camel', 'pascal', 'snake'];
|
|
27
28
|
const isSupportedFileNamingStyle = (style) => supportedFileNamingStyles.includes(style);
|
|
28
29
|
if (!isSupportedFileNamingStyle(fileNamingStyle)) {
|
|
@@ -30,10 +31,20 @@ const generate = (options) => {
|
|
|
30
31
|
.map((s) => `'${s}'`)
|
|
31
32
|
.join(', ')}.`);
|
|
32
33
|
}
|
|
34
|
+
const existingPageModels = new Set();
|
|
35
|
+
if (pagesDir) {
|
|
36
|
+
const resolvedPagesDir = node_path_1.default.resolve(node_path_1.default.dirname(options.schemaPath), pagesDir);
|
|
37
|
+
if ((0, node_fs_1.existsSync)(resolvedPagesDir)) {
|
|
38
|
+
(0, node_fs_1.readdirSync)(resolvedPagesDir, { withFileTypes: true })
|
|
39
|
+
.filter((e) => e.isDirectory())
|
|
40
|
+
.forEach((e) => existingPageModels.add(e.name));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
33
43
|
const results = (0, generator_1.run)({
|
|
34
44
|
output,
|
|
35
45
|
dmmf: options.dmmf,
|
|
36
46
|
fileNamingStyle,
|
|
47
|
+
existingPageModels,
|
|
37
48
|
});
|
|
38
49
|
const indexCollections = {};
|
|
39
50
|
return Promise.all(results
|
package/package.json
CHANGED