@tronsfey/openapi2cli 1.0.10 → 1.0.12
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/README.md +160 -15
- package/README.zh.md +157 -16
- package/dist/cache.d.ts +23 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +98 -0
- package/dist/cache.js.map +1 -0
- package/dist/completer.d.ts +11 -0
- package/dist/completer.d.ts.map +1 -0
- package/dist/completer.js +223 -0
- package/dist/completer.js.map +1 -0
- package/dist/index.js +100 -13
- package/dist/index.js.map +1 -1
- package/dist/runner/http-client.d.ts +27 -0
- package/dist/runner/http-client.d.ts.map +1 -0
- package/dist/runner/http-client.js +199 -0
- package/dist/runner/http-client.js.map +1 -0
- package/dist/runner/output.d.ts +2 -0
- package/dist/runner/output.d.ts.map +1 -0
- package/dist/runner/output.js +40 -0
- package/dist/runner/output.js.map +1 -0
- package/dist/runner/proxy-runner.d.ts +15 -0
- package/dist/runner/proxy-runner.d.ts.map +1 -0
- package/dist/runner/proxy-runner.js +308 -0
- package/dist/runner/proxy-runner.js.map +1 -0
- package/package.json +12 -5
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shell completion script generators for openapi2cli.
|
|
4
|
+
*
|
|
5
|
+
* Each function returns a string that can be sourced by the user's shell.
|
|
6
|
+
* Dynamic operation completion (after `run --oas <spec>`) is handled by
|
|
7
|
+
* calling back into the hidden `__completions` subcommand.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.generateBashCompletion = generateBashCompletion;
|
|
11
|
+
exports.generateZshCompletion = generateZshCompletion;
|
|
12
|
+
exports.generateFishCompletion = generateFishCompletion;
|
|
13
|
+
const RUN_FLAGS = '--oas --bearer --api-key --api-key-header --basic --header --endpoint --help';
|
|
14
|
+
const GENERATE_FLAGS = '--oas --name --output --overwrite --help';
|
|
15
|
+
const TOP_COMMANDS = 'generate run completion help';
|
|
16
|
+
const COMPLETION_SHELLS = 'bash zsh fish';
|
|
17
|
+
// ─── Bash ─────────────────────────────────────────────────────────────────────
|
|
18
|
+
function generateBashCompletion() {
|
|
19
|
+
return [
|
|
20
|
+
'# bash completion for openapi2cli',
|
|
21
|
+
'# Source this file or add the following line to ~/.bashrc / ~/.bash_profile:',
|
|
22
|
+
'# eval "$(openapi2cli completion bash)"',
|
|
23
|
+
'',
|
|
24
|
+
'_openapi2cli() {',
|
|
25
|
+
' local cur prev words cword',
|
|
26
|
+
' _init_completion 2>/dev/null || {',
|
|
27
|
+
' COMPREPLY=()',
|
|
28
|
+
' cur="${COMP_WORDS[COMP_CWORD]}"',
|
|
29
|
+
' prev="${COMP_WORDS[COMP_CWORD-1]}"',
|
|
30
|
+
' words=("${COMP_WORDS[@]}")',
|
|
31
|
+
' cword=$COMP_CWORD',
|
|
32
|
+
' }',
|
|
33
|
+
'',
|
|
34
|
+
' # Find the subcommand (first non-flag word after "openapi2cli")',
|
|
35
|
+
' local subcmd=""',
|
|
36
|
+
' local oas_path=""',
|
|
37
|
+
' local group=""',
|
|
38
|
+
' local i',
|
|
39
|
+
' for ((i=1; i<cword; i++)); do',
|
|
40
|
+
' case "${words[i]}" in',
|
|
41
|
+
' --oas) oas_path="${words[i+1]:-}"; ((i++)) ;;',
|
|
42
|
+
' generate|run|completion) subcmd="${words[i]}" ;;',
|
|
43
|
+
' --*) ;; # skip other flags',
|
|
44
|
+
' *) [[ -n "$subcmd" && -z "$group" ]] && group="${words[i]}" ;;',
|
|
45
|
+
' esac',
|
|
46
|
+
' done',
|
|
47
|
+
'',
|
|
48
|
+
' case "$prev" in',
|
|
49
|
+
' --oas|--output)',
|
|
50
|
+
' COMPREPLY=($(compgen -f -- "$cur"))',
|
|
51
|
+
' return ;;',
|
|
52
|
+
' --format)',
|
|
53
|
+
' COMPREPLY=($(compgen -W "json yaml table" -- "$cur"))',
|
|
54
|
+
' return ;;',
|
|
55
|
+
' --api-key-header)',
|
|
56
|
+
' COMPREPLY=($(compgen -W "X-Api-Key Authorization X-Token" -- "$cur"))',
|
|
57
|
+
' return ;;',
|
|
58
|
+
' completion)',
|
|
59
|
+
` COMPREPLY=($(compgen -W "${COMPLETION_SHELLS}" -- "$cur"))`,
|
|
60
|
+
' return ;;',
|
|
61
|
+
' esac',
|
|
62
|
+
'',
|
|
63
|
+
' case "$subcmd" in',
|
|
64
|
+
' "")',
|
|
65
|
+
` COMPREPLY=($(compgen -W "${TOP_COMMANDS}" -- "$cur"))`,
|
|
66
|
+
' ;;',
|
|
67
|
+
' generate)',
|
|
68
|
+
` COMPREPLY=($(compgen -W "${GENERATE_FLAGS}" -- "$cur"))`,
|
|
69
|
+
' ;;',
|
|
70
|
+
' run)',
|
|
71
|
+
' if [[ -n "$oas_path" && -n "$group" ]]; then',
|
|
72
|
+
' # Complete operation names within the group',
|
|
73
|
+
' local ops',
|
|
74
|
+
' ops=$(openapi2cli __completions --oas "$oas_path" --group "$group" 2>/dev/null)',
|
|
75
|
+
' COMPREPLY=($(compgen -W "$ops" -- "$cur"))',
|
|
76
|
+
' elif [[ -n "$oas_path" && "$cur" != -* ]]; then',
|
|
77
|
+
' # Complete group names',
|
|
78
|
+
' local groups',
|
|
79
|
+
' groups=$(openapi2cli __completions --oas "$oas_path" 2>/dev/null)',
|
|
80
|
+
' COMPREPLY=($(compgen -W "$groups" -- "$cur"))',
|
|
81
|
+
' else',
|
|
82
|
+
` COMPREPLY=($(compgen -W "${RUN_FLAGS}" -- "$cur"))`,
|
|
83
|
+
' fi',
|
|
84
|
+
' ;;',
|
|
85
|
+
' esac',
|
|
86
|
+
'}',
|
|
87
|
+
'',
|
|
88
|
+
'complete -F _openapi2cli openapi2cli',
|
|
89
|
+
'',
|
|
90
|
+
].join('\n');
|
|
91
|
+
}
|
|
92
|
+
// ─── Zsh ──────────────────────────────────────────────────────────────────────
|
|
93
|
+
function generateZshCompletion() {
|
|
94
|
+
return [
|
|
95
|
+
'#compdef openapi2cli',
|
|
96
|
+
'# zsh completion for openapi2cli',
|
|
97
|
+
'# Source this file or add the following to ~/.zshrc:',
|
|
98
|
+
'# eval "$(openapi2cli completion zsh)"',
|
|
99
|
+
'',
|
|
100
|
+
'_openapi2cli() {',
|
|
101
|
+
' local state line',
|
|
102
|
+
' typeset -A opt_args',
|
|
103
|
+
'',
|
|
104
|
+
' _arguments -C \\',
|
|
105
|
+
" '(-h --help)'{-h,--help}'[Show help]' \\",
|
|
106
|
+
" '(-V --version)'{-V,--version}'[Show version]' \\",
|
|
107
|
+
" '1: :->subcmd' \\",
|
|
108
|
+
" '*:: :->args'",
|
|
109
|
+
'',
|
|
110
|
+
' case $state in',
|
|
111
|
+
' subcmd)',
|
|
112
|
+
' local -a cmds',
|
|
113
|
+
' cmds=(',
|
|
114
|
+
" 'generate:Generate a Commander.js CLI project from an OpenAPI spec'",
|
|
115
|
+
" 'run:Directly call an OpenAPI endpoint without generating code'",
|
|
116
|
+
" 'completion:Output shell completion script'",
|
|
117
|
+
" 'help:Display help'",
|
|
118
|
+
' )',
|
|
119
|
+
" _describe 'command' cmds",
|
|
120
|
+
' ;;',
|
|
121
|
+
' args)',
|
|
122
|
+
' case $line[1] in',
|
|
123
|
+
' generate)',
|
|
124
|
+
' _arguments \\',
|
|
125
|
+
" '--oas[Path or URL to the OpenAPI spec file]:spec:_files' \\",
|
|
126
|
+
" '--name[CLI executable name]:name' \\",
|
|
127
|
+
" '--output[Output directory]:dir:_files -/' \\",
|
|
128
|
+
" '--overwrite[Overwrite existing output directory]' \\",
|
|
129
|
+
" '(-h --help)'{-h,--help}'[Show help]'",
|
|
130
|
+
' ;;',
|
|
131
|
+
' run)',
|
|
132
|
+
' _arguments -C \\',
|
|
133
|
+
" '--oas[Path or URL to the OpenAPI spec file]:spec:_files' \\",
|
|
134
|
+
" '--bearer[Bearer token]:token' \\",
|
|
135
|
+
" '--api-key[API key value]:key' \\",
|
|
136
|
+
" '--api-key-header[API key header name]:header:(X-Api-Key Authorization X-Token)' \\",
|
|
137
|
+
" '--basic[HTTP Basic credentials (user\\:pass)]:credentials' \\",
|
|
138
|
+
" '--header[Extra HTTP header (Name\\: Value)]:header' \\",
|
|
139
|
+
" '--endpoint[Override base URL]:url' \\",
|
|
140
|
+
" '(-h --help)'{-h,--help}'[Show help]' \\",
|
|
141
|
+
" '1: :->group' \\",
|
|
142
|
+
" '2: :->operation' \\",
|
|
143
|
+
" '*:: :->op_args'",
|
|
144
|
+
'',
|
|
145
|
+
' local oas_path="${opt_args[--oas]}"',
|
|
146
|
+
'',
|
|
147
|
+
' case $state in',
|
|
148
|
+
' group)',
|
|
149
|
+
' if [[ -n "$oas_path" ]]; then',
|
|
150
|
+
' local -a groups',
|
|
151
|
+
' groups=($(openapi2cli __completions --oas "$oas_path" 2>/dev/null))',
|
|
152
|
+
" _describe 'command group' groups",
|
|
153
|
+
' fi',
|
|
154
|
+
' ;;',
|
|
155
|
+
' operation)',
|
|
156
|
+
' if [[ -n "$oas_path" && -n "$line[1]" ]]; then',
|
|
157
|
+
' local -a ops',
|
|
158
|
+
' ops=($(openapi2cli __completions --oas "$oas_path" --group "$line[1]" 2>/dev/null))',
|
|
159
|
+
" _describe 'operation' ops",
|
|
160
|
+
' fi',
|
|
161
|
+
' ;;',
|
|
162
|
+
' op_args)',
|
|
163
|
+
' _arguments \\',
|
|
164
|
+
" '--format[Output format]:fmt:(json yaml table)' \\",
|
|
165
|
+
" '--query[JMESPath expression]:expr' \\",
|
|
166
|
+
" '--all-pages[Auto-paginate]' \\",
|
|
167
|
+
" '--verbose[Log HTTP method and URL]'",
|
|
168
|
+
' ;;',
|
|
169
|
+
' esac',
|
|
170
|
+
' ;;',
|
|
171
|
+
' completion)',
|
|
172
|
+
" _arguments '1: :(bash zsh fish)'",
|
|
173
|
+
' ;;',
|
|
174
|
+
' esac',
|
|
175
|
+
' ;;',
|
|
176
|
+
' esac',
|
|
177
|
+
'}',
|
|
178
|
+
'',
|
|
179
|
+
'_openapi2cli "$@"',
|
|
180
|
+
'',
|
|
181
|
+
].join('\n');
|
|
182
|
+
}
|
|
183
|
+
// ─── Fish ─────────────────────────────────────────────────────────────────────
|
|
184
|
+
function generateFishCompletion() {
|
|
185
|
+
return [
|
|
186
|
+
'# fish completion for openapi2cli',
|
|
187
|
+
'# Save this file to: ~/.config/fish/completions/openapi2cli.fish',
|
|
188
|
+
'# Or run: openapi2cli completion fish > ~/.config/fish/completions/openapi2cli.fish',
|
|
189
|
+
'',
|
|
190
|
+
'# Disable file completions for the main command',
|
|
191
|
+
'complete -c openapi2cli -f',
|
|
192
|
+
'',
|
|
193
|
+
'# Top-level subcommands',
|
|
194
|
+
"complete -c openapi2cli -n '__fish_use_subcommand' -a 'generate' -d 'Generate a CLI project from an OpenAPI spec'",
|
|
195
|
+
"complete -c openapi2cli -n '__fish_use_subcommand' -a 'run' -d 'Call an OpenAPI endpoint directly'",
|
|
196
|
+
"complete -c openapi2cli -n '__fish_use_subcommand' -a 'completion' -d 'Output shell completion script'",
|
|
197
|
+
"complete -c openapi2cli -n '__fish_use_subcommand' -a 'help' -d 'Display help'",
|
|
198
|
+
'',
|
|
199
|
+
'# generate flags',
|
|
200
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l oas -r -d 'Path or URL to the OpenAPI spec'",
|
|
201
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l name -r -d 'CLI executable name'",
|
|
202
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l output -r -d 'Output directory'",
|
|
203
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l overwrite -d 'Overwrite existing output'",
|
|
204
|
+
'',
|
|
205
|
+
'# run flags',
|
|
206
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l oas -r -d 'Path or URL to the OpenAPI spec'",
|
|
207
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l bearer -r -d 'Bearer token'",
|
|
208
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l api-key -r -d 'API key value'",
|
|
209
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l api-key-header -r -d 'API key header name'",
|
|
210
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l basic -r -d 'HTTP Basic credentials (user:pass)'",
|
|
211
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l header -r -d 'Extra HTTP header (Name: Value)'",
|
|
212
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l endpoint -r -d 'Override base URL'",
|
|
213
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l format -r -d 'Output format' -a 'json yaml table'",
|
|
214
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l query -r -d 'JMESPath expression'",
|
|
215
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l all-pages -d 'Auto-paginate'",
|
|
216
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l verbose -d 'Log HTTP method and URL'",
|
|
217
|
+
'',
|
|
218
|
+
'# completion shells',
|
|
219
|
+
"complete -c openapi2cli -n '__fish_seen_subcommand_from completion' -a 'bash zsh fish' -d 'Shell type'",
|
|
220
|
+
'',
|
|
221
|
+
].join('\n');
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=completer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completer.js","sourceRoot":"","sources":["../src/completer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -42,28 +42,118 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
42
42
|
const ora_1 = __importDefault(require("ora"));
|
|
43
43
|
const fse = __importStar(require("fs-extra"));
|
|
44
44
|
const path = __importStar(require("path"));
|
|
45
|
-
const
|
|
45
|
+
const cache_1 = require("./cache");
|
|
46
46
|
const schema_analyzer_1 = require("./analyzer/schema-analyzer");
|
|
47
47
|
const command_generator_1 = require("./generator/command-generator");
|
|
48
|
+
const proxy_runner_1 = require("./runner/proxy-runner");
|
|
49
|
+
const completer_1 = require("./completer");
|
|
50
|
+
const package_json_1 = require("../package.json");
|
|
48
51
|
const program = new commander_1.Command();
|
|
49
52
|
program
|
|
50
53
|
.name('openapi2cli')
|
|
51
|
-
.description('Generate a typed CLI from an OpenAPI 3.x specification')
|
|
52
|
-
.version(
|
|
54
|
+
.description('Generate a typed CLI from an OpenAPI 3.x specification, or proxy one directly')
|
|
55
|
+
.version(package_json_1.version)
|
|
56
|
+
.enablePositionalOptions(true);
|
|
57
|
+
// ─── generate ────────────────────────────────────────────────────────────────
|
|
58
|
+
program
|
|
59
|
+
.command('generate')
|
|
60
|
+
.description('Generate a Commander.js CLI project from an OpenAPI spec')
|
|
53
61
|
.requiredOption('--oas <path-or-url>', 'Path or URL to the OpenAPI spec file')
|
|
54
62
|
.requiredOption('--name <cli-name>', 'Name for the generated CLI tool')
|
|
55
63
|
.requiredOption('--output <dir>', 'Output directory for the generated project')
|
|
56
64
|
.option('--overwrite', 'Overwrite output directory if it exists', false)
|
|
65
|
+
.option('--no-cache', 'Bypass spec cache (always re-fetch remote specs)')
|
|
66
|
+
.option('--cache-ttl <seconds>', 'Remote spec cache TTL in seconds', parseInt, 3600)
|
|
67
|
+
.action(async (opts) => {
|
|
68
|
+
await generate(opts);
|
|
69
|
+
});
|
|
70
|
+
// ─── run (proxy mode) ────────────────────────────────────────────────────────
|
|
71
|
+
program
|
|
72
|
+
.command('run', { isDefault: false })
|
|
73
|
+
.description('Directly call an OpenAPI endpoint without generating code')
|
|
74
|
+
.requiredOption('--oas <path-or-url>', 'Path or URL to the OpenAPI spec file')
|
|
75
|
+
.option('--bearer <token>', 'Bearer token → Authorization: Bearer <token>')
|
|
76
|
+
.option('--api-key <key>', 'API key value')
|
|
77
|
+
.option('--api-key-header <header>', 'Header name for API key (default: X-Api-Key)', 'X-Api-Key')
|
|
78
|
+
.option('--basic <credentials>', 'HTTP Basic credentials (user:password)')
|
|
79
|
+
.option('--header <header>', 'Extra HTTP header "Name: Value" (repeatable)', collect, [])
|
|
80
|
+
.option('--endpoint <url>', 'Override base URL from the spec')
|
|
81
|
+
.option('--timeout <ms>', 'Request timeout in milliseconds', parseInt, 30000)
|
|
82
|
+
.option('--retries <n>', 'Max retry attempts for 5xx/network errors', parseInt, 3)
|
|
83
|
+
.option('--no-cache', 'Bypass spec cache (always re-fetch remote specs)')
|
|
84
|
+
.option('--cache-ttl <seconds>', 'Remote spec cache TTL in seconds', parseInt, 3600)
|
|
85
|
+
.allowUnknownOption(true)
|
|
86
|
+
.passThroughOptions(true)
|
|
87
|
+
.action(async function (opts) {
|
|
88
|
+
// Commander uses `cache: false` when user passes --no-cache
|
|
89
|
+
const proxyOpts = { ...opts, noCache: opts.cache === false };
|
|
90
|
+
const remaining = this.args;
|
|
91
|
+
await (0, proxy_runner_1.proxyRun)(proxyOpts, remaining);
|
|
92
|
+
});
|
|
93
|
+
// ─── completion ──────────────────────────────────────────────────────────────
|
|
94
|
+
program
|
|
95
|
+
.command('completion [shell]')
|
|
96
|
+
.description('Output shell completion script (bash, zsh, fish)')
|
|
97
|
+
.action((shell) => {
|
|
98
|
+
const s = (shell ?? 'bash').toLowerCase();
|
|
99
|
+
if (s === 'bash') {
|
|
100
|
+
process.stdout.write((0, completer_1.generateBashCompletion)());
|
|
101
|
+
}
|
|
102
|
+
else if (s === 'zsh') {
|
|
103
|
+
process.stdout.write((0, completer_1.generateZshCompletion)());
|
|
104
|
+
}
|
|
105
|
+
else if (s === 'fish') {
|
|
106
|
+
process.stdout.write((0, completer_1.generateFishCompletion)());
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
console.error(chalk_1.default.red('Unknown shell:'), shell);
|
|
110
|
+
console.error('Supported shells: bash, zsh, fish');
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
// ─── __completions (hidden — used by completion scripts) ─────────────────────
|
|
115
|
+
program
|
|
116
|
+
.command('__completions', { hidden: true })
|
|
117
|
+
.option('--oas <path>', 'Path or URL to the OpenAPI spec')
|
|
118
|
+
.option('--group <group>', 'Return operation names for this group')
|
|
119
|
+
.option('--flat', 'Return flat (untagged) operation names')
|
|
57
120
|
.action(async (opts) => {
|
|
58
|
-
|
|
121
|
+
if (!opts.oas)
|
|
122
|
+
return;
|
|
123
|
+
try {
|
|
124
|
+
// Use cache with a generous TTL so completions are fast
|
|
125
|
+
const api = await (0, cache_1.parseOASWithCache)(opts.oas, { ttlMs: 3600000 });
|
|
126
|
+
const structure = (0, schema_analyzer_1.analyzeSchema)(api, '_proxy_');
|
|
127
|
+
if (opts.group) {
|
|
128
|
+
const g = structure.groups.find(gr => gr.name === opts.group);
|
|
129
|
+
if (g)
|
|
130
|
+
process.stdout.write(g.subcommands.map(s => s.name).join('\n') + '\n');
|
|
131
|
+
}
|
|
132
|
+
else if (opts.flat) {
|
|
133
|
+
process.stdout.write(structure.flatCommands.map(s => s.name).join('\n') + '\n');
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
process.stdout.write(structure.groups.map(g => g.name).join('\n') + '\n');
|
|
137
|
+
if (structure.flatCommands.length > 0) {
|
|
138
|
+
process.stdout.write(structure.flatCommands.map(s => s.name).join('\n') + '\n');
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
// Silently fail — completion should never break the user's shell
|
|
144
|
+
}
|
|
59
145
|
});
|
|
60
146
|
program.parseAsync(process.argv).catch((err) => {
|
|
61
147
|
console.error(chalk_1.default.red('Fatal:'), err.message);
|
|
62
148
|
process.exit(1);
|
|
63
149
|
});
|
|
64
|
-
|
|
150
|
+
// ─── helpers ─────────────────────────────────────────────────────────────────
|
|
151
|
+
function collect(val, acc) {
|
|
152
|
+
acc.push(val);
|
|
153
|
+
return acc;
|
|
154
|
+
}
|
|
155
|
+
async function generate(opts) {
|
|
65
156
|
const outputDir = path.resolve(process.cwd(), opts.output);
|
|
66
|
-
// Pre-flight: check output directory
|
|
67
157
|
if (await fse.pathExists(outputDir)) {
|
|
68
158
|
if (!opts.overwrite) {
|
|
69
159
|
console.error(chalk_1.default.red('Error:'), `Output directory already exists: ${outputDir}`);
|
|
@@ -72,18 +162,19 @@ async function run(opts) {
|
|
|
72
162
|
}
|
|
73
163
|
await fse.remove(outputDir);
|
|
74
164
|
}
|
|
75
|
-
// Step 1: Parse OAS
|
|
76
165
|
const parseSpinner = (0, ora_1.default)('Parsing OpenAPI spec...').start();
|
|
77
166
|
let api;
|
|
78
167
|
try {
|
|
79
|
-
api = await (0,
|
|
168
|
+
api = await (0, cache_1.parseOASWithCache)(opts.oas, {
|
|
169
|
+
noCache: opts.cache === false,
|
|
170
|
+
ttlMs: opts.cacheTtl * 1000,
|
|
171
|
+
});
|
|
80
172
|
parseSpinner.succeed(chalk_1.default.green(`Parsed: ${api.info.title} v${api.info.version}`));
|
|
81
173
|
}
|
|
82
174
|
catch (err) {
|
|
83
175
|
parseSpinner.fail('Failed to parse OpenAPI spec');
|
|
84
176
|
throw err;
|
|
85
177
|
}
|
|
86
|
-
// Step 2: Analyze schema
|
|
87
178
|
const analyzeSpinner = (0, ora_1.default)('Analyzing schema...').start();
|
|
88
179
|
const structure = (0, schema_analyzer_1.analyzeSchema)(api, opts.name);
|
|
89
180
|
const groupCount = structure.groups.length;
|
|
@@ -93,7 +184,6 @@ async function run(opts) {
|
|
|
93
184
|
flatCount > 0 ? `${flatCount} flat command(s)` : '',
|
|
94
185
|
].filter(Boolean).join(', ');
|
|
95
186
|
analyzeSpinner.succeed(chalk_1.default.green(`Found ${summary}`));
|
|
96
|
-
// Print any naming warnings collected during analysis
|
|
97
187
|
if (structure.warnings.length > 0) {
|
|
98
188
|
console.log('');
|
|
99
189
|
console.log(chalk_1.default.yellow(' ⚠ 规范性警告 (建议修复 OpenAPI 定义):'));
|
|
@@ -102,7 +192,6 @@ async function run(opts) {
|
|
|
102
192
|
}
|
|
103
193
|
console.log('');
|
|
104
194
|
}
|
|
105
|
-
// Step 3: Generate project files
|
|
106
195
|
const genSpinner = (0, ora_1.default)('Generating project files...').start();
|
|
107
196
|
let files;
|
|
108
197
|
try {
|
|
@@ -113,13 +202,11 @@ async function run(opts) {
|
|
|
113
202
|
genSpinner.fail('Failed to generate project files');
|
|
114
203
|
throw err;
|
|
115
204
|
}
|
|
116
|
-
// Step 4: Write files to output directory
|
|
117
205
|
const writeSpinner = (0, ora_1.default)(`Writing to ${outputDir}...`).start();
|
|
118
206
|
for (const file of files) {
|
|
119
207
|
const dest = path.join(outputDir, file.relativePath);
|
|
120
208
|
await fse.outputFile(dest, file.content, 'utf-8');
|
|
121
209
|
}
|
|
122
|
-
// Make the bin file executable
|
|
123
210
|
const binPath = path.join(outputDir, 'bin', opts.name);
|
|
124
211
|
if (await fse.pathExists(binPath)) {
|
|
125
212
|
await fse.chmod(binPath, 0o755);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,8CAAgC;AAChC,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface RuntimeAuth {
|
|
2
|
+
bearer?: string;
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
apiKeyHeader?: string;
|
|
5
|
+
basic?: string;
|
|
6
|
+
extraHeaders?: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
export interface RuntimeClientOptions {
|
|
9
|
+
/** Request timeout in milliseconds. Default: 30 000 ms. */
|
|
10
|
+
timeout?: number;
|
|
11
|
+
/** Maximum number of retry attempts for retryable errors. Default: 3. */
|
|
12
|
+
maxRetries?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface RequestOptions {
|
|
15
|
+
method: string;
|
|
16
|
+
path: string;
|
|
17
|
+
pathParams: Record<string, string>;
|
|
18
|
+
queryParams: Record<string, string>;
|
|
19
|
+
body?: unknown;
|
|
20
|
+
verbose?: boolean;
|
|
21
|
+
allPages?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare function createRuntimeClient(baseURL: string, auth: RuntimeAuth, options?: RuntimeClientOptions): {
|
|
24
|
+
request({ method, path, pathParams, queryParams, body, verbose, allPages, }: RequestOptions): Promise<unknown>;
|
|
25
|
+
requestStream({ method, path, pathParams, queryParams, body, verbose, }: RequestOptions): AsyncGenerator<string, void, unknown>;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/runner/http-client.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,oBAAyB;iFAgB7B,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;6EAgDjC,cAAc,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;EAuC5D"}
|