@dune2/cli 1.1.1 → 1.1.3

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.
Files changed (49) hide show
  1. package/dist/cli.d.mts +1 -0
  2. package/dist/cli.mjs +50 -0
  3. package/dist/cli.mjs.map +1 -0
  4. package/dist/config-CxSOgXuG.mjs +20 -0
  5. package/dist/config-CxSOgXuG.mjs.map +1 -0
  6. package/dist/generateApi-BaH36tyv.mjs +268 -0
  7. package/dist/generateApi-BaH36tyv.mjs.map +1 -0
  8. package/dist/{index.d.ts → index.d.mts} +9 -8
  9. package/dist/index.mjs +65 -0
  10. package/dist/index.mjs.map +1 -0
  11. package/dist/initConfig-Cu0d5qZ8.mjs +28 -0
  12. package/dist/initConfig-Cu0d5qZ8.mjs.map +1 -0
  13. package/dist/interactive-CG86IvnG.mjs +38 -0
  14. package/dist/interactive-CG86IvnG.mjs.map +1 -0
  15. package/dist/normalizeConfig-Dx193DW8.mjs +26 -0
  16. package/dist/normalizeConfig-Dx193DW8.mjs.map +1 -0
  17. package/dist/normalizeConfig.d.mts +8 -0
  18. package/dist/normalizeConfig.mjs +3 -0
  19. package/dist/prettier.cjs +9946 -42
  20. package/dist/prettier.cjs.map +1 -1
  21. package/dist/prettier.d.cts +14 -0
  22. package/dist/prettier.d.mts +14 -0
  23. package/dist/prettier.mjs +9952 -0
  24. package/dist/prettier.mjs.map +1 -0
  25. package/dist/types-lEW0KXAS.d.mts +70 -0
  26. package/package.json +9 -9
  27. package/dist/chunk-ENF3KHSQ.js +0 -19
  28. package/dist/chunk-ENF3KHSQ.js.map +0 -1
  29. package/dist/chunk-OZFFB6QC.js +0 -27
  30. package/dist/chunk-OZFFB6QC.js.map +0 -1
  31. package/dist/chunk-RWPDDW5T.js +0 -29
  32. package/dist/chunk-RWPDDW5T.js.map +0 -1
  33. package/dist/cli.d.ts +0 -1
  34. package/dist/cli.js +0 -35
  35. package/dist/cli.js.map +0 -1
  36. package/dist/generateApi-KLMUF7Y7.js +0 -328
  37. package/dist/generateApi-KLMUF7Y7.js.map +0 -1
  38. package/dist/index.js +0 -54
  39. package/dist/index.js.map +0 -1
  40. package/dist/initConfig-CJT7LP2T.js +0 -32
  41. package/dist/initConfig-CJT7LP2T.js.map +0 -1
  42. package/dist/interactive-VUY3CMIF.js +0 -43
  43. package/dist/interactive-VUY3CMIF.js.map +0 -1
  44. package/dist/normalizeConfig.d.ts +0 -8
  45. package/dist/normalizeConfig.js +0 -9
  46. package/dist/normalizeConfig.js.map +0 -1
  47. package/dist/prettier.js +0 -50
  48. package/dist/prettier.js.map +0 -1
  49. package/dist/types-B1PjA6gT.d.ts +0 -68
