yapi-to-typescript2 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/cli.js CHANGED
@@ -1,285 +1,254 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
-
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
-
6
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
7
-
8
- exports.__esModule = true;
9
- exports.run = run;
10
-
11
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
- var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
14
-
15
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
- var TSNode = _interopRequireWildcard(require("ts-node"));
18
-
19
- var _consola = _interopRequireDefault(require("consola"));
20
-
21
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
22
-
23
- var _ora = _interopRequireDefault(require("ora"));
24
-
25
- var _path = _interopRequireDefault(require("path"));
26
-
27
- var _prompts = _interopRequireDefault(require("prompts"));
28
-
29
- var _yargs = _interopRequireDefault(require("yargs"));
30
-
31
- var _vtils = require("vtils");
32
-
33
- var _Generator = require("./Generator");
34
-
35
- var _templateObject, _templateObject2;
36
-
37
- TSNode.register({
38
- // 不加载本地的 tsconfig.json
39
- skipProject: true,
40
- // 仅转译,不做类型检查
41
- transpileOnly: true,
42
- // 自定义编译选项
43
- compilerOptions: {
44
- strict: false,
45
- target: 'es2017',
46
- module: 'commonjs',
47
- moduleResolution: 'node',
48
- declaration: false,
49
- removeComments: false,
50
- esModuleInterop: true,
51
- allowSyntheticDefaultImports: true,
52
- importHelpers: false,
53
- // 转换 js,支持在 ytt.config.js 里使用最新语法
54
- allowJs: true,
55
- lib: ['es2017']
56
- }
3
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
4
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5
+ return cooked;
6
+ };
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
57
22
  });
