@ruan-cat/utils 2.0.1 → 3.0.0

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.
@@ -1,58 +1,3 @@
1
- /**
2
- * 解析目录
3
- * @description
4
- * 用于解析目录路径 默认从项目根目录开始
5
- *
6
- * 这里的项目根目录默认为 process.cwd()
7
- *
8
- * 作为工具函数对外导出 便于用户自己整理解析的文件路径
9
- */
10
- declare function pathResolve(dir: string): string;
11
- /**
12
- * 创建名称生成函数
13
- * @description
14
- * 用于诸如特定的名称前缀 便于实现模块注册
15
- */
16
- declare function createDirOptionNameFunction(
17
- /**
18
- * 组件名称前缀
19
- * @description
20
- * 一般写成大写字母
21
- * @example
22
- * Components
23
- * Page
24
- */
25
- prefix?: string): (fileName: string) => string;
26
- /**
27
- * 默认的自动导入模板文件名
28
- * @description
29
- * 你可以在项目内准备一个模板文件 这个模板文件建议取名为 components.template.d.ts
30
- * 读取模板时 会默认读取该名称的文件
31
- * @example components.template.d.ts
32
- */
33
- declare const defaultAutoImportTemplateFilename: "components.template.ts";
34
- /**
35
- * 默认的自动导入模板文件路径
36
- * @description
37
- * 我们默认你的模板文件在项目根目录下的 template 文件夹内
38
- */
39
- declare const defaultAutoImportTemplatePath: "./template/components.template.ts";
40
- /** 默认的自动导入模板 */
41
- declare const defaultAutoImportTemplate: string;
42
- /**
43
- * 创建文件生成模板字符串
44
- * @description
45
- * 会生成一个字符串 用于作为生成类型声明文件的模板
46
- */
47
- declare function createAutoImportTemplate(
48
- /**
49
- * 模板路径
50
- * @description
51
- * 你可以传入一个模板路径 默认会读取项目根目录下的 template 文件夹内的 components.template.d.ts 文件
52
- * @default ./template/components.template.d.ts
53
- */
54
- path?: string): string;
55
-
56
1
  /** 包的信息 */
