@creekjs/umi-plugins 1.0.0 → 1.0.2

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.
@@ -0,0 +1 @@
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,wBA+HE"}
@@ -191,3 +191,4 @@ var creek_layout_default = (api) => {
191
191
  return [(0, import_utils.withTmpPath)({ api, path: "runtime.tsx" })];
192
192
  });
193
193
  };
194
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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 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 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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",
6
+ "names": ["pkg"]
7
+ }
@@ -0,0 +1,5 @@
1
+ import { IApi } from 'umi';
2
+ declare const _default: (api: IApi) => {
3
+ plugins: string[];
4
+ };
5
+ export default _default;
@@ -0,0 +1 @@
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"}
package/dist/index.js ADDED
@@ -0,0 +1,43 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/index.ts
30
+ var src_exports = {};
31
+ __export(src_exports, {
32
+ default: () => src_default
33
+ });
34
+ module.exports = __toCommonJS(src_exports);
35
+ var src_default = (api) => {
36
+ return {
37
+ plugins: [
38
+ require.resolve("./creek-layout"),
39
+ require.resolve("./open-api")
40
+ ]
41
+ };
42
+ };
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["import { IApi } from 'umi';\n\nexport default (api: IApi) => {\n return {\n plugins: [\n require.resolve('./creek-layout'),\n require.resolve('./open-api'),\n ],\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAO,cAAQ,CAAC,QAAc;AAC5B,SAAO;AAAA,IACL,SAAS;AAAA,MACP,gBAAgB,gBAAgB;AAAA,MAChC,gBAAgB,YAAY;AAAA,IAC9B;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
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"}
@@ -74,3 +74,4 @@ var open_api_default = (api) => {
74
74
  }
75
75
  });
