@gadmin2n/prisma-react-generator 0.0.61 → 0.0.63

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.
@@ -3,27 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateResources = void 0;
4
4
  const case_1 = require("case");
5
5
  const generateResources = ({ models, templateHelpers: t, }) => `
6
+ import { lazy } from "react";
6
7
  import { ResourceProps } from "@refinedev/core";
7
8
 
8
- ${t.each(models, (model) => `import { ${model.name}List, ${model.name}Create, ${model.name}Edit, ${model.name}Show } from "../routes/${(0, case_1.camel)(model.name)}";`, '\n')}
9
+ // 使用 React.lazy 按需加载各 CRUD 页面,避免 dev 启动时把所有 data-mngt
10
+ // 页面一次性拖入主 chunk(消费方 routeRegistry.tsx 的 renderEntry 已用
11
+ // <Suspense> 包裹)。
12
+ ${t.each(models, (model) => {
13
+ const dir = (0, case_1.camel)(model.name);
14
+ return `const ${model.name}List = lazy(() => import("../routes/${dir}/list").then((m) => ({ default: m.${model.name}List })));
15
+ const ${model.name}Create = lazy(() => import("../routes/${dir}/create").then((m) => ({ default: m.${model.name}Create })));
16
+ const ${model.name}Edit = lazy(() => import("../routes/${dir}/edit").then((m) => ({ default: m.${model.name}Edit })));
17
+ const ${model.name}Show = lazy(() => import("../routes/${dir}/show").then((m) => ({ default: m.${model.name}Show })));`;
18
+ }, '\n\n')}
9
19
 
10
20
  const resources: ResourceProps[] = [
11
- ${t.each(models, (model) => `{
12
- name: "${(0, case_1.camel)(model.name)}",
21
+ ${t.each(models, (model) => `{
22
+ name: "${(0, case_1.camel)(model.name)}",
13
23
  list: '/${(0, case_1.camel)(model.name)}',
14
24
  create: "/${(0, case_1.camel)(model.name)}/create",
15
25
  edit: "/${(0, case_1.camel)(model.name)}/edit/:id",
16
26
  clone: "/${(0, case_1.camel)(model.name)}/clone/:id",
17
- show: "/${(0, case_1.camel)(model.name)}/show/:id",
27
+ show: "/${(0, case_1.camel)(model.name)}/show/:id",
18
28
  meta: {
19
- canDelete: true,
29
+ canDelete: true,
20
30
  components: {
21
31
  list: ${model.name}List,
22
32
  create: ${model.name}Create,
23
33
  edit: ${model.name}Edit,
24
34
  show: ${model.name}Show,
25
35
  },
26
- }
36
+ }
27
37
  },`, '\n')}
28
38
  ];
29
39
 
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.run = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
8
  const case_1 = require("case");
9
- const sdk_1 = require("@prisma/sdk");
10
9
  const template_helpers_1 = require("./template-helpers");
11
10
  const field_classifiers_1 = require("./field-classifiers");
12
11
  const generate_resources_1 = require("./generate-resources");
@@ -51,7 +50,6 @@ const run = ({ output, dmmf, ...options }) => {
51
50
  const enums = dmmf.schema.enumTypes.model;
52
51
  const uiConfig = (0, generate_ui_config_1.addNewModelsConfig)(allModels, enums);
53
52
  const modelUIFiles = allModels.map((model) => {
54
- sdk_1.logger.info(`Processing Model ${model.name}`);
55
53
  const modelDirName = transformFileNameCase(model.name);
56
54
  const configFile = {
57
55
  fileName: node_path_1.default.join(output, 'props', modelDirName, `config.ts`),
@@ -73,7 +71,6 @@ const run = ({ output, dmmf, ...options }) => {
73
71
  }),
74
72
  };
75
73
  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 routes/)`);
77
74
  return [configFile, modelFile];
78
75
  }
79
76
  const createPageFile = {
package/dist/index.js CHANGED
@@ -22,7 +22,8 @@ const stringToBoolean = (input, defaultValue = false) => {
22
22
  };
23
23
  exports.stringToBoolean = stringToBoolean;
24
24
  const generate = (options) => {
25
- const output = (0, sdk_1.parseEnvValue)(options.generator.output);
25
+ const output = process.env.GADMIN_WEB_STAGING ||
26
+ (0, sdk_1.parseEnvValue)(options.generator.output);
26
27
  const { fileNamingStyle = 'camel', pagesDir, } = options.generator.config;
27
28
  const supportedFileNamingStyles = ['kebab', 'camel', 'pascal', 'snake'];
28
29
  const isSupportedFileNamingStyle = (style) => supportedFileNamingStyles.includes(style);
@@ -32,13 +33,15 @@ const generate = (options) => {
32
33
  .join(', ')}.`);
33
34
  }
34
35
  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
- }
36
+ const resolvedPagesDir = process.env.GADMIN_WEB_ROUTES_DIR
37
+ ? process.env.GADMIN_WEB_ROUTES_DIR
38
+ : pagesDir
39
+ ? node_path_1.default.resolve(node_path_1.default.dirname(options.schemaPath), pagesDir)
40
+ : null;
41
+ if (resolvedPagesDir && (0, node_fs_1.existsSync)(resolvedPagesDir)) {
42
+ (0, node_fs_1.readdirSync)(resolvedPagesDir, { withFileTypes: true })
43
+ .filter((e) => e.isDirectory())
44
+ .forEach((e) => existingPageModels.add(e.name));
42
45
  }
43
46
  const results = (0, generator_1.run)({
44
47
  output,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gadmin2n/prisma-react-generator",
3
3
  "description": "Generates react props and components from Prisma Schema for Tea/Antd ui lib.",
4
- "version": "0.0.61",
4
+ "version": "0.0.63",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
7
7
  "name": "kavenma",