57
2
  interface PackageInfo {
58
3
  /** 包名 */
@@ -85,4 +30,4 @@ declare function clean(
85
30
  */
86
31
  targets?: string[]): Promise<void>;
87
32
 
88
- export { type PackageInfo, clean, createAutoImportTemplate, createDirOptionNameFunction, defaultAutoImportTemplate, defaultAutoImportTemplateFilename, defaultAutoImportTemplatePath, defaultCleanTargets, getRuanCatPkgInfo, pathResolve };
33
+ export { type PackageInfo, clean, defaultCleanTargets, getRuanCatPkgInfo };
@@ -1,259 +1,7 @@
1
- // src/node-esm/vite-plugin-autogeneration-import-file/index.ts
2
- import { dirname, join, resolve } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import * as fs from "node:fs";
5
-
6
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js
7
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
8
- var freeGlobal_default = freeGlobal;
9
-
10
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js
11
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
12
- var root = freeGlobal_default || freeSelf || Function("return this")();
13
- var root_default = root;
14
-
15
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js
16
- var Symbol = root_default.Symbol;
17
- var Symbol_default = Symbol;
18
-
19
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js
20
- var objectProto = Object.prototype;
21
- var hasOwnProperty = objectProto.hasOwnProperty;
22
- var nativeObjectToString = objectProto.toString;
23
- var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
24
- function getRawTag(value) {
25
- var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
26
- try {
27
- value[symToStringTag] = void 0;
28
- var unmasked = true;
29
- } catch (e) {
30
- }
31
- var result = nativeObjectToString.call(value);
32
- if (unmasked) {
33
- if (isOwn) {
34
- value[symToStringTag] = tag;
35
- } else {
36
- delete value[symToStringTag];
37
- }
38
- }
39
- return result;
40
- }
41
- var getRawTag_default = getRawTag;
42
-
43
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js
44
- var objectProto2 = Object.prototype;
45
- var nativeObjectToString2 = objectProto2.toString;
46
- function objectToString(value) {
47
- return nativeObjectToString2.call(value);
48
- }
49
- var objectToString_default = objectToString;
50
-
51
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js
52
- var nullTag = "[object Null]";
53
- var undefinedTag = "[object Undefined]";
54
- var symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0;
55
- function baseGetTag(value) {
56
- if (value == null) {
57
- return value === void 0 ? undefinedTag : nullTag;
58
- }
59
- return symToStringTag2 && symToStringTag2 in Object(value) ? getRawTag_default(value) : objectToString_default(value);
60
- }
61
- var baseGetTag_default = baseGetTag;
62
-
63
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js
64
- function isObjectLike(value) {
65
- return value != null && typeof value == "object";
66
- }
67
- var isObjectLike_default = isObjectLike;
68
-
69
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js
70
- var symbolTag = "[object Symbol]";
71
- function isSymbol(value) {
72
- return typeof value == "symbol" || isObjectLike_default(value) && baseGetTag_default(value) == symbolTag;
73
- }
74
- var isSymbol_default = isSymbol;
75
-
76
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js
77
- function arrayMap(array, iteratee) {
78
- var index = -1, length = array == null ? 0 : array.length, result = Array(length);
79
- while (++index < length) {
80
- result[index] = iteratee(array[index], index, array);
81
- }
82
- return result;
83
- }
84
- var arrayMap_default = arrayMap;
85
-
86
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js
87
- var isArray = Array.isArray;
88
- var isArray_default = isArray;
89
-
90
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js
91
- var INFINITY = 1 / 0;
92
- var symbolProto = Symbol_default ? Symbol_default.prototype : void 0;
93
- var symbolToString = symbolProto ? symbolProto.toString : void 0;
94
- function baseToString(value) {
95
- if (typeof value == "string") {
96
- return value;
97
- }
98
- if (isArray_default(value)) {
99
- return arrayMap_default(value, baseToString) + "";
100
- }
101
- if (isSymbol_default(value)) {
102
- return symbolToString ? symbolToString.call(value) : "";
103
- }
104
- var result = value + "";
105
- return result == "0" && 1 / value == -INFINITY ? "-0" : result;
106
- }
107
- var baseToString_default = baseToString;
108
-
109
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js
110
- function toString(value) {
111
- return value == null ? "" : baseToString_default(value);
112
- }
113
- var toString_default = toString;
114
-
115
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js
116
- function baseSlice(array, start, end) {
117
- var index = -1, length = array.length;
118
- if (start < 0) {
119
- start = -start > length ? 0 : length + start;
120
- }
121
- end = end > length ? length : end;
122
- if (end < 0) {
123
- end += length;
124
- }
125
- length = start > end ? 0 : end - start >>> 0;
126
- start >>>= 0;
127
- var result = Array(length);
128
- while (++index < length) {
129
- result[index] = array[index + start];
130
- }
131
- return result;
132
- }
133
- var baseSlice_default = baseSlice;
134
-
135
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castSlice.js
136
- function castSlice(array, start, end) {
137
- var length = array.length;
138
- end = end === void 0 ? length : end;
139
- return !start && end >= length ? array : baseSlice_default(array, start, end);
140
- }
141
- var castSlice_default = castSlice;
142
-
143
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicode.js
144
- var rsAstralRange = "\\ud800-\\udfff";
145
- var rsComboMarksRange = "\\u0300-\\u036f";
146
- var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
147
- var rsComboSymbolsRange = "\\u20d0-\\u20ff";
148
- var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
149
- var rsVarRange = "\\ufe0e\\ufe0f";
150
- var rsZWJ = "\\u200d";
151
- var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
152
- function hasUnicode(string) {
153
- return reHasUnicode.test(string);
154
- }
155
- var hasUnicode_default = hasUnicode;
156
-
157
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiToArray.js
158
- function asciiToArray(string) {
159
- return string.split("");
160
- }
161
- var asciiToArray_default = asciiToArray;
162
-
163
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeToArray.js
164
- var rsAstralRange2 = "\\ud800-\\udfff";
165
- var rsComboMarksRange2 = "\\u0300-\\u036f";
166
- var reComboHalfMarksRange2 = "\\ufe20-\\ufe2f";
167
- var rsComboSymbolsRange2 = "\\u20d0-\\u20ff";
168
- var rsComboRange2 = rsComboMarksRange2 + reComboHalfMarksRange2 + rsComboSymbolsRange2;
169
- var rsVarRange2 = "\\ufe0e\\ufe0f";
170
- var rsAstral = "[" + rsAstralRange2 + "]";
171
- var rsCombo = "[" + rsComboRange2 + "]";
172
- var rsFitz = "\\ud83c[\\udffb-\\udfff]";
173
- var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")";
174
- var rsNonAstral = "[^" + rsAstralRange2 + "]";
175
- var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}";
176
- var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]";
177
- var rsZWJ2 = "\\u200d";
178
- var reOptMod = rsModifier + "?";
179
- var rsOptVar = "[" + rsVarRange2 + "]?";
180
- var rsOptJoin = "(?:" + rsZWJ2 + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*";
181
- var rsSeq = rsOptVar + reOptMod + rsOptJoin;
182
- var rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
183
- var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
184
- function unicodeToArray(string) {
185
- return string.match(reUnicode) || [];
186
- }
187
- var unicodeToArray_default = unicodeToArray;
188
-
189
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToArray.js
190
- function stringToArray(string) {
191
- return hasUnicode_default(string) ? unicodeToArray_default(string) : asciiToArray_default(string);
192
- }
193
- var stringToArray_default = stringToArray;
194
-
195
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCaseFirst.js
196
- function createCaseFirst(methodName) {
197
- return function(string) {
198
- string = toString_default(string);
199
- var strSymbols = hasUnicode_default(string) ? stringToArray_default(string) : void 0;
200
- var chr = strSymbols ? strSymbols[0] : string.charAt(0);
201
- var trailing = strSymbols ? castSlice_default(strSymbols, 1).join("") : string.slice(1);
202
- return chr[methodName]() + trailing;
203
- };
204
- }
205
- var createCaseFirst_default = createCaseFirst;
206
-
207
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/upperFirst.js
208
- var upperFirst = createCaseFirst_default("toUpperCase");
209
- var upperFirst_default = upperFirst;
210
-
211
- // ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.js
212
- function isUndefined(value) {
213
- return value === void 0;
214
- }
215
- var isUndefined_default = isUndefined;
216
-
217
- // src/node-esm/vite-plugin-autogeneration-import-file/index.ts
218
- import { createPlugin, getName } from "vite-plugin-autogeneration-import-file";
219
- import consola from "consola";
220
- var __filename2 = fileURLToPath(import.meta.url);
221
- var __dirname2 = dirname(__filename2);
222
- var { autoImport } = createPlugin();
223
- function pathResolve(dir) {
224
- const resPath = resolve(process.cwd(), dir);
225
- console.info(` \u89E3\u6790\u7684\u6587\u4EF6\u8DEF\u5F84: ${resPath}`);
226
- return resPath;
227
- }
228
- function createDirOptionNameFunction(prefix = "") {
229
- const dirOptionName = function name(fileName) {
230
- const resFileName = getName(fileName);
231
- const resFileNameWithPrefix = `${upperFirst_default(prefix)}${upperFirst_default(resFileName)}`;
232
- return resFileNameWithPrefix;
233
- };
234
- return dirOptionName;
235
- }
236
- var defaultAutoImportTemplateFilename = "components.template.ts";
237
- var defaultAutoImportTemplatePath = `./template/${defaultAutoImportTemplateFilename}`;
238
- function getDefaultAutoImportTemplate() {
239
- const templatePath = join(__dirname2, defaultAutoImportTemplatePath);
240
- return fs.readFileSync(templatePath, "utf-8");
241
- }
242
- var defaultAutoImportTemplate = getDefaultAutoImportTemplate();
243
- function createAutoImportTemplate(path) {
244
- if (isUndefined_default(path)) {
245
- return defaultAutoImportTemplate;
246
- } else {
247
- const filepath = pathResolve(path);
248
- consola.log(` \u5F53\u524D\u8BFB\u53D6\u7684\u6587\u4EF6\u8DEF\u5F84\u4E3A: ${filepath}`);
249
- return fs.readFileSync(pathResolve(path), "utf-8");
250
- }
251
- }
252
-
253
1
  // src/node-esm/ruan-cat-pkg-info.ts
254
2
  import { spawnSync } from "node:child_process";
255
3
  async function getRuanCatPkgInfo() {
256
- return new Promise((resolve2, reject) => {
4
+ return new Promise((resolve, reject) => {
257
5
  const result = spawnSync("pnpm", ["s", "@ruan-cat/*", "--registry", "https://registry.npmmirror.com/", "--json"], {
258
6
  encoding: "utf-8"
259
7
  });
@@ -275,7 +23,7 @@ async function getRuanCatPkgInfo() {
275
23
  url: `https://npm.im/${pkg.name}`
276
24
  })
277
25
  );
278
- resolve2(res);
26
+ resolve(res);
279
27
  });
280
28
  }