76
76
  };
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/open-api/index.tsx"],
4
+ "sourcesContent": ["import { IApi } from \"@umijs/max\";\n\nconst openApi = require('@creekjs/openapi');\n\nexport default (api: IApi) => {\n api.describe({\n key: 'openApi',\n config: {\n schema: ({ zod }) => {\n const ApiPrefixParamsSchema = zod.object({\n path: zod.string(),\n method: zod.string(),\n namespace: zod.string(),\n functionName: zod.string(),\n autoExclude: zod.boolean().optional(),\n });\n\n\n const SingleConfigSchema = zod.object({\n requestLibPath: zod.string().optional(),\n requestOptionsType: zod.string().optional(),\n requestImportStatement: zod.string().optional(),\n apiPrefix: zod.union([\n zod.string(),\n zod.function()\n .args(ApiPrefixParamsSchema)\n .returns(zod.string())\n ]).optional(),\n serversPath: zod.string().optional(),\n schemaPath: zod.string().optional(),\n projectName: zod.string().optional(),\n namespace: zod.string().optional(),\n enumStyle: zod.enum(['string-literal', 'enum']).optional(),\n nullable: zod.boolean().optional(),\n templatesFolder: zod.string().optional(),\n dataFields: zod.array(zod.string()).optional(),\n isCamelCase: zod.boolean().optional(),\n });\n\n return zod.union([\n SingleConfigSchema,\n zod.array(SingleConfigSchema)\n ]);\n }\n },\n enableBy: api.EnableBy.config,\n });\n\n api.registerCommand({\n name: 'openApi',\n fn() {\n const openApiOptions = api.userConfig.openApi;\n try {\n openApi.generateService(openApiOptions)\n } catch (error) {\n api.logger.error(error);\n process.exit(1);\n }\n\n }\n })\n\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAM,UAAU,QAAQ,kBAAkB;AAE1C,IAAO,mBAAQ,CAAC,QAAc;AAC1B,MAAI,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,MACJ,QAAQ,CAAC,EAAE,IAAI,MAAM;AACjB,cAAM,wBAAwB,IAAI,OAAO;AAAA,UACrC,MAAM,IAAI,OAAO;AAAA,UACjB,QAAQ,IAAI,OAAO;AAAA,UACnB,WAAW,IAAI,OAAO;AAAA,UACtB,cAAc,IAAI,OAAO;AAAA,UACzB,aAAa,IAAI,QAAQ,EAAE,SAAS;AAAA,QACxC,CAAC;AAGD,cAAM,qBAAqB,IAAI,OAAO;AAAA,UAClC,gBAAgB,IAAI,OAAO,EAAE,SAAS;AAAA,UACtC,oBAAoB,IAAI,OAAO,EAAE,SAAS;AAAA,UAC1C,wBAAwB,IAAI,OAAO,EAAE,SAAS;AAAA,UAC9C,WAAW,IAAI,MAAM;AAAA,YACjB,IAAI,OAAO;AAAA,YACX,IAAI,SAAS,EACR,KAAK,qBAAqB,EAC1B,QAAQ,IAAI,OAAO,CAAC;AAAA,UAC7B,CAAC,EAAE,SAAS;AAAA,UACZ,aAAa,IAAI,OAAO,EAAE,SAAS;AAAA,UACnC,YAAY,IAAI,OAAO,EAAE,SAAS;AAAA,UAClC,aAAa,IAAI,OAAO,EAAE,SAAS;AAAA,UACnC,WAAW,IAAI,OAAO,EAAE,SAAS;AAAA,UACjC,WAAW,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,EAAE,SAAS;AAAA,UACzD,UAAU,IAAI,QAAQ,EAAE,SAAS;AAAA,UACjC,iBAAiB,IAAI,OAAO,EAAE,SAAS;AAAA,UACvC,YAAY,IAAI,MAAM,IAAI,OAAO,CAAC,EAAE,SAAS;AAAA,UAC7C,aAAa,IAAI,QAAQ,EAAE,SAAS;AAAA,QACxC,CAAC;AAED,eAAO,IAAI,MAAM;AAAA,UACb;AAAA,UACA,IAAI,MAAM,kBAAkB;AAAA,QAChC,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,IACA,UAAU,IAAI,SAAS;AAAA,EAC3B,CAAC;AAED,MAAI,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AACD,YAAM,iBAAiB,IAAI,WAAW;AACtC,UAAI;AACA,gBAAQ,gBAAgB,cAAc;AAAA,MAC1C,SAAS,OAAP;AACE,YAAI,OAAO,MAAM,KAAK;AACtB,gBAAQ,KAAK,CAAC;AAAA,MAClB;AAAA,IAEJ;AAAA,EACJ,CAAC;AAEL;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
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"}
@@ -72,3 +72,4 @@ function createFile(filePath, content = "") {
72
72
  createDirectory,
73
73
  createFile
74
74
  });
75
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/file.ts"],
4
+ "sourcesContent": ["import { winPath } from '@umijs/max/plugin-utils';\nimport fs from 'fs';\nimport path from 'path';\n\nfunction checkFileExists(fileName: string): Promise<boolean> {\n return new Promise((resolve) => {\n fs.access(fileName, fs.constants.F_OK, (err) => {\n if (err) {\n resolve(false);\n } else {\n resolve(true);\n }\n });\n });\n}\n\nfunction createDirectory(path: string) {\n // 检查目录是否已经存在\n if (!fs.existsSync(path)) {\n // 目录不存在,创建目录\n fs.mkdirSync(path, { recursive: true });\n }\n}\n\nfunction createFile(filePath: string, content: string = '') {\n const finalFilePath = winPath(filePath);\n const absPath = path.resolve(finalFilePath);\n\n if (fs.existsSync(absPath)) {\n return;\n } else {\n const dir = path.dirname(absPath);\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true });\n }\n fs.writeFileSync(absPath, content);\n }\n}\n\nexport { checkFileExists, createDirectory, createFile };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAwB;AACxB,gBAAe;AACf,kBAAiB;AAEjB,SAAS,gBAAgB,UAAoC;AAC3D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,cAAAA,QAAG,OAAO,UAAU,UAAAA,QAAG,UAAU,MAAM,CAAC,QAAQ;AAC9C,UAAI,KAAK;AACP,gBAAQ,KAAK;AAAA,MACf,OAAO;AACL,gBAAQ,IAAI;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAEA,SAAS,gBAAgBC,OAAc;AAErC,MAAI,CAAC,UAAAD,QAAG,WAAWC,KAAI,GAAG;AAExB,cAAAD,QAAG,UAAUC,OAAM,EAAE,WAAW,KAAK,CAAC;AAAA,EACxC;AACF;AAEA,SAAS,WAAW,UAAkB,UAAkB,IAAI;AAC1D,QAAM,oBAAgB,6BAAQ,QAAQ;AACtC,QAAM,UAAU,YAAAA,QAAK,QAAQ,aAAa;AAE1C,MAAI,UAAAD,QAAG,WAAW,OAAO,GAAG;AAC1B;AAAA,EACF,OAAO;AACL,UAAM,MAAM,YAAAC,QAAK,QAAQ,OAAO;AAChC,QAAI,CAAC,UAAAD,QAAG,WAAW,GAAG,GAAG;AACvB,gBAAAA,QAAG,UAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,IACvC;AACA,cAAAA,QAAG,cAAc,SAAS,OAAO;AAAA,EACnC;AACF;",
6
+ "names": ["fs", "path"]
7
+ }
@@ -0,0 +1 @@
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"}
@@ -25,3 +25,4 @@ __reExport(utils_exports, require("./withTmpPath"), module.exports);
25
25
  ...require("./spawn"),
