@creekjs/umi-plugins 1.0.5 → 1.0.7

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.
@@ -86,7 +86,9 @@ var getIconsInfoForRoutes = (api) => {
86
86
  var creek_layout_default = (api) => {
87
87
  const TEMPLATE_DIR = (0, import_path.join)(__dirname, "template");
88
88
  const creekWebComponentsPath = (0, import_plugin_utils.winPath)(getPkgPath(api, "@creekjs/web-components"));
89
- const creekIconPath = require.resolve(`${creekWebComponentsPath}/dist/creek-icon`);
89
+ const realWebComponentsPath = (0, import_plugin_utils.winPath)((0, import_fs.realpathSync)(creekWebComponentsPath));
90
+ const isMonorepo = !realWebComponentsPath.includes("/node_modules/");
91
+ const creekIconPath = isMonorepo ? (0, import_plugin_utils.winPath)((0, import_path.join)(creekWebComponentsPath, "src", "creek-icon")) : require.resolve(`${creekWebComponentsPath}/dist/creek-icon`);
90
92
  api.describe({
91
93
  key: "creekLayout",
92
94
  config: {
@@ -110,15 +112,16 @@ var creek_layout_default = (api) => {
110
112
  });
111
113
  api.modifyConfig((memo) => {
112
114
  const name = require(`${creekWebComponentsPath}/package.json`).name;
113
- memo.alias[name] = creekWebComponentsPath;
115
+ memo.alias[name] = isMonorepo ? (0, import_plugin_utils.winPath)((0, import_path.join)(creekWebComponentsPath, "src")) : creekWebComponentsPath;
114
116
  const routes = memo.routes;
115
117
  const hasNotFoundPage = routes == null ? void 0 : routes.find((item) => [item.name, item.path].includes("404"));
118
+ const notFoundComponentPath = isMonorepo ? (0, import_plugin_utils.winPath)((0, import_path.join)(creekWebComponentsPath, "src", "creek-layout", "Exception", "NotFoundPage.tsx")) : require.resolve(`${creekWebComponentsPath}/dist/creek-layout/Exception/NotFoundPage`);
116
119
  const defaultRoutes = [
117
120
  {
118
121
  name: "404",
119
122
  path: "*",
120
123
  hideInMenu: true,
121
- component: require.resolve(`${creekWebComponentsPath}/dist/creek-layout/Exception/NotFoundPage`)
124
+ component: notFoundComponentPath
122
125
  }
123
126
  ];
124
127
  if (!hasNotFoundPage) {
@@ -132,11 +135,12 @@ var creek_layout_default = (api) => {
132
135
  const hasLocalePlugin = !!api.config.locale;
133
136
  const iconsInfo = getIconsInfoForRoutes(api);
134
137
  const iconFontCNs = Array.isArray((_a = api.userConfig.creekLayout) == null ? void 0 : _a.iconFontCNs) ? (_b = api.userConfig.creekLayout) == null ? void 0 : _b.iconFontCNs : [];
138
+ const importPath = isMonorepo ? (0, import_plugin_utils.winPath)((0, import_path.join)(creekWebComponentsPath, "src")) : creekWebComponentsPath;
135
139
  api.writeTmpFile({
136
140
  path: "Layout.tsx",
137
141
  tplPath: (0, import_path.join)(TEMPLATE_DIR, "/layout.tpl"),
138
142
  context: {
139
- creekWebComponentsPath,
143
+ creekWebComponentsPath: importPath,
140
144
  hasInitialStatePlugin,
141
145
  hasLocalePlugin,
142
146
  access: api.config.access,
@@ -148,7 +152,7 @@ var creek_layout_default = (api) => {
148
152
  path: "types.d.ts",
149
153
  tplPath: (0, import_path.join)(TEMPLATE_DIR, "/type.tpl"),
150
154
  context: {
151
- creekWebComponentsPath,
155
+ creekWebComponentsPath: importPath,
152
156
  hasInitialStatePlugin,
153
157
  access: api.config.access
154
158
  }
@@ -171,7 +175,7 @@ var creek_layout_default = (api) => {
171
175
  path: "runtime.tsx",
172
176
  tplPath: (0, import_path.join)(TEMPLATE_DIR, "/runtime.tpl"),
173
177
  context: {
174
- creekWebComponentsPath,
178
+ creekWebComponentsPath: importPath,
175
179
  hasIconFontCNs: iconFontCNs.length > 0,
176
180
  iconFontCNs: JSON.stringify(iconFontCNs)
177
181
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/creek-layout/index.tsx"],
4
- "sourcesContent": ["import { IApi, IRoute, RUNTIME_TYPE_FILE_NAME } from '@umijs/max';\nimport { lodash, winPath } from '@umijs/max/plugin-utils';\nimport { existsSync, readFileSync } from 'fs';\nimport { dirname, join } from 'path';\n\nimport { withTmpPath } from '../utils';\n\nconst getPkgHasDep = (api: IApi, depList: string[]) => {\n const hasDependency = (pkg: Record<string, any>, dep: string) => pkg.dependencies?.[dep] || pkg.devDependencies?.[dep];\n const { pkg } = api;\n return depList.find((dep) => hasDependency(pkg, dep));\n};\n\nconst getPkgPath = (api: IApi, pkgName: string, depList?: string[]) => {\n const _depList = depList && depList.length ? depList : [pkgName];\n const pkgHasDep = getPkgHasDep(api, _depList);\n\n if (pkgHasDep) {\n const nodeModulesPath = join(api.cwd, 'node_modules', pkgHasDep, 'package.json');\n\n if (existsSync(nodeModulesPath)) {\n return join(api.cwd, 'node_modules', pkgHasDep);\n }\n\n const cwd = process.cwd();\n if (api.cwd !== cwd) {\n const altNodeModulesPath = join(cwd, 'node_modules', pkgHasDep, 'package.json');\n if (existsSync(altNodeModulesPath)) {\n return join(cwd, 'node_modules', pkgHasDep);\n }\n }\n }\n\n // 如果项目中没有去找插件依赖的\n return dirname(require.resolve(`${pkgName}/package.json`));\n};\n\nconst getIconsInfoForRoutes = (api: IApi) => {\n // 获取所有 icons\n const antIconsPath = winPath(getPkgPath(api, '@ant-design/icons'));\n\n const getAllIcons = () => {\n // 读取 index.d.ts\n const iconTypePath = join(antIconsPath, './lib/icons/index.d.ts');\n const iconTypeContent = readFileSync(iconTypePath, 'utf-8');\n\n // 截取 default as ${iconName}, 然后获取 iconName 转换为 map\n return [...iconTypeContent.matchAll(/default as (\\w+)/g)].reduce((memo: Record<string, boolean>, cur) => {\n memo[cur[1]] = true;\n return memo;\n }, {});\n };\n\n const allIcons: Record<string, boolean> = getAllIcons();\n\n const iconsMap = Object.keys(api.appData.routes).reduce<Record<string, boolean>>((memo, id) => {\n const { icon } = api.appData.routes[id];\n if (icon) {\n const upperIcon = lodash.upperFirst(lodash.camelCase(icon));\n // @ts-ignore\n if (allIcons[upperIcon]) {\n memo[upperIcon] = true;\n }\n // @ts-ignore\n if (allIcons[`${upperIcon}Outlined`]) {\n memo[`${upperIcon}Outlined`] = true;\n }\n }\n return memo;\n }, {});\n const icons = Object.keys(iconsMap);\n\n return {\n icons,\n antIconsPath,\n };\n};\n\nexport default (api: IApi) => {\n const TEMPLATE_DIR = join(__dirname, 'template');\n\n const creekWebComponentsPath = winPath(getPkgPath(api, '@creekjs/web-components'));\n const creekIconPath = require.resolve(`${creekWebComponentsPath}/dist/creek-icon`);\n\n api.describe({\n key: 'creekLayout',\n config: {\n schema({ zod }) {\n return zod\n .object({\n title: zod.string(),\n iconFontCNs: zod.string().array(),\n })\n .partial();\n }, \n onChange: api.ConfigChangeType.regenerateTmpFiles,\n },\n enableBy: api.EnableBy.config,\n });\n\n api.modifyAppData((memo) => {\n const version = require(`${creekWebComponentsPath}/package.json`).version;\n memo.pluginLayout = {\n creekWebComponentsPath,\n version,\n };\n return memo;\n });\n\n // 新增404页面\n api.modifyConfig((memo) => {\n const name = require(`${creekWebComponentsPath}/package.json`).name;\n memo.alias[name] = creekWebComponentsPath;\n\n const routes = memo.routes as IRoute[];\n const hasNotFoundPage = routes?.find((item) => [item.name, item.path].includes('404'));\n const defaultRoutes = [\n {\n name: '404',\n path: '*',\n hideInMenu: true,\n component: require.resolve(`${creekWebComponentsPath}/dist/creek-layout/Exception/NotFoundPage`),\n },\n ];\n\n if (!hasNotFoundPage) {\n memo.routes = [...routes, ...defaultRoutes];\n }\n\n return memo;\n });\n\n api.onGenerateFiles(() => {\n const hasInitialStatePlugin = !!api.config.initialState;\n const hasLocalePlugin = !!api.config.locale;\n const iconsInfo = getIconsInfoForRoutes(api);\n\n const iconFontCNs = Array.isArray(api.userConfig.creekLayout?.iconFontCNs) ? api.userConfig.creekLayout?.iconFontCNs : [];\n\n api.writeTmpFile({\n path: 'Layout.tsx',\n tplPath: join(TEMPLATE_DIR, '/layout.tpl'),\n context: {\n creekWebComponentsPath,\n hasInitialStatePlugin,\n hasLocalePlugin,\n access: api.config.access,\n creekLocaleConfig: api.config.creekLocaleConfig ? JSON.stringify(api.config.glocale, null, 2) : 'undefined',\n userConfig: JSON.stringify(api.config.creekLayout, null, 2),\n },\n });\n // 写入类型, RunTimeLayoutConfig 是 app.tsx 中 layout 配置的类型\n api.writeTmpFile({\n path: 'types.d.ts',\n tplPath: join(TEMPLATE_DIR, '/type.tpl'),\n context: {\n creekWebComponentsPath,\n hasInitialStatePlugin,\n access: api.config.access,\n },\n });\n\n api.writeTmpFile({\n path: RUNTIME_TYPE_FILE_NAME,\n tplPath: join(TEMPLATE_DIR, '/runtime-config.type.tpl'),\n context: {},\n });\n\n api.writeTmpFile({\n path: 'icons.tsx',\n tplPath: join(TEMPLATE_DIR, '/icons.tpl'),\n context: {\n icons: iconsInfo.icons,\n antIconsPath: iconsInfo.antIconsPath,\n creekIconPath,\n },\n });\n\n // runtime.tsx\n api.writeTmpFile({\n path: 'runtime.tsx',\n tplPath: join(TEMPLATE_DIR, '/runtime.tpl'),\n context: {\n creekWebComponentsPath,\n hasIconFontCNs: iconFontCNs.length > 0,\n iconFontCNs: JSON.stringify(iconFontCNs),\n },\n });\n });\n\n api.addLayouts(() => {\n return [\n {\n id: 'ant-design-pro-layout',\n file: withTmpPath({ api, path: 'Layout.tsx' }),\n test: (route: any) => {\n return route.layout !== false;\n },\n },\n ];\n });\n\n api.addRuntimePluginKey(() => ['layout']);\n\n api.addRuntimePlugin(() => {\n return [withTmpPath({ api, path: 'runtime.tsx' })];\n });\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { IApi, IRoute, RUNTIME_TYPE_FILE_NAME } from '@umijs/max';\nimport { lodash, winPath } from '@umijs/max/plugin-utils';\nimport { existsSync, readFileSync, realpathSync } from 'fs';\nimport { dirname, join } from 'path';\n\nimport { withTmpPath } from '../utils';\n\nconst getPkgHasDep = (api: IApi, depList: string[]) => {\n const hasDependency = (pkg: Record<string, any>, dep: string) => pkg.dependencies?.[dep] || pkg.devDependencies?.[dep];\n const { pkg } = api;\n return depList.find((dep) => hasDependency(pkg, dep));\n};\n\nconst getPkgPath = (api: IApi, pkgName: string, depList?: string[]) => {\n const _depList = depList && depList.length ? depList : [pkgName];\n const pkgHasDep = getPkgHasDep(api, _depList);\n\n if (pkgHasDep) {\n const nodeModulesPath = join(api.cwd, 'node_modules', pkgHasDep, 'package.json');\n\n if (existsSync(nodeModulesPath)) {\n return join(api.cwd, 'node_modules', pkgHasDep);\n }\n\n const cwd = process.cwd();\n if (api.cwd !== cwd) {\n const altNodeModulesPath = join(cwd, 'node_modules', pkgHasDep, 'package.json');\n if (existsSync(altNodeModulesPath)) {\n return join(cwd, 'node_modules', pkgHasDep);\n }\n }\n }\n\n // 如果项目中没有去找插件依赖的\n return dirname(require.resolve(`${pkgName}/package.json`));\n};\n\nconst getIconsInfoForRoutes = (api: IApi) => {\n // 获取所有 icons\n const antIconsPath = winPath(getPkgPath(api, '@ant-design/icons'));\n\n const getAllIcons = () => {\n // 读取 index.d.ts\n const iconTypePath = join(antIconsPath, './lib/icons/index.d.ts');\n const iconTypeContent = readFileSync(iconTypePath, 'utf-8');\n\n // 截取 default as ${iconName}, 然后获取 iconName 转换为 map\n return [...iconTypeContent.matchAll(/default as (\\w+)/g)].reduce((memo: Record<string, boolean>, cur) => {\n memo[cur[1]] = true;\n return memo;\n }, {});\n };\n\n const allIcons: Record<string, boolean> = getAllIcons();\n\n const iconsMap = Object.keys(api.appData.routes).reduce<Record<string, boolean>>((memo, id) => {\n const { icon } = api.appData.routes[id];\n if (icon) {\n const upperIcon = lodash.upperFirst(lodash.camelCase(icon));\n // @ts-ignore\n if (allIcons[upperIcon]) {\n memo[upperIcon] = true;\n }\n // @ts-ignore\n if (allIcons[`${upperIcon}Outlined`]) {\n memo[`${upperIcon}Outlined`] = true;\n }\n }\n return memo;\n }, {});\n const icons = Object.keys(iconsMap);\n\n return {\n icons,\n antIconsPath,\n };\n};\n\nexport default (api: IApi) => {\n const TEMPLATE_DIR = join(__dirname, 'template');\n\n const creekWebComponentsPath = winPath(getPkgPath(api, '@creekjs/web-components'));\n // Use src path directly when in monorepo, else use dist\n // Checking if the real path contains '/node_modules/' is more reliable than checking for 'src' folder\n // because published packages might include the 'src' folder.\n const realWebComponentsPath = winPath(realpathSync(creekWebComponentsPath));\n const isMonorepo = !realWebComponentsPath.includes('/node_modules/');\n const creekIconPath = isMonorepo \n ? winPath(join(creekWebComponentsPath, 'src', 'creek-icon'))\n : require.resolve(`${creekWebComponentsPath}/dist/creek-icon`);\n\n api.describe({\n key: 'creekLayout',\n config: {\n schema({ zod }) {\n return zod\n .object({\n title: zod.string(),\n iconFontCNs: zod.string().array(),\n })\n .partial();\n }, \n onChange: api.ConfigChangeType.regenerateTmpFiles,\n },\n enableBy: api.EnableBy.config,\n });\n\n api.modifyAppData((memo) => {\n const version = require(`${creekWebComponentsPath}/package.json`).version;\n memo.pluginLayout = {\n creekWebComponentsPath,\n version,\n };\n return memo;\n });\n\n // 新增404页面\n api.modifyConfig((memo) => {\n const name = require(`${creekWebComponentsPath}/package.json`).name;\n memo.alias[name] = isMonorepo ? winPath(join(creekWebComponentsPath, 'src')) : creekWebComponentsPath;\n\n const routes = memo.routes as IRoute[];\n const hasNotFoundPage = routes?.find((item) => [item.name, item.path].includes('404'));\n const notFoundComponentPath = isMonorepo \n ? winPath(join(creekWebComponentsPath, 'src', 'creek-layout', 'Exception', 'NotFoundPage.tsx'))\n : require.resolve(`${creekWebComponentsPath}/dist/creek-layout/Exception/NotFoundPage`);\n \n const defaultRoutes = [\n {\n name: '404',\n path: '*',\n hideInMenu: true,\n component: notFoundComponentPath,\n },\n ];\n\n if (!hasNotFoundPage) {\n memo.routes = [...routes, ...defaultRoutes];\n }\n\n return memo;\n });\n\n api.onGenerateFiles(() => {\n const hasInitialStatePlugin = !!api.config.initialState;\n const hasLocalePlugin = !!api.config.locale;\n const iconsInfo = getIconsInfoForRoutes(api);\n\n const iconFontCNs = Array.isArray(api.userConfig.creekLayout?.iconFontCNs) ? api.userConfig.creekLayout?.iconFontCNs : [];\n\n const importPath = isMonorepo ? winPath(join(creekWebComponentsPath, 'src')) : creekWebComponentsPath;\n\n api.writeTmpFile({\n path: 'Layout.tsx',\n tplPath: join(TEMPLATE_DIR, '/layout.tpl'),\n context: {\n creekWebComponentsPath: importPath,\n hasInitialStatePlugin,\n hasLocalePlugin,\n access: api.config.access,\n creekLocaleConfig: api.config.creekLocaleConfig ? JSON.stringify(api.config.glocale, null, 2) : 'undefined',\n userConfig: JSON.stringify(api.config.creekLayout, null, 2),\n },\n });\n // 写入类型, RunTimeLayoutConfig 是 app.tsx 中 layout 配置的类型\n api.writeTmpFile({\n path: 'types.d.ts',\n tplPath: join(TEMPLATE_DIR, '/type.tpl'),\n context: {\n creekWebComponentsPath: importPath,\n hasInitialStatePlugin,\n access: api.config.access,\n },\n });\n\n api.writeTmpFile({\n path: RUNTIME_TYPE_FILE_NAME,\n tplPath: join(TEMPLATE_DIR, '/runtime-config.type.tpl'),\n context: {},\n });\n\n api.writeTmpFile({\n path: 'icons.tsx',\n tplPath: join(TEMPLATE_DIR, '/icons.tpl'),\n context: {\n icons: iconsInfo.icons,\n antIconsPath: iconsInfo.antIconsPath,\n creekIconPath,\n },\n });\n\n // runtime.tsx\n api.writeTmpFile({\n path: 'runtime.tsx',\n tplPath: join(TEMPLATE_DIR, '/runtime.tpl'),\n context: {\n creekWebComponentsPath: importPath,\n hasIconFontCNs: iconFontCNs.length > 0,\n iconFontCNs: JSON.stringify(iconFontCNs),\n },\n });\n });\n\n api.addLayouts(() => {\n return [\n {\n id: 'ant-design-pro-layout',\n file: withTmpPath({ api, path: 'Layout.tsx' }),\n test: (route: any) => {\n return route.layout !== false;\n },\n },\n ];\n });\n\n api.addRuntimePluginKey(() => ['layout']);\n\n api.addRuntimePlugin(() => {\n return [withTmpPath({ api, path: 'runtime.tsx' })];\n });\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["pkg"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@creekjs/umi-plugins",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "ISC",
@@ -12,9 +12,9 @@
12
12
  ],
13
13
  "devDependencies": {
14
14
  "umi": "^4.6.25",
15
- "@creekjs/web-components": "^1.0.7",
16
- "@creekjs/request": "^1.0.3",
17
- "@creekjs/openapi": "^0.0.4"
15
+ "@creekjs/web-components": "^1.0.13",
16
+ "@creekjs/openapi": "^0.0.4",
17
+ "@creekjs/request": "^1.0.3"
18
18
  },
19
19
  "scripts": {
20
20
  "father:build": "father build",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/creek-layout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkC,MAAM,YAAY,CAAC;8BA8E7C,IAAI;AAAzB,wBAiIE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;8BAEN,IAAI;;;AAAzB,wBAOE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/open-api/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;8BAIb,IAAI;AAAzB,wBA0DE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAIA,iBAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU3D;AAED,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,QAMpC;AAED,iBAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,MAAW,QAazD;AAED,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/utils/spawn.ts"],"names":[],"mappings":"AAaA,iBAAS,YAAY,CACnB,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,MAAM,EAAO,EAC5B,WAAW;;CAAuB,GACjC,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAID,iBAAS,qBAAqB,CAAC,UAAU,EAAE,MAAM,oBAiBhD;AACD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"withTmpPath.d.ts","sourceRoot":"","sources":["../../src/utils/withTmpPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIlC,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,GAAG,EAAE,IAAI,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,UAUA"}