281
29
 
@@ -285,20 +33,17 @@ import { spawnSync as spawnSync2 } from "node:child_process";
285
33
  // src/simple-promise-tools.ts
286
34
  function generateSimpleAsyncTask(func) {
287
35
  return function(...args) {
288
- return new Promise((resolve2, reject) => {
289
- resolve2(func(...args));
36
+ return new Promise((resolve, reject) => {
37
+ resolve(func(...args));
290
38
  });
291
39
  };
292
40
  }
293
41
 
294
- // src/vueuse/useAxios/index.ts
295
- import { useAxios } from "@vueuse/integrations/useAxios";
296
-
297
42
  // src/node-cjs/tools.ts
298
- import consola2 from "consola";
43
+ import consola from "consola";
299
44
  var defPrintCurrentCommand = function(params) {
300
45
  const { command, parameters } = params;
301
- consola2.info(` \u5F53\u524D\u8FD0\u884C\u7684\u547D\u4EE4\u4E3A\uFF1A ${command} ${parameters.join(" ")}
46
+ consola.info(` \u5F53\u524D\u8FD0\u884C\u7684\u547D\u4EE4\u4E3A\uFF1A ${command} ${parameters.join(" ")}
302
47
  `);
303
48
  };
304
49
  function generateSpawnSync(spawnSyncSimpleParams) {
@@ -363,26 +108,7 @@ async function clean(targets) {
363
108
  }
364
109
  export {
365
110
  clean,
366
- createAutoImportTemplate,
367
- createDirOptionNameFunction,
368
- defaultAutoImportTemplate,
369
- defaultAutoImportTemplateFilename,
370
- defaultAutoImportTemplatePath,
371
111
  defaultCleanTargets,
372
- getRuanCatPkgInfo,
373
- pathResolve
112
+ getRuanCatPkgInfo
374
113
  };
375
- /*! Bundled license information:
376
-
377
- lodash-es/lodash.js:
378
- (**
379
- * @license
380
- * Lodash (Custom Build) <https://lodash.com/>
381
- * Build: `lodash modularize exports="es" -o ./`
382
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
383
- * Released under MIT license <https://lodash.com/license>
384
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
385
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
386
- *)
387
- */
388
114
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/node-esm/vite-plugin-autogeneration-import-file/index.ts","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSlice.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castSlice.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasUnicode.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_asciiToArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_unicodeToArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createCaseFirst.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/upperFirst.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.js","../../src/node-esm/ruan-cat-pkg-info.ts","../../src/node-cjs/tools.ts","../../src/simple-promise-tools.ts","../../src/vueuse/useAxios/index.ts","../../src/node-esm/scripts/clean.ts"],"sourcesContent":["import { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath, URL } from \"node:url\";\nimport * as fs from \"node:fs\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nimport { upperFirst, isUndefined } from \"lodash-es\";\nimport { createPlugin, getName } from \"vite-plugin-autogeneration-import-file\";\nimport consola from \"consola\";\n\nconst { autoImport } = createPlugin();\n\n/**\n * 解析目录\n * @description\n * 用于解析目录路径 默认从项目根目录开始\n *\n * 这里的项目根目录默认为 process.cwd()\n *\n * 作为工具函数对外导出 便于用户自己整理解析的文件路径\n */\nexport function pathResolve(dir: string) {\n\tconst resPath = resolve(process.cwd(), dir);\n\tconsole.info(` 解析的文件路径: ${resPath}`);\n\treturn resPath;\n}\n\ntype DirOptions = Parameters<typeof autoImport>[\"0\"];\ntype DirOption = DirOptions[number];\ntype _DirOptionName = DirOption[\"name\"];\n\ntype _DirOptionNameNotString = Exclude<_DirOptionName, string>;\ntype DirOptionName = NonNullable<_DirOptionNameNotString>;\n\n/**\n * 创建名称生成函数\n * @description\n * 用于诸如特定的名称前缀 便于实现模块注册\n */\nexport function createDirOptionNameFunction(\n\t/**\n\t * 组件名称前缀\n\t * @description\n\t * 一般写成大写字母\n\t * @example\n\t * Components\n\t * Page\n\t */\n\tprefix: string = \"\",\n) {\n\t/**\n\t * 组件名命名规则支持字符串模板和函数\n\t * @description\n\t * 设置首字母为大写\n\t */\n\tconst dirOptionName: DirOptionName = function name(fileName) {\n\t\tconst resFileName = getName(fileName);\n\t\tconst resFileNameWithPrefix = <const>`${upperFirst(prefix)}${upperFirst(resFileName)}`;\n\t\treturn resFileNameWithPrefix;\n\t};\n\n\treturn dirOptionName;\n}\n\n/**\n * 默认的自动导入模板文件名\n * @description\n * 你可以在项目内准备一个模板文件 这个模板文件建议取名为 components.template.d.ts\n * 读取模板时 会默认读取该名称的文件\n * @example components.template.d.ts\n */\nexport const defaultAutoImportTemplateFilename = <const>\"components.template.ts\";\n\n/**\n * 默认的自动导入模板文件路径\n * @description\n * 我们默认你的模板文件在项目根目录下的 template 文件夹内\n */\nexport const defaultAutoImportTemplatePath = <const>`./template/${defaultAutoImportTemplateFilename}`;\n\n/**\n * 直接获得默认的自动导入模板\n * @description\n * 直接读取本项目内的 components.template.d.ts 文件\n * 反正都读取默认模板了 直接获取字符串即可\n */\nfunction getDefaultAutoImportTemplate() {\n\t/** 相对路径文件 就在旁边的文件 */\n\tconst templatePath = join(__dirname, defaultAutoImportTemplatePath);\n\treturn fs.readFileSync(templatePath, \"utf-8\");\n}\n\n/** 默认的自动导入模板 */\nexport const defaultAutoImportTemplate = getDefaultAutoImportTemplate();\n\n/**\n * 创建文件生成模板字符串\n * @description\n * 会生成一个字符串 用于作为生成类型声明文件的模板\n */\nexport function createAutoImportTemplate(\n\t/**\n\t * 模板路径\n\t * @description\n\t * 你可以传入一个模板路径 默认会读取项目根目录下的 template 文件夹内的 components.template.d.ts 文件\n\t * @default ./template/components.template.d.ts\n\t */\n\tpath?: string,\n) {\n\t// 如果用户没传递路径 就直接返回默认的模板\n\tif (isUndefined(path)) {\n\t\treturn defaultAutoImportTemplate;\n\t} else {\n\t\tconst filepath = pathResolve(path);\n\t\tconsola.log(` 当前读取的文件路径为: ${filepath}`);\n\t\t// 否则读取用户传递的路径\n\t\treturn fs.readFileSync(pathResolve(path), \"utf-8\");\n\t}\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import { spawnSync } from \"node:child_process\";\n\n/** 包的信息 */\nexport interface PackageInfo {\n\t/** 包名 */\n\tname: string;\n\t/** 包的描述 */\n\tdescription: string;\n\t/** 带有包名的官方镜像源地址 */\n\turl: `https://npm.im/${string}`;\n}\n\n/**\n * 获得阮喵喵全部的包信息\n * @description\n * 这是一个node环境下的函数,用于获取阮喵喵的所有包的信息。\n *\n * 使用的是node的child_process模块,调用pnpm命令获取包信息。\n *\n * - 默认仅考虑pnpm包\n * - 在node环境下运行\n */\nexport async function getRuanCatPkgInfo() {\n\treturn new Promise<PackageInfo[]>((resolve, reject) => {\n\t\t/**\n\t\t * pnpm s @ruan-cat/* --registry https://registry.npmmirror.com/ --json\n\t\t * 仅查询淘宝源的数据\n\t\t */\n\t\tconst result = spawnSync(\"pnpm\", [\"s\", \"@ruan-cat/*\", \"--registry\", \"https://registry.npmmirror.com/\", \"--json\"], {\n\t\t\tencoding: \"utf-8\",\n\t\t});\n\n\t\tif (result.error) {\n\t\t\tconsole.error(`Error executing command: ${result.error.message}`);\n\t\t\treject(result.error);\n\t\t\treturn;\n\t\t}\n\t\tif (result.stderr) {\n\t\t\tconsole.error(`Error in output: ${result.stderr}`);\n\t\t\treject(new Error(result.stderr));\n\t\t\treturn;\n\t\t}\n\n\t\tconst packages = <unknown[]>JSON.parse(result.stdout);\n\t\tconst res = packages.map(\n\t\t\t(pkg: any) =>\n\t\t\t\t({\n\t\t\t\t\tname: pkg.name,\n\t\t\t\t\tdescription: pkg.description,\n\t\t\t\t\turl: `https://npm.im/${pkg.name}`,\n\t\t\t\t}) satisfies PackageInfo,\n\t\t);\n\t\t// const res = packages;\n\t\tresolve(res);\n\t});\n}\n","/**\n * 一些node环境下的工具函数\n */\n\nimport { normalize } from \"node:path\";\nimport { spawnSync, type SpawnOptions } from \"node:child_process\";\n\nimport { generateSimpleAsyncTask } from \"@ruan-cat/utils\";\nimport consola from \"consola\";\n// import { normalizePath } from \"vite\";\n\n/**\n * 路径转换工具\n */\nexport function pathChange(path: string) {\n\treturn path.replace(/\\\\/g, \"/\");\n\t// FIXME: 无法有效地实现解析路径 测试用例不通过\n\t// return normalize(path);\n\t// FIXME: tsup打包时,无法处理好vite的依赖 会导致打包失败 不知道怎么单独使用并打包该函数\n\t// return normalizePath(path);\n}\n\nexport interface SpawnSyncSimpleParams {\n\tcommand: string;\n\tparameters: string[];\n\t/**\n\t * 是否流式输出内容\n\t * @description 默认输出的命令数据全部以流式的方式输出\n\t * @default true\n\t */\n\tisFlow?: boolean;\n\n\t/**\n\t * 是否显示命令?\n\t * @description\n\t * 是否打印目前正在执行的命令?\n\t * @default true\n\t */\n\tisShowCommand?: boolean;\n\tspawnOptions?: SpawnOptions;\n\n\t/** 打印当前运行的命令 */\n\tprintCurrentCommand?: (params: Pick<SpawnSyncSimpleParams, \"command\" | \"parameters\">) => void;\n}\n\n/**\n * 默认的打印当前运行命令 函数\n */\nexport const defPrintCurrentCommand: SpawnSyncSimpleParams[\"printCurrentCommand\"] = function (params) {\n\tconst { command, parameters } = params;\n\tconsola.info(` 当前运行的命令为: ${command} ${parameters.join(\" \")} \\n`);\n};\n\n/**\n * 生成简单的执行命令函数\n * @description\n * 对 spawnSync 做简单的包装\n *\n * 之前封装的是 execa 函数\n * @version 2\n */\nexport function generateSpawnSync(spawnSyncSimpleParams: SpawnSyncSimpleParams) {\n\tconst {\n\t\tcommand,\n\t\tparameters,\n\t\tisFlow = true,\n\t\tisShowCommand = true,\n\t\tspawnOptions = {},\n\t\tprintCurrentCommand = defPrintCurrentCommand,\n\t} = spawnSyncSimpleParams;\n\n\tif (isShowCommand) {\n\t\tprintCurrentCommand?.({ command, parameters });\n\t}\n\n\treturn generateSimpleAsyncTask(() => {\n\t\tconst result = spawnSync(command, parameters, {\n\t\t\t/**\n\t\t\t * 是否流式输出?\n\t\t\t * 是流式输出就是继承父进程的流式输出\n\t\t\t * 否则就使用默认值\n\t\t\t * @see https://nodejs.org/api/child_process.html#optionsstdio\n\t\t\t */\n\t\t\tstdio: isFlow ? \"inherit\" : \"pipe\",\n\t\t\tshell: true,\n\t\t\t...spawnOptions,\n\t\t});\n\n\t\t// 如果不是流式输出 就直接返回返回值即可\n\t\tif (!isFlow) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (result.error) {\n\t\t\tthrow result.error;\n\t\t}\n\n\t\treturn result;\n\t});\n}\n","// import { uniqueId } from \"lodash-es\";\n// const getCounter = () => uniqueId();\n\n/** 创建简单的异步任务 */\nexport function generateSimpleAsyncTask<T extends (...args: any) => any>(func: T) {\n\t// const taskId = getCounter();\n\n\treturn function (...args: any) {\n\t\t// consola.info(` 这是第 ${taskId} 个异步任务 `);\n\t\t// consola.start(\" 这里是新创建的异步函数 检查参数: \", ...args);\n\n\t\treturn new Promise<ReturnType<T>>((resolve, reject) => {\n\t\t\t// consola.start(\" 内部promise 检查参数: \", ...args);\n\t\t\tresolve(func(...args));\n\t\t});\n\t};\n}\n\nexport type SimpleAsyncTask = ReturnType<typeof generateSimpleAsyncTask>;\n\nexport const initFlag = <const>\"initFlag\";\n\n/**\n * 以队列串行的形式 串行运行异步函数\n * @see https://github.com/ascoders/weekly/blob/master/前沿技术/77.精读《用%20Reduce%20实现%20Promise%20串行执行》.md\n * @version 1\n */\nasync function runPromiseByQueueV1<T>(promises: ((...args: any) => Promise<T>)[]) {\n\tpromises.reduce(\n\t\tasync function (previousPromise, nextPromise, currentIndex) {\n\t\t\tconst response = await previousPromise;\n\t\t\t// consola.log(` reduce串行函数 currentIndex= ${currentIndex} res =`, response);\n\t\t\treturn await nextPromise(response);\n\t\t},\n\t\tPromise.resolve(initFlag) as Promise<any>,\n\t);\n}\n\n/**\n * 以队列串行的形式 串行运行异步函数\n * @version 2\n */\nexport async function runPromiseByQueue<T>(promises: ((...args: any) => Promise<T>)[]) {\n\tlet response: typeof initFlag | Awaited<T> = initFlag;\n\tfor await (const promise of promises) {\n\t\tresponse = await promise(response);\n\t}\n}\n\n/**\n * 以并行的形式 并发运行异步函数\n */\nexport async function runPromiseByConcurrency<T>(promises: ((...args: any) => Promise<T>)[]) {\n\tawait Promise.all(promises.map((promise) => promise()));\n}\n","import type { RequiredPick } from \"type-plus\";\nimport type { AxiosRequestConfig, AxiosResponse, AxiosInstance } from \"axios\";\nimport type { UseAxiosOptions, UseAxiosReturn } from \"@vueuse/integrations/useAxios\";\nimport { useAxios } from \"@vueuse/integrations/useAxios\";\n\n/** 在封装函数时 需要使用该类型 */\nexport { UseAxiosOptions };\n\n/** 拓展的类型参数 用于约束必填的字段 */\nexport type KeyAxiosRequestConfig<D = any> = keyof AxiosRequestConfig<D>;\n\n/** 填写key值的帮助类型 */\nexport type KeyHelper<K extends KeyAxiosRequestConfig> = K;\n\nexport type RemoveUrl<T extends KeyAxiosRequestConfig> = Exclude<T, \"url\">;\n\n/**\n * 创建 AxiosRequestConfig 的各种变种类型\n * @description\n * 目前需要给 AxiosRequestConfig 添加必填属性\n *\n * 故需要本工具创建各种变种类型\n *\n * @example CreateAxiosRequestConfig<\"url\", D>\n */\nexport type CreateAxiosRequestConfig<K extends keyof Target, D = any, Target = AxiosRequestConfig<D>> = RequiredPick<\n\tTarget,\n\tK\n>;\n\n/** 拓展K泛型后的类型 */\nexport interface StrictUseAxiosReturn<\n\tT,\n\t/**\n\t * 拓展的类型参数 用于约束必填的字段\n\t * @description\n\t * 这里不需要提供默认的取值\n\t */\n\tK extends KeyAxiosRequestConfig<D>,\n\tR,\n\tD,\n> extends UseAxiosReturn<T, R, D> {\n\t/**\n\t * Manually call the axios request\n\t */\n\texecute: (\n\t\turl?: string | CreateAxiosRequestConfig<K, D>,\n\t\tconfig?: CreateAxiosRequestConfig<K, D>,\n\t) => Promise<StrictUseAxiosReturn<T, K, R, D>>;\n}\n\ndeclare module \"@vueuse/integrations/useAxios\" {\n\t/**\n\t * 拓展类型参数后的 useAxios 函数\n\t * @description\n\t * 在我们的封装中 使用本类型\n\t */\n\tfunction useAxios<\n\t\tT = any,\n\t\t/** 拓展的类型参数 用于约束必填的字段 */\n\t\tK extends KeyAxiosRequestConfig<D> = \"url\",\n\t\tR = AxiosResponse<T>,\n\t\tD = any,\n\t>(\n\t\turl: string,\n\t\tconfig: AxiosRequestConfig<D>,\n\t\tinstance: AxiosInstance,\n\t\toptions?: UseAxiosOptions,\n\t): StrictUseAxiosReturn<T, K, R, D> & Promise<StrictUseAxiosReturn<T, K, R, D>>;\n}\n\n/** 包装器的参数 */\nexport interface UseAxiosWrapperParams<\n\t/**\n\t * 业务数据类型\n\t * @description\n\t * 必须先填写业务类型\n\t */\n\tT = any,\n\t/**\n\t * AxiosRequestConfig 默认必填的字段\n\t * @description\n\t * 用于约束其他类型的字段\n\t *\n\t * 然后才能填写必传的参数类型\n\t *\n\t * 默认为 必填url请求地址的 config 请求配置\n\t */\n\tK extends KeyAxiosRequestConfig<D> = \"url\",\n\t/**\n\t * UseAxiosOptions 的派生类型\n\t */\n\tUseAxiosOptionsLike extends UseAxiosOptions = UseAxiosOptions,\n\t/**\n\t * AxiosRequestConfig 用的类型\n\t * @description\n\t * 最后才可以传递此类型\n\t */\n\tD = any,\n> {\n\t/**\n\t * axios的配置类型\n\t * @description\n\t * 默认为 必填url请求地址的 config 请求配置\n\t */\n\tconfig: CreateAxiosRequestConfig<K, D>;\n\n\t/**\n\t * axios实例\n\t * @description\n\t * 对于包装器函数而言 必须传递有意义的请求实例\n\t */\n\tinstance: AxiosInstance;\n\n\t/** useAxios 的选项配置 */\n\toptions: UseAxiosOptionsLike;\n}\n\n/**\n * useAxios 的包装函数\n * @description\n * 其本质是对 useAxios 函数的封装,仅仅是包装了参数层\n *\n * 预期设计成一个万能的 通用的请求函数\n */\nexport function useAxiosWrapper<T, K extends KeyAxiosRequestConfig, D = any>(params: UseAxiosWrapperParams) {\n\tconst {\n\t\tconfig: { url },\n\t\tconfig,\n\t\tinstance,\n\t\toptions,\n\t} = params;\n\t// 跳转到 vueuse 内的函数声明\n\t// return useAxios<T, AxiosResponse<T>, D>(url, config, instance, options);\n\n\t// 跳转到我们拓展的函数声明\n\treturn useAxios<T, K, AxiosResponse<T>, D>(url, config, instance, options);\n}\n","import { generateSpawnSync } from \"../../node-cjs/index.ts\";\n\ntype GlobString = `**/{${string}}`;\n\nexport const defaultCleanTargets = <const>[\n\t// node常见文件\n\t\"node_modules\",\n\t\"yarn.lock\",\n\t\"pnpm-lock.yaml\",\n\t\"package-lock.json\",\n\n\t// 项目常见文件\n\t\"dist\",\n\n\t//\n\t\".turbo\",\n\t\".vercel\",\n\n\t// vuepress\n\t\".cache\",\n\t\".temp\",\n];\n\n/**\n * 删除node项目的依赖项便于重新安装依赖,也包括常见的各种垃圾文件。\n * @description\n */\nexport async function clean(\n\t/**\n\t * 被清除的目标文件夹 也包括文件\n\t */\n\ttargets?: string[],\n) {\n\tconst cleanTargets = targets ?? defaultCleanTargets;\n\tconst glob: GlobString = `**/{${cleanTargets.join()}}`;\n\n\tconsole.log(\" 当前运行地址 process.cwd() \", process.cwd());\n\n\tconst doClean = generateSpawnSync({\n\t\tcommand: \"rimraf\",\n\t\tparameters: [\"-g\", glob],\n\t});\n\n\tawait doClean();\n}\n"],"mappings":"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","names":["objectProto","nativeObjectToString","symToStringTag","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","__filename","__dirname","resolve","spawnSync","resolve","consola","consola","spawnSync"]}
1
+ {"version":3,"sources":["../../src/node-esm/ruan-cat-pkg-info.ts","../../src/node-cjs/tools.ts","../../src/simple-promise-tools.ts","../../src/node-esm/scripts/clean.ts"],"sourcesContent":["import { spawnSync } from \"node:child_process\";\n\n/** 包的信息 */\nexport interface PackageInfo {\n\t/** 包名 */\n\tname: string;\n\t/** 包的描述 */\n\tdescription: string;\n\t/** 带有包名的官方镜像源地址 */\n\turl: `https://npm.im/${string}`;\n}\n\n/**\n * 获得阮喵喵全部的包信息\n * @description\n * 这是一个node环境下的函数,用于获取阮喵喵的所有包的信息。\n *\n * 使用的是node的child_process模块,调用pnpm命令获取包信息。\n *\n * - 默认仅考虑pnpm包\n * - 在node环境下运行\n */\nexport async function getRuanCatPkgInfo() {\n\treturn new Promise<PackageInfo[]>((resolve, reject) => {\n\t\t/**\n\t\t * pnpm s @ruan-cat/* --registry https://registry.npmmirror.com/ --json\n\t\t * 仅查询淘宝源的数据\n\t\t */\n\t\tconst result = spawnSync(\"pnpm\", [\"s\", \"@ruan-cat/*\", \"--registry\", \"https://registry.npmmirror.com/\", \"--json\"], {\n\t\t\tencoding: \"utf-8\",\n\t\t});\n\n\t\tif (result.error) {\n\t\t\tconsole.error(`Error executing command: ${result.error.message}`);\n\t\t\treject(result.error);\n\t\t\treturn;\n\t\t}\n\t\tif (result.stderr) {\n\t\t\tconsole.error(`Error in output: ${result.stderr}`);\n\t\t\treject(new Error(result.stderr));\n\t\t\treturn;\n\t\t}\n\n\t\tconst packages = <unknown[]>JSON.parse(result.stdout);\n\t\tconst res = packages.map(\n\t\t\t(pkg: any) =>\n\t\t\t\t({\n\t\t\t\t\tname: pkg.name,\n\t\t\t\t\tdescription: pkg.description,\n\t\t\t\t\turl: `https://npm.im/${pkg.name}`,\n\t\t\t\t}) satisfies PackageInfo,\n\t\t);\n\t\t// const res = packages;\n\t\tresolve(res);\n\t});\n}\n","/**\n * 一些node环境下的工具函数\n */\n\nimport { normalize } from \"node:path\";\nimport { spawnSync, type SpawnOptions } from \"node:child_process\";\n\nimport { generateSimpleAsyncTask } from \"@ruan-cat/utils\";\nimport consola from \"consola\";\n// import { normalizePath } from \"vite\";\n\n/**\n * 路径转换工具\n */\nexport function pathChange(path: string) {\n\treturn path.replace(/\\\\/g, \"/\");\n\t// FIXME: 无法有效地实现解析路径 测试用例不通过\n\t// return normalize(path);\n\t// FIXME: tsup打包时,无法处理好vite的依赖 会导致打包失败 不知道怎么单独使用并打包该函数\n\t// return normalizePath(path);\n}\n\nexport interface SpawnSyncSimpleParams {\n\tcommand: string;\n\tparameters: string[];\n\t/**\n\t * 是否流式输出内容\n\t * @description 默认输出的命令数据全部以流式的方式输出\n\t * @default true\n\t */\n\tisFlow?: boolean;\n\n\t/**\n\t * 是否显示命令?\n\t * @description\n\t * 是否打印目前正在执行的命令?\n\t * @default true\n\t */\n\tisShowCommand?: boolean;\n\tspawnOptions?: SpawnOptions;\n\n\t/** 打印当前运行的命令 */\n\tprintCurrentCommand?: (params: Pick<SpawnSyncSimpleParams, \"command\" | \"parameters\">) => void;\n}\n\n/**\n * 默认的打印当前运行命令 函数\n */\nexport const defPrintCurrentCommand: SpawnSyncSimpleParams[\"printCurrentCommand\"] = function (params) {\n\tconst { command, parameters } = params;\n\tconsola.info(` 当前运行的命令为: ${command} ${parameters.join(\" \")} \\n`);\n};\n\n/**\n * 生成简单的执行命令函数\n * @description\n * 对 spawnSync 做简单的包装\n *\n * 之前封装的是 execa 函数\n * @version 2\n */\nexport function generateSpawnSync(spawnSyncSimpleParams: SpawnSyncSimpleParams) {\n\tconst {\n\t\tcommand,\n\t\tparameters,\n\t\tisFlow = true,\n\t\tisShowCommand = true,\n\t\tspawnOptions = {},\n\t\tprintCurrentCommand = defPrintCurrentCommand,\n\t} = spawnSyncSimpleParams;\n\n\tif (isShowCommand) {\n\t\tprintCurrentCommand?.({ command, parameters });\n\t}\n\n\treturn generateSimpleAsyncTask(() => {\n\t\tconst result = spawnSync(command, parameters, {\n\t\t\t/**\n\t\t\t * 是否流式输出?\n\t\t\t * 是流式输出就是继承父进程的流式输出\n\t\t\t * 否则就使用默认值\n\t\t\t * @see https://nodejs.org/api/child_process.html#optionsstdio\n\t\t\t */\n\t\t\tstdio: isFlow ? \"inherit\" : \"pipe\",\n\t\t\tshell: true,\n\t\t\t...spawnOptions,\n\t\t});\n\n\t\t// 如果不是流式输出 就直接返回返回值即可\n\t\tif (!isFlow) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (result.error) {\n\t\t\tthrow result.error;\n\t\t}\n\n\t\treturn result;\n\t});\n}\n","// import { uniqueId } from \"lodash-es\";\n// const getCounter = () => uniqueId();\n\n/** 创建简单的异步任务 */\nexport function generateSimpleAsyncTask<T extends (...args: any) => any>(func: T) {\n\t// const taskId = getCounter();\n\n\treturn function (...args: any) {\n\t\t// consola.info(` 这是第 ${taskId} 个异步任务 `);\n\t\t// consola.start(\" 这里是新创建的异步函数 检查参数: \", ...args);\n\n\t\treturn new Promise<ReturnType<T>>((resolve, reject) => {\n\t\t\t// consola.start(\" 内部promise 检查参数: \", ...args);\n\t\t\tresolve(func(...args));\n\t\t});\n\t};\n}\n\nexport type SimpleAsyncTask = ReturnType<typeof generateSimpleAsyncTask>;\n\nexport const initFlag = <const>\"initFlag\";\n\n/**\n * 以队列串行的形式 串行运行异步函数\n * @see https://github.com/ascoders/weekly/blob/master/前沿技术/77.精读《用%20Reduce%20实现%20Promise%20串行执行》.md\n * @version 1\n */\nasync function runPromiseByQueueV1<T>(promises: ((...args: any) => Promise<T>)[]) {\n\tpromises.reduce(\n\t\tasync function (previousPromise, nextPromise, currentIndex) {\n\t\t\tconst response = await previousPromise;\n\t\t\t// consola.log(` reduce串行函数 currentIndex= ${currentIndex} res =`, response);\n\t\t\treturn await nextPromise(response);\n\t\t},\n\t\tPromise.resolve(initFlag) as Promise<any>,\n\t);\n}\n\n/**\n * 以队列串行的形式 串行运行异步函数\n * @version 2\n */\nexport async function runPromiseByQueue<T>(promises: ((...args: any) => Promise<T>)[]) {\n\tlet response: typeof initFlag | Awaited<T> = initFlag;\n\tfor await (const promise of promises) {\n\t\tresponse = await promise(response);\n\t}\n}\n\n/**\n * 以并行的形式 并发运行异步函数\n */\nexport async function runPromiseByConcurrency<T>(promises: ((...args: any) => Promise<T>)[]) {\n\tawait Promise.all(promises.map((promise) => promise()));\n}\n","import { generateSpawnSync } from \"../../node-cjs/index.ts\";\n\ntype GlobString = `**/{${string}}`;\n\nexport const defaultCleanTargets = <const>[\n\t// node常见文件\n\t\"node_modules\",\n\t\"yarn.lock\",\n\t\"pnpm-lock.yaml\",\n\t\"package-lock.json\",\n\n\t// 项目常见文件\n\t\"dist\",\n\n\t//\n\t\".turbo\",\n\t\".vercel\",\n\n\t// vuepress\n\t\".cache\",\n\t\".temp\",\n];\n\n/**\n * 删除node项目的依赖项便于重新安装依赖,也包括常见的各种垃圾文件。\n * @description\n */\nexport async function clean(\n\t/**\n\t * 被清除的目标文件夹 也包括文件\n\t */\n\ttargets?: string[],\n) {\n\tconst cleanTargets = targets ?? defaultCleanTargets;\n\tconst glob: GlobString = `**/{${cleanTargets.join()}}`;\n\n\tconsole.log(\" 当前运行地址 process.cwd() \", process.cwd());\n\n\tconst doClean = generateSpawnSync({\n\t\tcommand: \"rimraf\",\n\t\tparameters: [\"-g\", glob],\n\t});\n\n\tawait doClean();\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAsB1B,eAAsB,oBAAoB;AACzC,SAAO,IAAI,QAAuB,CAAC,SAAS,WAAW;AAKtD,UAAM,SAAS,UAAU,QAAQ,CAAC,KAAK,eAAe,cAAc,mCAAmC,QAAQ,GAAG;AAAA,MACjH,UAAU;AAAA,IACX,CAAC;AAED,QAAI,OAAO,OAAO;AACjB,cAAQ,MAAM,4BAA4B,OAAO,MAAM,OAAO,EAAE;AAChE,aAAO,OAAO,KAAK;AACnB;AAAA,IACD;AACA,QAAI,OAAO,QAAQ;AAClB,cAAQ,MAAM,oBAAoB,OAAO,MAAM,EAAE;AACjD,aAAO,IAAI,MAAM,OAAO,MAAM,CAAC;AAC/B;AAAA,IACD;AAEA,UAAM,WAAsB,KAAK,MAAM,OAAO,MAAM;AACpD,UAAM,MAAM,SAAS;AAAA,MACpB,CAAC,SACC;AAAA,QACA,MAAM,IAAI;AAAA,QACV,aAAa,IAAI;AAAA,QACjB,KAAK,kBAAkB,IAAI,IAAI;AAAA,MAChC;AAAA,IACF;AAEA,YAAQ,GAAG;AAAA,EACZ,CAAC;AACF;;;AClDA,SAAS,aAAAA,kBAAoC;;;ACDtC,SAAS,wBAAyD,MAAS;AAGjF,SAAO,YAAa,MAAW;AAI9B,WAAO,IAAI,QAAuB,CAAC,SAAS,WAAW;AAEtD,cAAQ,KAAK,GAAG,IAAI,CAAC;AAAA,IACtB,CAAC;AAAA,EACF;AACD;;;ADRA,OAAO,aAAa;AAwCb,IAAM,yBAAuE,SAAU,QAAQ;AACrG,QAAM,EAAE,SAAS,WAAW,IAAI;AAChC,UAAQ,KAAK,2DAAc,OAAO,IAAI,WAAW,KAAK,GAAG,CAAC;AAAA,CAAK;AAChE;AAUO,SAAS,kBAAkB,uBAA8C;AAC/E,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,eAAe,CAAC;AAAA,IAChB,sBAAsB;AAAA,EACvB,IAAI;AAEJ,MAAI,eAAe;AAClB,0BAAsB,EAAE,SAAS,WAAW,CAAC;AAAA,EAC9C;AAEA,SAAO,wBAAwB,MAAM;AACpC,UAAM,SAASC,WAAU,SAAS,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO7C,OAAO,SAAS,YAAY;AAAA,MAC5B,OAAO;AAAA,MACP,GAAG;AAAA,IACJ,CAAC;AAGD,QAAI,CAAC,QAAQ;AACZ,aAAO;AAAA,IACR;AAEA,QAAI,OAAO,OAAO;AACjB,YAAM,OAAO;AAAA,IACd;AAEA,WAAO;AAAA,EACR,CAAC;AACF;;;AE/FO,IAAM,sBAA6B;AAAA;AAAA,EAEzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AACD;AAMA,eAAsB,MAIrB,SACC;AACD,QAAM,eAAe,WAAW;AAChC,QAAM,OAAmB,OAAO,aAAa,KAAK,CAAC;AAEnD,UAAQ,IAAI,wDAA0B,QAAQ,IAAI,CAAC;AAEnD,QAAM,UAAU,kBAAkB;AAAA,IACjC,SAAS;AAAA,IACT,YAAY,CAAC,MAAM,IAAI;AAAA,EACxB,CAAC;AAED,QAAM,QAAQ;AACf;","names":["spawnSync","spawnSync"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruan-cat/utils",
3
- "version": "2.0.1",
3
+ "version": "3.0.0",
4
4
  "description": "阮喵喵工具集合。一个纯typescript库,也提供纯js文件。",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -29,6 +29,9 @@
29
29
  "types": "./src/node-esm/index.ts",
30
30
  "import": "./src/node-esm/index.ts"
31
31
  },
32
+ "./unplugin-vue-router": "./src/unplugin-vue-router/index.ts",
33
+ "./vite-plugin-autogeneration-import-file": "./src/vite-plugin-autogeneration-import-file/index.ts",
34
+ "./vueuse": "./src/vueuse/index.ts",
32
35
  "./src/*": "./src/*",
33
36
  "./dist/*": "./dist/*"
34
37
  },
package/src/index.ts CHANGED
@@ -1,12 +1,7 @@
1
1
  export * from "./rmmv-class-expand-tools.ts";
2
2
  export * from "./conditions.ts";
3
- export * from "./unplugin-vue-router/index.ts";
4
3
  export * from "./define-promise-tasks.ts";
5
4
  export * from "./simple-promise-tools.ts";
6
- export * from "./vueuse/useAxios/index.ts";
7
5
 
8
6
  export * from "./types/pnpm-workspace.yaml.shim.ts";
9
7
  export * from "./types/Prettify.ts";
10
-
11
- // 单独打包成cjs 并单独导出
12
- // export * from "./node.ts";
@@ -1,5 +1,3 @@
1
- export * from "./vite-plugin-autogeneration-import-file/index.ts";
2
-
3
1
  export * from "./ruan-cat-pkg-info.ts";
4
2
 
5
3
  export * from "./scripts/clean.ts";
@@ -0,0 +1,21 @@
1
+ ---
2
+ dir:
3
+ collapsible: false
4
+ link: true
5
+ ---
6
+
7
+ # unplugin-vue-router
8
+
9
+ ## 安装依赖
10
+
11
+ 你需要独立安装 unplugin-vue-router 。
12
+
13
+ ```bash
14
+ pnpm i -D unplugin-vue-router
15
+ ```
16
+
17
+ ## 使用
18
+
19
+ ```ts
20
+ import { getRouteName } from "@ruan-cat/utils/unplugin-vue-router";
21
+ ```
@@ -16,10 +16,11 @@ type GetRouteName = NonNullable<Options["getRouteName"]>;
16
16
  * 该函数设计出来是为了解决这个问题
17
17
  *
18
18
  * 在vite符号链接未解决时,应该直接使用js文件,如下:
19
+ * (作废)
19
20
  * import { getRouteName } from "@ruan-cat/utils/dist/index.js";
20
21
  *
21
22
  * 若已经彻底解决,请直接试图用来自符号链接的ts文件,如下:
22
- * import { getRouteName } from "@ruan-cat/utils";
23
+ * import { getRouteName } from "@ruan-cat/utils/unplugin-vue-router";
23
24
  */
24
25
  export const getRouteName: GetRouteName = function _getRouteName(node): ReturnType<GetRouteName> {
25
26
  // 如果是根节点 那么没有对应的文件夹名称 返回空字符串
@@ -1,11 +1,37 @@
1
1
  ---
2
- order: 30
3
2
  dir:
4
3
  collapsible: false
5
4
  link: true
6
- order: 30
7
5
  ---
8
6
 
9
7
  # 自动类型生成插件的二次封装
10
8
 
11
9
  [vite-plugin-autogeneration-import-file](https://github.com/yuntian001/vite-plugin-autogeneration-import-file),这个 vite 插件可以实现自动类型导入。在实际使用过程中,需要配置很多东西,故此处对该插件的使用做一些二次封装,并讲解该如何使用。
10
+
11
+ ## 安装依赖
12
+
13
+ 毕竟属于对该插件的二次封装,请自行安装依赖:
14
+
15
+ ```bash
16
+ pnpm i -D vite-plugin-autogeneration-import-file
17
+ ```
18
+
19
+ ## 在 vite 配置内使用
20
+
21
+ 使用示例如下:
22
+
23
+ ::: details
24
+
25
+ @[code](./tests/vite.config.ts)
26
+
27
+ :::
28
+
29
+ ## 使用的模板
30
+
31
+ 类型文件使用的模板如下:
32
+
33
+ ::: details
34
+
35
+ @[code](./template/components.template.ts)
36
+
37
+ :::
@@ -1,7 +1,7 @@
1
1
  ---
2
- order: 20
3
2
  dir:
4
3
  order: 20
4
+ link: true
5
5
  ---
6
6
 
7
7
  # vueuse
@@ -0,0 +1 @@
1
+ export * from "./useAxios/index.ts";
@@ -8,7 +8,13 @@ dir:
8
8
 
9
9
  # useAxios 的包装函数
10
10
 
11
- useAxiosWrapper,该函数旨在于实现 useAxios 的封装。使用方式如下:
11
+ useAxiosWrapper,该函数旨在于实现 useAxios 的封装。
12
+
13
+ ## 安装依赖
14
+
15
+ ```bash
16
+ pnpm i -P @vueuse/integrations axios
17
+ ```
12
18
 
13
19
  ## 准备接口返回数据的类型
14
20