26
26
  ...require("./withTmpPath")
27
27
  });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/index.ts"],
4
+ "sourcesContent": ["export * from './file';\nexport * from './spawn';\nexport * from './withTmpPath';\n\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,mBAAd;AACA,0BAAc,oBADd;AAEA,0BAAc,0BAFd;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
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"}
@@ -69,3 +69,4 @@ function isGlobalInstallModule(moduleName) {
69
69
  isGlobalInstallModule,
70
70
  spawnCommand
71
71
  });
72
+ //# sourceMappingURL=spawn.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/spawn.ts"],
4
+ "sourcesContent": ["const spawn = require('cross-spawn');\n\nfunction isValidCommand(command: string) {\n // 用正则表达式验证命令是否只包含字母和数字\n return /^[a-zA-Z0-9@/-]+$/.test(command);\n}\n\nfunction isValidCommandParams(commandParams: string[] = []) {\n // 用正则表达式验证命令是否只包含字母和数字\n return commandParams.every((command) => /^[a-zA-Z0-9@/-]+$/.test(command));\n}\n\n// 执行spawn命令\nfunction spawnCommand(\n command: string,\n commandParams: string[] = [],\n spawnConfig = { stdio: 'inherit' },\n): Promise<boolean> {\n return new Promise((resolve, reject) => {\n if (isValidCommand(command) && isValidCommandParams(commandParams)) {\n const child = spawn(command, commandParams, spawnConfig);\n child.on('exit', (code: string, signal: boolean) => {\n if (code) {\n reject(new Error(`${command}失败,退出码:${code}`));\n } else if (signal) {\n reject(new Error(`${command}被信号中断,信号:${signal}`));\n } else {\n resolve(true);\n }\n });\n } else {\n reject(`${command}不是一个有效的命令`);\n }\n });\n}\n\n// 判断是否全局安装了某个模块\n\nfunction isGlobalInstallModule(moduleName: string) {\n const child = spawn('pnpm', ['list', '-g']);\n\n return new Promise((resolve, reject) => {\n child.stdout.on('data', (data: any) => {\n const output = data.toString();\n if (output.includes(moduleName)) {\n resolve(true);\n } else {\n resolve(false);\n }\n });\n\n child.stderr.on('data', (data: any) => {\n reject(`命令执行出错:${data}`);\n });\n });\n}\nexport { isGlobalInstallModule, spawnCommand };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,QAAQ,QAAQ,aAAa;AAEnC,SAAS,eAAe,SAAiB;AAEvC,SAAO,oBAAoB,KAAK,OAAO;AACzC;AAEA,SAAS,qBAAqB,gBAA0B,CAAC,GAAG;AAE1D,SAAO,cAAc,MAAM,CAAC,YAAY,oBAAoB,KAAK,OAAO,CAAC;AAC3E;AAGA,SAAS,aACP,SACA,gBAA0B,CAAC,GAC3B,cAAc,EAAE,OAAO,UAAU,GACf;AAClB,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,eAAe,OAAO,KAAK,qBAAqB,aAAa,GAAG;AAClE,YAAM,QAAQ,MAAM,SAAS,eAAe,WAAW;AACvD,YAAM,GAAG,QAAQ,CAAC,MAAc,WAAoB;AAClD,YAAI,MAAM;AACR,iBAAO,IAAI,MAAM,GAAG,iBAAiB,MAAM,CAAC;AAAA,QAC9C,WAAW,QAAQ;AACjB,iBAAO,IAAI,MAAM,GAAG,mBAAmB,QAAQ,CAAC;AAAA,QAClD,OAAO;AACL,kBAAQ,IAAI;AAAA,QACd;AAAA,MACF,CAAC;AAAA,IACH,OAAO;AACL,aAAO,GAAG,kBAAkB;AAAA,IAC9B;AAAA,EACF,CAAC;AACH;AAIA,SAAS,sBAAsB,YAAoB;AACjD,QAAM,QAAQ,MAAM,QAAQ,CAAC,QAAQ,IAAI,CAAC;AAE1C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,OAAO,GAAG,QAAQ,CAAC,SAAc;AACrC,YAAM,SAAS,KAAK,SAAS;AAC7B,UAAI,OAAO,SAAS,UAAU,GAAG;AAC/B,gBAAQ,IAAI;AAAA,MACd,OAAO;AACL,gBAAQ,KAAK;AAAA,MACf;AAAA,IACF,CAAC;AAED,UAAM,OAAO,GAAG,QAAQ,CAAC,SAAc;AACrC,aAAO,UAAU,MAAM;AAAA,IACzB,CAAC;AAAA,EACH,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
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"}
@@ -37,3 +37,4 @@ function withTmpPath(opts) {
37
37
  0 && (module.exports = {
38
38
  withTmpPath
39
39
  });
40
+ //# sourceMappingURL=withTmpPath.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/withTmpPath.ts"],
4
+ "sourcesContent": ["import { IApi } from '@umijs/max';\nimport { winPath } from '@umijs/max/plugin-utils';\nimport { join } from 'path';\n\nexport function withTmpPath(opts: {\n api: IApi;\n path: string;\n noPluginDir?: boolean;\n}) {\n return winPath(\n join(\n opts.api.paths.absTmpPath,\n opts.api.plugin.key && !opts.noPluginDir\n ? `plugin-${opts.api.plugin.key}`\n : '',\n opts.path,\n ),\n );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAwB;AACxB,kBAAqB;AAEd,SAAS,YAAY,MAIzB;AACD,aAAO;AAAA,QACL;AAAA,MACE,KAAK,IAAI,MAAM;AAAA,MACf,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,cACzB,UAAU,KAAK,IAAI,OAAO,QAC1B;AAAA,MACJ,KAAK;AAAA,IACP;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "@creekjs/umi-plugins",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "",
5
+ "keywords": [],
6
+ "license": "ISC",
7
+ "author": "",
5
8
  "main": "dist/index.js",
6
9
  "types": "dist/index.d.ts",
7
10
  "files": [
@@ -9,9 +12,12 @@
9
12
  ],
10
13
  "scripts": {
11
14
  "father:build": "father build",
12
- "father:dev": "father dev"
15
+ "father:dev": "father dev --no-clean"
13
16
  },
14
- "keywords": [],
15
- "author": "",
16
- "license": "ISC"
17
- }
17
+ "devDependencies": {
18
+ "@creekjs/openapi": "workspace:^",
19
+ "@creekjs/request": "workspace:^",
20
+ "@creekjs/web-components": "workspace:^",
21
+ "umi": "^4.6.25"
22
+ }
23
+ }