@creekjs/umi-plugins 1.0.0 → 1.0.1

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.
@@ -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": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAqD;AACrD,0BAAgC;AAChC,gBAAyC;AACzC,kBAA8B;AAE9B,mBAA4B;AAE5B,IAAM,eAAe,CAAC,KAAW,YAAsB;AACrD,QAAM,gBAAgB,CAACA,MAA0B,QAAa;AARhE;AAQmE,kBAAAA,KAAI,iBAAJ,mBAAmB,WAAQ,KAAAA,KAAI,oBAAJ,mBAAsB;AAAA;AAClH,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO,QAAQ,KAAK,CAAC,QAAQ,cAAc,KAAK,GAAG,CAAC;AACtD;AAEA,IAAM,aAAa,CAAC,KAAW,SAAiB,YAAuB;AACrE,QAAM,WAAW,WAAW,QAAQ,SAAS,UAAU,CAAC,OAAO;AAC/D,QAAM,YAAY,aAAa,KAAK,QAAQ;AAE5C,MAAI,WAAW;AACb,UAAM,sBAAkB,kBAAK,IAAI,KAAK,gBAAgB,WAAW,cAAc;AAE/E,YAAI,sBAAW,eAAe,GAAG;AAC/B,iBAAO,kBAAK,IAAI,KAAK,gBAAgB,SAAS;AAAA,IAChD;AAEA,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,IAAI,QAAQ,KAAK;AACnB,YAAM,yBAAqB,kBAAK,KAAK,gBAAgB,WAAW,cAAc;AAC9E,cAAI,sBAAW,kBAAkB,GAAG;AAClC,mBAAO,kBAAK,KAAK,gBAAgB,SAAS;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AAGA,aAAO,qBAAQ,QAAQ,QAAQ,GAAG,sBAAsB,CAAC;AAC3D;AAEA,IAAM,wBAAwB,CAAC,QAAc;AAE3C,QAAM,mBAAe,6BAAQ,WAAW,KAAK,mBAAmB,CAAC;AAEjE,QAAM,cAAc,MAAM;AAExB,UAAM,mBAAe,kBAAK,cAAc,wBAAwB;AAChE,UAAM,sBAAkB,wBAAa,cAAc,OAAO;AAG1D,WAAO,CAAC,GAAG,gBAAgB,SAAS,mBAAmB,CAAC,EAAE,OAAO,CAAC,MAA+B,QAAQ;AACvG,WAAK,IAAI,CAAC,CAAC,IAAI;AACf,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AAAA,EACP;AAEA,QAAM,WAAoC,YAAY;AAEtD,QAAM,WAAW,OAAO,KAAK,IAAI,QAAQ,MAAM,EAAE,OAAgC,CAAC,MAAM,OAAO;AAC7F,UAAM,EAAE,KAAK,IAAI,IAAI,QAAQ,OAAO,EAAE;AACtC,QAAI,MAAM;AACR,YAAM,YAAY,2BAAO,WAAW,2BAAO,UAAU,IAAI,CAAC;AAE1D,UAAI,SAAS,SAAS,GAAG;AACvB,aAAK,SAAS,IAAI;AAAA,MACpB;AAEA,UAAI,SAAS,GAAG,mBAAmB,GAAG;AACpC,aAAK,GAAG,mBAAmB,IAAI;AAAA,MACjC;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACL,QAAM,QAAQ,OAAO,KAAK,QAAQ;AAElC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAO,uBAAQ,CAAC,QAAc;AAC5B,QAAM,mBAAe,kBAAK,WAAW,UAAU;AAE/C,QAAM,6BAAyB,6BAAQ,WAAW,KAAK,yBAAyB,CAAC;AACjF,QAAM,gBAAgB,QAAQ,QAAQ,GAAG,wCAAwC;AAEjF,MAAI,SAAS;AAAA,IACX,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,OAAO,EAAE,IAAI,GAAG;AACd,eAAO,IACJ,OAAO;AAAA,UACN,OAAO,IAAI,OAAO;AAAA,UAClB,aAAa,IAAI,OAAO,EAAE,MAAM;AAAA,QAClC,CAAC,EACA,QAAQ;AAAA,MACb;AAAA,MACA,UAAU,IAAI,iBAAiB;AAAA,IACjC;AAAA,IACA,UAAU,IAAI,SAAS;AAAA,EACzB,CAAC;AAED,MAAI,cAAc,CAAC,SAAS;AAC1B,UAAM,UAAU,QAAQ,GAAG,qCAAqC,EAAE;AAClE,SAAK,eAAe;AAAA,MAClB;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT,CAAC;AAGD,MAAI,aAAa,CAAC,SAAS;AACzB,UAAM,OAAO,QAAQ,GAAG,qCAAqC,EAAE;AAC/D,SAAK,MAAM,IAAI,IAAI;AAEnB,UAAM,SAAS,KAAK;AACpB,UAAM,kBAAkB,iCAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,MAAM,KAAK,IAAI,EAAE,SAAS,KAAK;AACpF,UAAM,gBAAgB;AAAA,MACpB;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,WAAW,QAAQ,QAAQ,GAAG,iEAAiE;AAAA,MACjG;AAAA,IACF;AAEA,QAAI,CAAC,iBAAiB;AACpB,WAAK,SAAS,CAAC,GAAG,QAAQ,GAAG,aAAa;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT,CAAC;AAED,MAAI,gBAAgB,MAAM;AApI5B;AAqII,UAAM,wBAAwB,IAAI,OAAO;AACzC,UAAM,YAAY,sBAAsB,GAAG;AAE3C,UAAM,cAAc,MAAM,SAAQ,SAAI,WAAW,gBAAf,mBAA4B,WAAW,KAAI,SAAI,WAAW,gBAAf,mBAA4B,cAAc,CAAC;AAExH,QAAI,aAAa;AAAA,MACf,MAAM;AAAA,MACN,aAAS,kBAAK,cAAc,aAAa;AAAA,MACzC,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA,QAAQ,IAAI,OAAO;AAAA,QACnB,mBAAmB,IAAI,OAAO,oBAAoB,KAAK,UAAU,IAAI,OAAO,SAAS,MAAM,CAAC,IAAI;AAAA,QAChG,YAAY,KAAK,UAAU,IAAI,OAAO,aAAa,MAAM,CAAC;AAAA,MAC5D;AAAA,IACF,CAAC;AAED,QAAI,aAAa;AAAA,MACf,MAAM;AAAA,MACN,aAAS,kBAAK,cAAc,WAAW;AAAA,MACvC,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA,QAAQ,IAAI,OAAO;AAAA,MACrB;AAAA,IACF,CAAC;AAED,QAAI,aAAa;AAAA,MACf,MAAM;AAAA,MACN,aAAS,kBAAK,cAAc,0BAA0B;AAAA,MACtD,SAAS,CAAC;AAAA,IACZ,CAAC;AAED,QAAI,aAAa;AAAA,MACf,MAAM;AAAA,MACN,aAAS,kBAAK,cAAc,YAAY;AAAA,MACxC,SAAS;AAAA,QACP,OAAO,UAAU;AAAA,QACjB,cAAc,UAAU;AAAA,QACxB;AAAA,MACF;AAAA,IACF,CAAC;AAGD,QAAI,aAAa;AAAA,MACf,MAAM;AAAA,MACN,aAAS,kBAAK,cAAc,cAAc;AAAA,MAC1C,SAAS;AAAA,QACP;AAAA,QACA,gBAAgB,YAAY,SAAS;AAAA,QACrC,aAAa,KAAK,UAAU,WAAW;AAAA,MACzC;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,MAAI,WAAW,MAAM;AACnB,WAAO;AAAA,MACL;AAAA,QACE,IAAI;AAAA,QACJ,UAAM,0BAAY,EAAE,KAAK,MAAM,aAAa,CAAC;AAAA,QAC7C,MAAM,CAAC,UAAe;AACpB,iBAAO,MAAM,WAAW;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,oBAAoB,MAAM,CAAC,QAAQ,CAAC;AAExC,MAAI,iBAAiB,MAAM;AACzB,WAAO,KAAC,0BAAY,EAAE,KAAK,MAAM,cAAc,CAAC,CAAC;AAAA,EACnD,CAAC;AACH;",
6
+ "names": ["pkg"]
7
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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.1",
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,11 @@
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
+ }
22
+ }