package/dist/index.js DELETED
@@ -1,54 +0,0 @@
1
- import {
2
- configName,
3
- defineConfig,
4
- getConfig
5
- } from "./chunk-RWPDDW5T.js";
6
- import "./chunk-OZFFB6QC.js";
7
-
8
- // src/shared/defaultJsonSorter.ts
9
- function defaultJsonSorter(obj) {
10
- const keys = Object.keys(obj);
11
- const sortedKeys = keys.sort();
12
- const sortedObj = sortedKeys.reduce((acc, key) => {
13
- acc[key] = obj[key];
14
- return acc;
15
- }, {});
16
- return sortedObj;
17
- }
18
-
19
- // src/shared/letters.ts
20
- function letterToNumber(letters) {
21
- if (typeof letters === "number" || !Number.isNaN(+letters)) {
22
- return +letters;
23
- }
24
- let n = 0;
25
- letters = letters.toUpperCase();
26
- for (let p = 0; p < letters.length; p++) {
27
- n = letters[p].charCodeAt(0) - 64 + n * 26;
28
- }
29
- return Math.max(0, n - 1);
30
- }
31
- var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
32
- var base = alphabet.length;
33
- function numberToLetter(n) {
34
- const digits = [];
35
- do {
36
- const v = n % base;
37
- digits.push(v);
38
- n = Math.floor(n / base);
39
- } while (n-- > 0);
40
- const chars = [];
41
- while (digits.length) {
42
- chars.push(alphabet[digits.pop()]);
43
- }
44
- return chars.join("");
45
- }
46
- export {
47
- configName,
48
- defaultJsonSorter,
49
- defineConfig,
50
- getConfig,
51
- letterToNumber,
52
- numberToLetter
53
- };
54
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/defaultJsonSorter.ts","../src/shared/letters.ts"],"sourcesContent":["/**\n * 对 JSON 对象的键进行排序\n * @param obj 要排序的 JSON 对象\n * @returns 排序后的 JSON 对象\n */\nexport function defaultJsonSorter<T extends Record<string, any>>(obj: T) {\n const keys = Object.keys(obj);\n const sortedKeys = keys.sort(); // 使用原生 sort 方法对键进行排序\n const sortedObj = sortedKeys.reduce((acc, key) => {\n acc[key as keyof T] = obj[key];\n return acc;\n }, {} as T);\n\n return sortedObj as T;\n}\n","/**\n *\n * - input : A\n * output : 0\n * - input : Z\n * output : 25\n * - input : AA\n * output : 26\n * - input : a\n * output : 0\n */\nexport function letterToNumber(letters: string | number) {\n if (typeof letters === \"number\" || !Number.isNaN(+letters)) {\n return +letters;\n }\n\n let n = 0;\n letters = letters.toUpperCase();\n for (let p = 0; p < letters.length; p++) {\n n = letters[p].charCodeAt(0) - 64 + n * 26;\n }\n\n return Math.max(0, n - 1);\n}\n\n/**\n * fork from https://github.com/matthewmueller/number-to-letter\n */\nconst alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nconst base = alphabet.length;\n/**\n * numberToLetter(0) // A\n * numberToLetter(25) // Z\n * numberToLetter(26) // AA\n * numberToLetter(51) // AZ\n * numberToLetter(52) // BA\n * numberToLetter(676) // ZA\n * numberToLetter(701) // ZZ\n * numberToLetter(702) // AAA\n */\nexport function numberToLetter(n: number) {\n const digits: number[] = [];\n\n do {\n const v = n % base;\n digits.push(v);\n n = Math.floor(n / base);\n } while (n-- > 0);\n\n const chars: string[] = [];\n while (digits.length) {\n chars.push(alphabet[digits.pop()!]);\n }\n\n return chars.join(\"\");\n}\n"],"mappings":";;;;;;;;AAKO,SAAS,kBAAiD,KAAQ;AACvE,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,QAAM,aAAa,KAAK,KAAK;AAC7B,QAAM,YAAY,WAAW,OAAO,CAAC,KAAK,QAAQ;AAChD,QAAI,GAAc,IAAI,IAAI,GAAG;AAC7B,WAAO;AAAA,EACT,GAAG,CAAC,CAAM;AAEV,SAAO;AACT;;;ACHO,SAAS,eAAe,SAA0B;AACvD,MAAI,OAAO,YAAY,YAAY,CAAC,OAAO,MAAM,CAAC,OAAO,GAAG;AAC1D,WAAO,CAAC;AAAA,EACV;AAEA,MAAI,IAAI;AACR,YAAU,QAAQ,YAAY;AAC9B,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,QAAI,QAAQ,CAAC,EAAE,WAAW,CAAC,IAAI,KAAK,IAAI;AAAA,EAC1C;AAEA,SAAO,KAAK,IAAI,GAAG,IAAI,CAAC;AAC1B;AAKA,IAAM,WAAW;AACjB,IAAM,OAAO,SAAS;AAWf,SAAS,eAAe,GAAW;AACxC,QAAM,SAAmB,CAAC;AAE1B,KAAG;AACD,UAAM,IAAI,IAAI;AACd,WAAO,KAAK,CAAC;AACb,QAAI,KAAK,MAAM,IAAI,IAAI;AAAA,EACzB,SAAS,MAAM;AAEf,QAAM,QAAkB,CAAC;AACzB,SAAO,OAAO,QAAQ;AACpB,UAAM,KAAK,SAAS,OAAO,IAAI,CAAE,CAAC;AAAA,EACpC;AAEA,SAAO,MAAM,KAAK,EAAE;AACtB;","names":[]}
@@ -1,32 +0,0 @@
1
- import {
2
- configName
3
- } from "./chunk-RWPDDW5T.js";
4
- import "./chunk-OZFFB6QC.js";
5
- import {
6
- createLogger
7
- } from "./chunk-ENF3KHSQ.js";
8
-
9
- // src/commands/initConfig.ts
10
- import fs from "fs/promises";
11
- import path from "path";
12
- var log = createLogger("initConfig");
13
- var tpl = `import { defineConfig } from "@dune2/cli";
14
-
15
- export default defineConfig({
16
- i18n: [],
17
- api: [],
18
- });`;
19
- var initConfig = async () => {
20
- const configPath = path.join(process.cwd(), configName);
21
- log.info(`config file path: ${configPath}`);
22
- if (await fs.access(configPath).then(() => true).catch(() => false)) {
23
- log.info(`config file already exists, skip`);
24
- return;
25
- }
26
- await fs.writeFile(configPath, tpl);
27
- log.info(`config file created`);
28
- };
29
- export {
30
- initConfig
31
- };
32
- //# sourceMappingURL=initConfig-CJT7LP2T.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/initConfig.ts"],"sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"path\";\nimport { createLogger } from \"../shared\";\nimport { configName } from \"../shared/config\";\n\nconst log = createLogger(\"initConfig\");\n\nconst tpl = `\\\nimport { defineConfig } from \"@dune2/cli\";\n\nexport default defineConfig({\n i18n: [],\n api: [],\n});`;\n\nexport const initConfig = async () => {\n const configPath = path.join(process.cwd(), configName);\n log.info(`config file path: ${configPath}`);\n if (\n await fs\n .access(configPath)\n .then(() => true)\n .catch(() => false)\n ) {\n log.info(`config file already exists, skip`);\n return;\n }\n await fs.writeFile(configPath, tpl);\n log.info(`config file created`);\n};\n"],"mappings":";;;;;;;;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAIjB,IAAM,MAAM,aAAa,YAAY;AAErC,IAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAQL,IAAM,aAAa,YAAY;AACpC,QAAM,aAAa,KAAK,KAAK,QAAQ,IAAI,GAAG,UAAU;AACtD,MAAI,KAAK,qBAAqB,UAAU,EAAE;AAC1C,MACE,MAAM,GACH,OAAO,UAAU,EACjB,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK,GACpB;AACA,QAAI,KAAK,kCAAkC;AAC3C;AAAA,EACF;AACA,QAAM,GAAG,UAAU,YAAY,GAAG;AAClC,MAAI,KAAK,qBAAqB;AAChC;","names":[]}
@@ -1,43 +0,0 @@
1
- import {
2
- cli,
3
- createLogger
4
- } from "./chunk-ENF3KHSQ.js";
5
-
6
- // src/commands/interactive.ts
7
- import enquirer from "enquirer";
8
- var { prompt } = enquirer;
9
- var log = createLogger("interactive");
10
- var interactive = async (args) => {
11
- var _a;
12
- const commands = cli.commands.filter((command2) => {
13
- if (command2.name) {
14
- return !command2.name.startsWith("@@") && command2.name !== "interactive";
15
- }
16
- return false;
17
- });
18
- const commandMap = /* @__PURE__ */ new Map();
19
- const res = await prompt({
20
- type: "autocomplete",
21
- name: "command",
22
- message: "\u9009\u62E9\u8981\u6267\u884C\u7684\u547D\u4EE4\uFF1A",
23
- choices: commands.map((command2) => {
24
- commandMap.set(command2.name, command2);
25
- return {
26
- name: command2.name,
27
- value: command2.name,
28
- message: command2.description,
29
- hint: `\u7B49\u540C\u547D\u4EE4 ${cli.name} ${command2.name}`
30
- };
31
- })
32
- });
33
- const command = commandMap.get(res.command);
34
- if (!command) {
35
- log.error("\u672A\u627E\u5230\u547D\u4EE4 %s", res.command);
36
- return;
37
- }
38
- (_a = command.commandAction) == null ? void 0 : _a.apply(cli, args);
39
- };
40
- export {
41
- interactive
42
- };
43
- //# sourceMappingURL=interactive-VUY3CMIF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/interactive.ts"],"sourcesContent":["import { cli, createLogger } from \"../shared\";\nimport enquirer from \"enquirer\";\nconst { prompt } = enquirer;\n\nconst log = createLogger(\"interactive\");\n\nexport const interactive = async (args: any) => {\n const commands = cli.commands.filter((command) => {\n if (command.name) {\n return !command.name.startsWith(\"@@\") && command.name !== \"interactive\";\n }\n return false;\n });\n\n const commandMap = new Map<string, typeof commands[number]>();\n const res = await prompt<{ command: string }>({\n type: \"autocomplete\",\n name: \"command\",\n message: \"选择要执行的命令:\",\n choices: commands.map((command) => {\n commandMap.set(command.name, command);\n return {\n name: command.name,\n value: command.name,\n message: command.description,\n hint: `等同命令 ${cli.name} ${command.name}`,\n };\n }),\n });\n const command = commandMap.get(res.command);\n if (!command) {\n log.error(\"未找到命令 %s\", res.command);\n return;\n }\n command.commandAction?.apply(cli, args);\n};\n"],"mappings":";;;;;;AACA,OAAO,cAAc;AACrB,IAAM,EAAE,OAAO,IAAI;AAEnB,IAAM,MAAM,aAAa,aAAa;AAE/B,IAAM,cAAc,OAAO,SAAc;AANhD;AAOE,QAAM,WAAW,IAAI,SAAS,OAAO,CAACA,aAAY;AAChD,QAAIA,SAAQ,MAAM;AAChB,aAAO,CAACA,SAAQ,KAAK,WAAW,IAAI,KAAKA,SAAQ,SAAS;AAAA,IAC5D;AACA,WAAO;AAAA,EACT,CAAC;AAED,QAAM,aAAa,oBAAI,IAAqC;AAC5D,QAAM,MAAM,MAAM,OAA4B;AAAA,IAC5C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS,SAAS,IAAI,CAACA,aAAY;AACjC,iBAAW,IAAIA,SAAQ,MAAMA,QAAO;AACpC,aAAO;AAAA,QACL,MAAMA,SAAQ;AAAA,QACd,OAAOA,SAAQ;AAAA,QACf,SAASA,SAAQ;AAAA,QACjB,MAAM,4BAAQ,IAAI,IAAI,IAAIA,SAAQ,IAAI;AAAA,MACxC;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,QAAM,UAAU,WAAW,IAAI,IAAI,OAAO;AAC1C,MAAI,CAAC,SAAS;AACZ,QAAI,MAAM,qCAAY,IAAI,OAAO;AACjC;AAAA,EACF;AACA,gBAAQ,kBAAR,mBAAuB,MAAM,KAAK;AACpC;","names":["command"]}
@@ -1,8 +0,0 @@
1
- import { C as Config, A as ApiConfig } from './types-B1PjA6gT.js';
2
- import '@apidevtools/swagger-parser';
3
- import 'openapi-types';
4
-
5
- declare function normalizeConfig(config: Config): Config;
6
- declare function apiConfigNormalizer(item: ApiConfig): ApiConfig;
7
-
8
- export { apiConfigNormalizer, normalizeConfig };
@@ -1,9 +0,0 @@
1
- import {
2
- apiConfigNormalizer,
3
- normalizeConfig
4
- } from "./chunk-OZFFB6QC.js";
5
- export {
6
- apiConfigNormalizer,
7
- normalizeConfig
8
- };
9
- //# sourceMappingURL=normalizeConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/prettier.js DELETED
@@ -1,50 +0,0 @@
1
- // src/prettier.ts
2
- import { parsers as prettierParsers } from "prettier/plugins/babel";
3
-
4
- // src/shared/defaultJsonSorter.ts
5
- function defaultJsonSorter(obj) {
6
- const keys = Object.keys(obj);
7
- const sortedKeys = keys.sort();
8
- const sortedObj = sortedKeys.reduce((acc, key) => {
9
- acc[key] = obj[key];
10
- return acc;
11
- }, {});
12
- return sortedObj;
13
- }
14
-
15
- // src/prettier.ts
16
- var i18nJsonExt = ".i18n.json";
17
- var jsonParser = prettierParsers.json;
18
- var languages = [
19
- {
20
- name: "dune-i18n-json",
21
- parsers: ["json"],
22
- extensions: [i18nJsonExt]
23
- }
24
- ];
25
- var parsers = {
26
- json: {
27
- ...jsonParser,
28
- async preprocess(text, options) {
29
- if (jsonParser.preprocess) {
30
- text = await jsonParser.preprocess(text, options);
31
- }
32
- const isI18nJson = options.filepath.endsWith(i18nJsonExt);
33
- if (isI18nJson) {
34
- try {
35
- let obj = JSON.parse(text);
36
- let newObj = defaultJsonSorter(obj);
37
- text = JSON.stringify(newObj, null, 2);
38
- } catch (error) {
39
- console.log(`JSON \u683C\u5F0F\u9519\u8BEF\uFF1A${error}`);
40
- }
41
- }
42
- return text;
43
- }
44
- }
45
- };
46
- export {
47
- languages,
48
- parsers
49
- };
50
- //# sourceMappingURL=prettier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/prettier.ts","../src/shared/defaultJsonSorter.ts"],"sourcesContent":["import { Plugin } from \"prettier\";\nimport { parsers as prettierParsers } from \"prettier/plugins/babel\";\nimport { defaultJsonSorter } from \"./shared/defaultJsonSorter\";\n\nconst i18nJsonExt = \".i18n.json\";\n\nconst jsonParser = prettierParsers.json;\n\n// 配置 i18n.json\nexport const languages: Plugin[\"languages\"] = [\n {\n name: \"dune-i18n-json\",\n parsers: [\"json\"],\n extensions: [i18nJsonExt],\n },\n];\n\n/**\n * 格式化 *.i18n.json 文件\n * 按照 key 排序\n * 对齐 cli 生成的 i18n.json 文件顺序\n * 方便查看和比较\n */\nexport const parsers: Plugin[\"parsers\"] = {\n json: {\n ...jsonParser,\n async preprocess(text, options) {\n if (jsonParser.preprocess) {\n text = await jsonParser.preprocess(text, options);\n }\n const isI18nJson = options.filepath.endsWith(i18nJsonExt);\n if (isI18nJson) {\n try {\n let obj = JSON.parse(text);\n let newObj = defaultJsonSorter(obj);\n text = JSON.stringify(newObj, null, 2);\n } catch (error) {\n console.log(`JSON 格式错误:${error}`);\n }\n }\n return text;\n },\n },\n};\n","/**\n * 对 JSON 对象的键进行排序\n * @param obj 要排序的 JSON 对象\n * @returns 排序后的 JSON 对象\n */\nexport function defaultJsonSorter<T extends Record<string, any>>(obj: T) {\n const keys = Object.keys(obj);\n const sortedKeys = keys.sort(); // 使用原生 sort 方法对键进行排序\n const sortedObj = sortedKeys.reduce((acc, key) => {\n acc[key as keyof T] = obj[key];\n return acc;\n }, {} as T);\n\n return sortedObj as T;\n}\n"],"mappings":";AACA,SAAS,WAAW,uBAAuB;;;ACIpC,SAAS,kBAAiD,KAAQ;AACvE,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,QAAM,aAAa,KAAK,KAAK;AAC7B,QAAM,YAAY,WAAW,OAAO,CAAC,KAAK,QAAQ;AAChD,QAAI,GAAc,IAAI,IAAI,GAAG;AAC7B,WAAO;AAAA,EACT,GAAG,CAAC,CAAM;AAEV,SAAO;AACT;;;ADVA,IAAM,cAAc;AAEpB,IAAM,aAAa,gBAAgB;AAG5B,IAAM,YAAiC;AAAA,EAC5C;AAAA,IACE,MAAM;AAAA,IACN,SAAS,CAAC,MAAM;AAAA,IAChB,YAAY,CAAC,WAAW;AAAA,EAC1B;AACF;AAQO,IAAM,UAA6B;AAAA,EACxC,MAAM;AAAA,IACJ,GAAG;AAAA,IACH,MAAM,WAAW,MAAM,SAAS;AAC9B,UAAI,WAAW,YAAY;AACzB,eAAO,MAAM,WAAW,WAAW,MAAM,OAAO;AAAA,MAClD;AACA,YAAM,aAAa,QAAQ,SAAS,SAAS,WAAW;AACxD,UAAI,YAAY;AACd,YAAI;AACF,cAAI,MAAM,KAAK,MAAM,IAAI;AACzB,cAAI,SAAS,kBAAkB,GAAG;AAClC,iBAAO,KAAK,UAAU,QAAQ,MAAM,CAAC;AAAA,QACvC,SAAS,OAAO;AACd,kBAAQ,IAAI,sCAAa,KAAK,EAAE;AAAA,QAClC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -1,68 +0,0 @@
1
- import SwaggerParser from '@apidevtools/swagger-parser';
2
- import { OpenAPIV3 } from 'openapi-types';
3
-
4
- interface ApiConfig {
5
- /**
6
- * swagger JSON 的路径 可以是 本地 可以是远程
7
- */
8
- swaggerJSONPath: string;
9
- /**
10
- * 用在生成代码里快捷连接跳转到 swagger ui
11
- * 必须携带 urls.primaryName 参数
12
- * @example http://192.168.104.10:31082/swagger/?urls.primaryName=%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86%E7%9B%B8%E5%85%B3API
13
- */
14
- swaggerUiUrl?: string;
15
- /**
16
- * 输出的文件夹路径
17
- * @default "./src/apis"
18
- */
19
- output?: string;
20
- /**
21
- * 配置`queryClient` 路径,导入的变量必须是命名为`queryClient`
22
- * @example `import queryClient from '@/utils/request'`
23
- * @example `import { queryClient } from '@/utils/request'`
24
- * @example `import { xxClient as queryClient } from '@/utils/request'`
25
- */
26
- queryClientImportPath?: string;
27
- /**
28
- * 配置`RequestBuilder` 路径,导入的变量必须是命名为`RequestBuilder`
29
- * @example `import RequestBuilder from '@/utils/RequestBuilder'`
30
- * @default `import { RequestBuilder } from '@dune2/tools/rq'`
31
- */
32
- RequestBuilderImportPath?: string;
33
- /**
34
- * 是否启用ts,`true`会生成`.ts`文件,`false`会生成`.js`文件
35
- * @default true
36
- */
37
- enableTs?: boolean;
38
- /**
39
- * 响应的scheme转换,默认获取获取 data 字段,取不到回退到 scheme
40
- * @default (schema) => schema.properties?.data ?? schema
41
- */
42
- responseSchemaTransformer?: (schema: OpenAPIV3.SchemaObject) => any;
43
- /**
44
- * 生成代码完毕后是否自动格式化,默认格式化
45
- * 需要安装 prettier
46
- * @default true
47
- */
48
- format?: boolean;
49
- /**
50
- * url 转换器,可以是字符串,也可以是函数
51
- *
52
- * 字符串会被当成prefix, 会在url前面加上
53
- *
54
- * 函数会被当成转换器
55
- *
56
- * @tips 不会影响文件名,只会影响生成的代码里的url字段
57
- */
58
- urlTransformer?: string | ((url: string) => string);
59
- /**
60
- * 配置 dereference 的参数
61
- */
62
- dereferenceSwaggerConfig?: SwaggerParser.Options;
63
- }
64
- interface Config {
65
- api?: ApiConfig[];
66
- }
67
-
68
- export type { ApiConfig as A, Config as C };