58
-
59
- function run(_x, _x2) {
60
- return _run.apply(this, arguments);
61
- }
62
- /* istanbul ignore next */
63
-
64
-
65
- function _run() {
66
- _run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(cmd, options) {
67
- var useCustomConfigFile, cwd, configTSFile, configJSFile, configFile, configFileExist, configTSFileExist, configJSFileExist, answers, outputConfigFile, outputConfigFileType, _answers, _config2, _config2$hooks, config, generator, spinner, _hooks, delayNotice, output, _spinner, _generator, _config, _config$hooks;
68
-
69
- return _regenerator.default.wrap(function _callee$(_context) {
70
- while (1) {
71
- switch (_context.prev = _context.next) {
72
- case 0:
73
- useCustomConfigFile = false;
74
-
75
- if (options != null && options.configFile) {
76
- _context.next = 18;
77
- break;
78
- }
79
-
80
- cwd = process.cwd();
81
- configTSFile = _path.default.join(cwd, 'ytt.config.ts');
82
- configJSFile = _path.default.join(cwd, 'ytt.config.js');
83
- _context.next = 7;
84
- return _fsExtra.default.pathExists(configTSFile);
85
-
86
- case 7:
87
- configTSFileExist = _context.sent;
88
- _context.t0 = !configTSFileExist;
89
-
90
- if (!_context.t0) {
91
- _context.next = 13;
92
- break;
93
- }
94
-
95
- _context.next = 12;
96
- return _fsExtra.default.pathExists(configJSFile);
97
-
98
- case 12:
99
- _context.t0 = _context.sent;
100
-
101
- case 13:
102
- configJSFileExist = _context.t0;
103
- configFileExist = configTSFileExist || configJSFileExist;
104
- configFile = configTSFileExist ? configTSFile : configJSFile;
105
- _context.next = 24;
106
- break;
107
-
108
- case 18:
109
- useCustomConfigFile = true;
110
- configFile = options.configFile;
111
- cwd = _path.default.dirname(configFile);
112
- _context.next = 23;
113
- return _fsExtra.default.pathExists(configFile);
114
-
115
- case 23:
116
- configFileExist = _context.sent;
117
-
118
- case 24:
119
- if (!(cmd === 'help')) {
120
- _context.next = 28;
121
- break;
122
- }
123
-
124
- console.log("\n" + (0, _vtils.dedent)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n # \u7528\u6CD5\n \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6: ytt init\n \u751F\u6210\u4EE3\u7801: ytt\n \u67E5\u770B\u5E2E\u52A9: ytt help\n\n # GitHub\n https://github.com/fjc0k/yapi-to-typescript\n "]))) + "\n");
125
- _context.next = 87;
126
- break;
127
-
128
- case 28:
129
- if (!(cmd === 'init')) {
130
- _context.next = 51;
131
- break;
132
- }
133
-
134
- if (!configFileExist) {
135
- _context.next = 36;
136
- break;
23
+ var __importStar = (this && this.__importStar) || function (mod) {
24
+ if (mod && mod.__esModule) return mod;
25
+ var result = {};
26
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
27
+ __setModuleDefault(result, mod);
28
+ return result;
29
+ };
30
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
31
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32
+ return new (P || (P = Promise))(function (resolve, reject) {
33
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
34
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
35
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
36
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
37
+ });
38
+ };
39
+ var __generator = (this && this.__generator) || function (thisArg, body) {
40
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
41
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
42
+ function verb(n) { return function (v) { return step([n, v]); }; }
43
+ function step(op) {
44
+ if (f) throw new TypeError("Generator is already executing.");
45
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
46
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
47
+ if (y = 0, t) op = [op[0] & 2, t.value];
48
+ switch (op[0]) {
49
+ case 0: case 1: t = op; break;
50
+ case 4: _.label++; return { value: op[1], done: false };
51
+ case 5: _.label++; y = op[1]; op = [0]; continue;
52
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
53
+ default:
54
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
55
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
56
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
57
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
58
+ if (t[2]) _.ops.pop();
59
+ _.trys.pop(); continue;
137
60
  }
138
-
139
- _consola.default.info("\u68C0\u6D4B\u5230\u914D\u7F6E\u6587\u4EF6: " + configFile);
140
-
141
- _context.next = 33;
142
- return (0, _prompts.default)({
143
- message: '是否覆盖已有配置文件?',
144
- name: 'override',
145
- type: 'confirm'
146
- });
147
-
148
- case 33:
149
- answers = _context.sent;
150
-
151
- if (answers.override) {
152
- _context.next = 36;
153
- break;
154
- }
155
-
156
- return _context.abrupt("return");
157
-
158
- case 36:
159
- if (!useCustomConfigFile) {
160
- _context.next = 41;
161
- break;
162
- }
163
-
164
- outputConfigFile = configFile;
165
- outputConfigFileType = configFile.endsWith('.js') ? 'js' : 'ts';
166
- _context.next = 46;
167
- break;
168
-
169
- case 41:
170
- _context.next = 43;
171
- return (0, _prompts.default)({
172
- message: '选择配置文件类型?',
173
- name: 'configFileType',
174
- type: 'select',
175
- choices: [{
176
- title: 'TypeScript(ytt.config.ts)',
177
- value: 'ts'
178
- }, {
179
- title: 'JavaScript(ytt.config.js)',
180
- value: 'js'
181
- }]
182
- });
183
-
184
- case 43:
185
- _answers = _context.sent;
186
- outputConfigFile = _answers.configFileType === 'js' ? configJSFile : configTSFile;
187
- outputConfigFileType = _answers.configFileType;
188
-
189
- case 46:
190
- _context.next = 48;
191
- return _fsExtra.default.outputFile(outputConfigFile, (0, _vtils.dedent)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n import { defineConfig } from 'yapi-to-typescript'\n\n export default defineConfig([\n {\n serverUrl: 'http://foo.bar',\n typesOnly: false,\n target: '", "',\n reactHooks: {\n enabled: false,\n },\n prodEnvName: 'production',\n outputFilePath: 'src/api/index.", "',\n requestFunctionFilePath: 'src/api/request.", "',\n dataKey: 'data',\n projects: [\n {\n token: 'hello',\n categories: [\n {\n id: 0,\n getRequestFunctionName(interfaceInfo, changeCase) {\n // \u4EE5\u63A5\u53E3\u5168\u8DEF\u5F84\u751F\u6210\u8BF7\u6C42\u51FD\u6570\u540D\n return changeCase.camelCase(interfaceInfo.path)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u5B58\u5728\u8BED\u6CD5\u5173\u952E\u8BCD\u62A5\u9519\u3001\u6216\u60F3\u901A\u8FC7\u67D0\u4E2A\u5173\u952E\u8BCD\u89E6\u53D1 IDE \u81EA\u52A8\u5F15\u5165\u63D0\u793A\uFF0C\u53EF\u8003\u8651\u52A0\u524D\u7F00\uFF0C\u5982:\n // return changeCase.camelCase(`api_${interfaceInfo.path}`)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u6709\u91CD\u590D\u62A5\u9519\uFF0C\u53EF\u8003\u8651\u5C06\u63A5\u53E3\u8BF7\u6C42\u65B9\u5F0F\u7EB3\u5165\u751F\u6210\u6761\u4EF6\uFF0C\u5982:\n // return changeCase.camelCase(`${interfaceInfo.method}_${interfaceInfo.path}`)\n },\n },\n ],\n },\n ],\n },\n ])\n "], ["\n import { defineConfig } from 'yapi-to-typescript'\n\n export default defineConfig([\n {\n serverUrl: 'http://foo.bar',\n typesOnly: false,\n target: '", "',\n reactHooks: {\n enabled: false,\n },\n prodEnvName: 'production',\n outputFilePath: 'src/api/index.", "',\n requestFunctionFilePath: 'src/api/request.", "',\n dataKey: 'data',\n projects: [\n {\n token: 'hello',\n categories: [\n {\n id: 0,\n getRequestFunctionName(interfaceInfo, changeCase) {\n // \u4EE5\u63A5\u53E3\u5168\u8DEF\u5F84\u751F\u6210\u8BF7\u6C42\u51FD\u6570\u540D\n return changeCase.camelCase(interfaceInfo.path)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u5B58\u5728\u8BED\u6CD5\u5173\u952E\u8BCD\u62A5\u9519\u3001\u6216\u60F3\u901A\u8FC7\u67D0\u4E2A\u5173\u952E\u8BCD\u89E6\u53D1 IDE \u81EA\u52A8\u5F15\u5165\u63D0\u793A\uFF0C\u53EF\u8003\u8651\u52A0\u524D\u7F00\uFF0C\u5982:\n // return changeCase.camelCase(\\`api_\\${interfaceInfo.path}\\`)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u6709\u91CD\u590D\u62A5\u9519\uFF0C\u53EF\u8003\u8651\u5C06\u63A5\u53E3\u8BF7\u6C42\u65B9\u5F0F\u7EB3\u5165\u751F\u6210\u6761\u4EF6\uFF0C\u5982:\n // return changeCase.camelCase(\\`\\${interfaceInfo.method}_\\${interfaceInfo.path}\\`)\n },\n },\n ],\n },\n ],\n },\n ])\n "])), outputConfigFileType === 'js' ? 'javascript' : 'typescript', outputConfigFileType, outputConfigFileType));
192
-
193
- case 48:
194
- _consola.default.success('写入配置文件完毕');
195
-
196
- _context.next = 87;
197
- break;
198
-
199
- case 51:
200
- if (configFileExist) {
201
- _context.next = 53;
202
- break;
61
+ op = body.call(thisArg, _);
62
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
63
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
64
+ }
65
+ };
66
+ var __importDefault = (this && this.__importDefault) || function (mod) {
67
+ return (mod && mod.__esModule) ? mod : { "default": mod };
68
+ };
69
+ Object.defineProperty(exports, "__esModule", { value: true });
70
+ exports.run = void 0;
71
+ var TSNode = __importStar(require("ts-node"));
72
+ var consola_1 = __importDefault(require("consola"));
73
+ var fs_extra_1 = __importDefault(require("fs-extra"));
74
+ var ora_1 = __importDefault(require("ora"));
75
+ var path_1 = __importDefault(require("path"));
76
+ var prompts_1 = __importDefault(require("prompts"));
77
+ var yargs_1 = __importDefault(require("yargs"));
78
+ var vtils_1 = require("vtils");
79
+ var Generator_1 = require("./Generator");
80
+ TSNode.register({
81
+ // 不加载本地的 tsconfig.json
82
+ skipProject: true,
83
+ // 仅转译,不做类型检查
84
+ transpileOnly: true,
85
+ // 自定义编译选项
86
+ compilerOptions: {
87
+ strict: false,
88
+ target: 'es2017',
89
+ module: 'commonjs',
90
+ moduleResolution: 'node',
91
+ declaration: false,
92
+ removeComments: false,
93
+ esModuleInterop: true,
94
+ allowSyntheticDefaultImports: true,
95
+ importHelpers: false,
96
+ // 转换 js,支持在 ytt.config.js 里使用最新语法
97
+ allowJs: true,
98
+ lib: ['es2017'],
99
+ },
100
+ });
101
+ function run(cmd, options) {
102
+ var _a, _b, _c, _d, _e, _f;
103
+ return __awaiter(this, void 0, void 0, function () {
104
+ var useCustomConfigFile, cwd, configTSFile, configJSFile, configFile, configFileExist, configTSFileExist, configJSFileExist, _g, answers, outputConfigFile, outputConfigFileType, answers, config, generator, spinner_1, delayNotice, output, err_1;
105
+ return __generator(this, function (_h) {
106
+ switch (_h.label) {
107
+ case 0:
108
+ useCustomConfigFile = false;
109
+ if (!!(options === null || options === void 0 ? void 0 : options.configFile)) return [3 /*break*/, 4];
110
+ cwd = process.cwd();
111
+ configTSFile = path_1.default.join(cwd, 'ytt.config.ts');
112
+ configJSFile = path_1.default.join(cwd, 'ytt.config.js');
113
+ return [4 /*yield*/, fs_extra_1.default.pathExists(configTSFile)];
114
+ case 1:
115
+ configTSFileExist = _h.sent();
116
+ _g = !configTSFileExist;
117
+ if (!_g) return [3 /*break*/, 3];
118
+ return [4 /*yield*/, fs_extra_1.default.pathExists(configJSFile)];
119
+ case 2:
120
+ _g = (_h.sent());
121
+ _h.label = 3;
122
+ case 3:
123
+ configJSFileExist = _g;
124
+ configFileExist = configTSFileExist || configJSFileExist;
125
+ configFile = configTSFileExist ? configTSFile : configJSFile;
126
+ return [3 /*break*/, 6];
127
+ case 4:
128
+ useCustomConfigFile = true;
129
+ configFile = options.configFile;
130
+ cwd = path_1.default.dirname(configFile);
131
+ return [4 /*yield*/, fs_extra_1.default.pathExists(configFile)];
132
+ case 5:
133
+ configFileExist = _h.sent();
134
+ _h.label = 6;
135
+ case 6:
136
+ if (!(cmd === 'help')) return [3 /*break*/, 7];
137
+ console.log("\n".concat((0, vtils_1.dedent)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n # \u7528\u6CD5\n \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6: ytt init\n \u751F\u6210\u4EE3\u7801: ytt\n \u67E5\u770B\u5E2E\u52A9: ytt help\n\n # GitHub\n https://github.com/fjc0k/yapi-to-typescript\n "], ["\n # \u7528\u6CD5\n \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6: ytt init\n \u751F\u6210\u4EE3\u7801: ytt\n \u67E5\u770B\u5E2E\u52A9: ytt help\n\n # GitHub\n https://github.com/fjc0k/yapi-to-typescript\n "]))), "\n"));
138
+ return [3 /*break*/, 26];
139
+ case 7:
140
+ if (!(cmd === 'init')) return [3 /*break*/, 14];
141
+ if (!configFileExist) return [3 /*break*/, 9];
142
+ consola_1.default.info("\u68C0\u6D4B\u5230\u914D\u7F6E\u6587\u4EF6: ".concat(configFile));
143
+ return [4 /*yield*/, (0, prompts_1.default)({
144
+ message: '是否覆盖已有配置文件?',
145
+ name: 'override',
146
+ type: 'confirm',
147
+ })];
148
+ case 8:
149
+ answers = _h.sent();
150
+ if (!answers.override)
151
+ return [2 /*return*/];
152
+ _h.label = 9;
153
+ case 9:
154
+ outputConfigFile = void 0;
155
+ outputConfigFileType = void 0;
156
+ if (!useCustomConfigFile) return [3 /*break*/, 10];
157
+ outputConfigFile = configFile;
158
+ outputConfigFileType = configFile.endsWith('.js') ? 'js' : 'ts';
159
+ return [3 /*break*/, 12];
160
+ case 10: return [4 /*yield*/, (0, prompts_1.default)({
161
+ message: '选择配置文件类型?',
162
+ name: 'configFileType',
163
+ type: 'select',
164
+ choices: [
165
+ { title: 'TypeScript(ytt.config.ts)', value: 'ts' },
166
+ { title: 'JavaScript(ytt.config.js)', value: 'js' },
167
+ ],
168
+ })];
169
+ case 11:
170
+ answers = _h.sent();
171
+ outputConfigFile =
172
+ answers.configFileType === 'js' ? configJSFile : configTSFile;
173
+ outputConfigFileType = answers.configFileType;
174
+ _h.label = 12;
175
+ case 12: return [4 /*yield*/, fs_extra_1.default.outputFile(outputConfigFile, (0, vtils_1.dedent)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n import { defineConfig } from 'yapi-to-typescript2'\n\n export default defineConfig([\n {\n serverUrl: 'http://foo.bar',\n typesOnly: false,\n target: '", "',\n reactHooks: {\n enabled: false,\n },\n prodEnvName: 'production',\n outputFilePath: 'src/api/index.", "',\n requestFunctionFilePath: 'src/api/request.", "',\n dataKey: 'data',\n projects: [\n {\n token: 'hello',\n categories: [\n {\n id: 0,\n getRequestFunctionName(interfaceInfo, changeCase) {\n // \u4EE5\u63A5\u53E3\u5168\u8DEF\u5F84\u751F\u6210\u8BF7\u6C42\u51FD\u6570\u540D\n return changeCase.camelCase(interfaceInfo.path)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u5B58\u5728\u8BED\u6CD5\u5173\u952E\u8BCD\u62A5\u9519\u3001\u6216\u60F3\u901A\u8FC7\u67D0\u4E2A\u5173\u952E\u8BCD\u89E6\u53D1 IDE \u81EA\u52A8\u5F15\u5165\u63D0\u793A\uFF0C\u53EF\u8003\u8651\u52A0\u524D\u7F00\uFF0C\u5982:\n // return changeCase.camelCase(`api_${interfaceInfo.path}`)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u6709\u91CD\u590D\u62A5\u9519\uFF0C\u53EF\u8003\u8651\u5C06\u63A5\u53E3\u8BF7\u6C42\u65B9\u5F0F\u7EB3\u5165\u751F\u6210\u6761\u4EF6\uFF0C\u5982:\n // return changeCase.camelCase(`${interfaceInfo.method}_${interfaceInfo.path}`)\n },\n },\n ],\n },\n ],\n },\n ])\n "], ["\n import { defineConfig } from 'yapi-to-typescript2'\n\n export default defineConfig([\n {\n serverUrl: 'http://foo.bar',\n typesOnly: false,\n target: '", "',\n reactHooks: {\n enabled: false,\n },\n prodEnvName: 'production',\n outputFilePath: 'src/api/index.", "',\n requestFunctionFilePath: 'src/api/request.", "',\n dataKey: 'data',\n projects: [\n {\n token: 'hello',\n categories: [\n {\n id: 0,\n getRequestFunctionName(interfaceInfo, changeCase) {\n // \u4EE5\u63A5\u53E3\u5168\u8DEF\u5F84\u751F\u6210\u8BF7\u6C42\u51FD\u6570\u540D\n return changeCase.camelCase(interfaceInfo.path)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u5B58\u5728\u8BED\u6CD5\u5173\u952E\u8BCD\u62A5\u9519\u3001\u6216\u60F3\u901A\u8FC7\u67D0\u4E2A\u5173\u952E\u8BCD\u89E6\u53D1 IDE \u81EA\u52A8\u5F15\u5165\u63D0\u793A\uFF0C\u53EF\u8003\u8651\u52A0\u524D\u7F00\uFF0C\u5982:\n // return changeCase.camelCase(\\`api_\\${interfaceInfo.path}\\`)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u6709\u91CD\u590D\u62A5\u9519\uFF0C\u53EF\u8003\u8651\u5C06\u63A5\u53E3\u8BF7\u6C42\u65B9\u5F0F\u7EB3\u5165\u751F\u6210\u6761\u4EF6\uFF0C\u5982:\n // return changeCase.camelCase(\\`\\${interfaceInfo.method}_\\${interfaceInfo.path}\\`)\n },\n },\n ],\n },\n ],\n },\n ])\n "])), (outputConfigFileType === 'js'
176
+ ? 'javascript'
177
+ : 'typescript'), outputConfigFileType, outputConfigFileType))];
178
+ case 13:
179
+ _h.sent();
180
+ consola_1.default.success('写入配置文件完毕');
181
+ return [3 /*break*/, 26];
182
+ case 14:
183
+ if (!configFileExist) {
184
+ return [2 /*return*/, consola_1.default.error("\u627E\u4E0D\u5230\u914D\u7F6E\u6587\u4EF6: ".concat(useCustomConfigFile
185
+ ? configFile
186
+ : "".concat(configTSFile, " \u6216 ").concat(configJSFile)))];
187
+ }
188
+ consola_1.default.success("\u627E\u5230\u914D\u7F6E\u6587\u4EF6: ".concat(configFile));
189
+ config = void 0;
190
+ generator = void 0;
191
+ _h.label = 15;
192
+ case 15:
193
+ _h.trys.push([15, 21, , 24]);
194
+ config = require(configFile).default;
195
+ generator = new Generator_1.Generator(config, { cwd: cwd });
196
+ spinner_1 = (0, ora_1.default)('正在获取数据并生成代码...').start();
197
+ delayNotice = (0, vtils_1.wait)(5000);
198
+ delayNotice.then(function () {
199
+ spinner_1.text = "\u6B63\u5728\u83B7\u53D6\u6570\u636E\u5E76\u751F\u6210\u4EE3\u7801... (\u82E5\u957F\u65F6\u95F4\u5904\u4E8E\u6B64\u72B6\u6001\uFF0C\u8BF7\u68C0\u67E5\u662F\u5426\u6709\u63A5\u53E3\u5B9A\u4E49\u7684\u6570\u636E\u8FC7\u5927\u5BFC\u81F4\u62C9\u53D6\u6216\u89E3\u6790\u7F13\u6162)";
200
+ });
201
+ return [4 /*yield*/, generator.prepare()];
202
+ case 16:
203
+ _h.sent();
204
+ delayNotice.cancel();
205
+ return [4 /*yield*/, generator.generate()];
206
+ case 17:
207
+ output = _h.sent();
208
+ spinner_1.stop();
209
+ consola_1.default.success('获取数据并生成代码完毕');
210
+ return [4 /*yield*/, generator.write(output)];
211
+ case 18:
212
+ _h.sent();
213
+ consola_1.default.success('写入文件完毕');
214
+ return [4 /*yield*/, generator.destroy()];
215
+ case 19:
216
+ _h.sent();
217
+ return [4 /*yield*/, ((_b = (_a = config.hooks) === null || _a === void 0 ? void 0 : _a.success) === null || _b === void 0 ? void 0 : _b.call(_a))];
218
+ case 20:
219
+ _h.sent();
220
+ return [3 /*break*/, 24];
221
+ case 21:
222
+ err_1 = _h.sent();
223
+ spinner_1 === null || spinner_1 === void 0 ? void 0 : spinner_1.stop();
224
+ return [4 /*yield*/, (generator === null || generator === void 0 ? void 0 : generator.destroy())];
225
+ case 22:
226
+ _h.sent();
227
+ return [4 /*yield*/, ((_d = (_c = config === null || config === void 0 ? void 0 : config.hooks) === null || _c === void 0 ? void 0 : _c.fail) === null || _d === void 0 ? void 0 : _d.call(_c))
228
+ /* istanbul ignore next */
229
+ ];
230
+ case 23:
231
+ _h.sent();
232
+ /* istanbul ignore next */
233
+ consola_1.default.error(err_1);
234
+ return [3 /*break*/, 24];
235
+ case 24: return [4 /*yield*/, ((_f = (_e = config === null || config === void 0 ? void 0 : config.hooks) === null || _e === void 0 ? void 0 : _e.complete) === null || _f === void 0 ? void 0 : _f.call(_e))];
236
+ case 25:
237
+ _h.sent();
238
+ _h.label = 26;
239
+ case 26: return [2 /*return*/];
203
240
  }
204
-
205
- return _context.abrupt("return", _consola.default.error("\u627E\u4E0D\u5230\u914D\u7F6E\u6587\u4EF6: " + (useCustomConfigFile ? configFile : configTSFile + " \u6216 " + configJSFile)));
206
-
207
- case 53:
208
- _consola.default.success("\u627E\u5230\u914D\u7F6E\u6587\u4EF6: " + configFile);
209
-
210
- _context.prev = 54;
211
- config = require(configFile).default;
212
- generator = new _Generator.Generator(config, {
213
- cwd: cwd
214
- });
215
- spinner = (0, _ora.default)('正在获取数据并生成代码...').start();
216
- delayNotice = (0, _vtils.wait)(5000);
217
- delayNotice.then(function () {
218
- spinner.text = "\u6B63\u5728\u83B7\u53D6\u6570\u636E\u5E76\u751F\u6210\u4EE3\u7801... (\u82E5\u957F\u65F6\u95F4\u5904\u4E8E\u6B64\u72B6\u6001\uFF0C\u8BF7\u68C0\u67E5\u662F\u5426\u6709\u63A5\u53E3\u5B9A\u4E49\u7684\u6570\u636E\u8FC7\u5927\u5BFC\u81F4\u62C9\u53D6\u6216\u89E3\u6790\u7F13\u6162)";
219
- });
220
- _context.next = 62;
221
- return generator.prepare();
222
-
223
- case 62:
224
- delayNotice.cancel();
225
- _context.next = 65;
226
- return generator.generate();
227
-
228
- case 65:
229
- output = _context.sent;
230
- spinner.stop();
231
-
232
- _consola.default.success('获取数据并生成代码完毕');
233
-
234
- _context.next = 70;
235
- return generator.write(output);
236
-
237
- case 70:
238
- _consola.default.success('写入文件完毕');
239
-
240
- _context.next = 73;
241
- return generator.destroy();
242
-
243
- case 73:
244
- _context.next = 75;
245
- return (_hooks = config.hooks) == null ? void 0 : _hooks.success == null ? void 0 : _hooks.success();
246
-
247
- case 75:
248
- _context.next = 85;
249
- break;
250
-
251
- case 77:
252
- _context.prev = 77;
253
- _context.t1 = _context["catch"](54);
254
- (_spinner = spinner) == null ? void 0 : _spinner.stop();
255
- _context.next = 82;
256
- return (_generator = generator) == null ? void 0 : _generator.destroy();
257
-
258
- case 82:
259
- _context.next = 84;
260
- return (_config = config) == null ? void 0 : (_config$hooks = _config.hooks) == null ? void 0 : _config$hooks.fail == null ? void 0 : _config$hooks.fail();
261
-
262
- case 84:
263
- /* istanbul ignore next */
264
- _consola.default.error(_context.t1);
265
-
266
- case 85:
267
- _context.next = 87;
268
- return (_config2 = config) == null ? void 0 : (_config2$hooks = _config2.hooks) == null ? void 0 : _config2$hooks.complete == null ? void 0 : _config2$hooks.complete();
269
-
270
- case 87:
271
- case "end":
272
- return _context.stop();
273
- }
274
- }
275
- }, _callee, null, [[54, 77]]);
276
- }));
277
- return _run.apply(this, arguments);
241
+ });
242
+ });
278
243
  }
279
-
244
+ exports.run = run;
245
+ /* istanbul ignore next */
280
246
  if (require.main === module) {
281
- var argv = (0, _yargs.default)(process.argv).alias('c', 'config').argv;
282
- run(argv._[2], {
283
- configFile: argv.config ? _path.default.resolve(process.cwd(), argv.config) : undefined
284
- });
285
- }
247
+ var argv = (0, yargs_1.default)(process.argv).alias('c', 'config').argv;
248
+ run(argv._[2], {
249
+ configFile: argv.config
250
+ ? path_1.default.resolve(process.cwd(), argv.config)
251
+ : undefined,
252
+ });
253
+ }
254
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,49 @@
1
+ import { CliHooks, Config, ConfigWithHooks, RequestConfig, RequestFunctionParams } from './types';
2
+ import type { AppendOptions } from 'form-data';
3
+ /**
4
+ * 定义配置。
5
+ *
6
+ * @param config 配置
7
+ */
8
+ export declare function defineConfig(config: Config, hooks?: CliHooks): ConfigWithHooks;
9
+ export declare class FileData<T = any> {
10
+ /**
11
+ * 原始文件数据。
12
+ */
13
+ private originalFileData;
14
+ /**
15
+ * 选项。
16
+ */
17
+ private options;
18
+ /**
19
+ * 文件数据辅助类,统一网页、小程序等平台的文件上传。
20
+ *
21
+ * @param originalFileData 原始文件数据
22
+ * @param options 若使用内部的 getFormData,则选项会被其使用
23
+ */
24
+ constructor(originalFileData: T, options?: AppendOptions);
25
+ /**
26
+ * 获取原始文件数据。
27
+ *
28
+ * @returns 原始文件数据
29
+ */
30
+ getOriginalFileData(): T;
31
+ /**
32
+ * 获取选项。
33
+ */
34
+ getOptions(): AppendOptions | undefined;
35
+ }
36
+ /**
37
+ * 解析请求数据,从请求数据中分离出普通数据和文件数据。
38
+ *
39
+ * @param requestData 要解析的请求数据
40
+ * @returns 包含普通数据(data)和文件数据(fileData)的对象,data、fileData 为空对象时,表示没有此类数据
41
+ */
42
+ export declare function parseRequestData(requestData?: any): {
43
+ data: any;
44
+ fileData: any;
45
+ };
46
+ /**
47
+ * 准备要传给请求函数的参数。
48
+ */
49
+ export declare function prepare(requestConfig: RequestConfig, requestData: any): RequestFunctionParams;