@shell-shock/core 0.10.0 → 0.12.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.
- package/dist/components/docs.cjs +4 -4
- package/dist/components/docs.cjs.map +1 -1
- package/dist/components/docs.d.cts +5 -5
- package/dist/components/docs.d.cts.map +1 -1
- package/dist/components/docs.d.mts +5 -5
- package/dist/components/docs.d.mts.map +1 -1
- package/dist/components/helpers.cjs +9 -0
- package/dist/components/helpers.cjs.map +1 -1
- package/dist/components/helpers.d.cts +15 -7
- package/dist/components/helpers.d.cts.map +1 -1
- package/dist/components/helpers.d.mts +15 -7
- package/dist/components/helpers.d.mts.map +1 -1
- package/dist/components/helpers.mjs +9 -1
- package/dist/components/helpers.mjs.map +1 -1
- package/dist/components/index.cjs +1 -0
- package/dist/components/index.d.cts +2 -2
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.mjs +2 -2
- package/dist/components/options-parser-logic.cjs +167 -87
- package/dist/components/options-parser-logic.cjs.map +1 -1
- package/dist/components/options-parser-logic.d.cts +15 -15
- package/dist/components/options-parser-logic.d.cts.map +1 -1
- package/dist/components/options-parser-logic.d.mts +15 -15
- package/dist/components/options-parser-logic.d.mts.map +1 -1
- package/dist/components/options-parser-logic.mjs +163 -83
- package/dist/components/options-parser-logic.mjs.map +1 -1
- package/dist/components/usage.cjs +5 -5
- package/dist/components/usage.cjs.map +1 -1
- package/dist/components/usage.d.cts +2 -2
- package/dist/components/usage.d.cts.map +1 -1
- package/dist/components/usage.d.mts +2 -2
- package/dist/components/usage.mjs +4 -4
- package/dist/components/usage.mjs.map +1 -1
- package/dist/components/utils-builtin.cjs +2 -2
- package/dist/components/utils-builtin.cjs.map +1 -1
- package/dist/components/utils-builtin.d.cts +9 -9
- package/dist/components/utils-builtin.d.cts.map +1 -1
- package/dist/components/utils-builtin.d.mts +9 -9
- package/dist/components/utils-builtin.d.mts.map +1 -1
- package/dist/components/utils-builtin.mjs +5 -5
- package/dist/components/utils-builtin.mjs.map +1 -1
- package/dist/contexts/options.cjs +2 -2
- package/dist/contexts/options.cjs.map +1 -1
- package/dist/contexts/options.d.cts +1 -1
- package/dist/contexts/options.d.cts.map +1 -1
- package/dist/contexts/options.d.mts +1 -1
- package/dist/contexts/options.d.mts.map +1 -1
- package/dist/contexts/options.mjs +4 -4
- package/dist/contexts/options.mjs.map +1 -1
- package/dist/helpers/automd.cjs +2 -2
- package/dist/helpers/automd.cjs.map +1 -1
- package/dist/helpers/automd.mjs.map +1 -1
- package/dist/helpers/paths.cjs +125 -0
- package/dist/helpers/paths.cjs.map +1 -0
- package/dist/helpers/paths.mjs +121 -0
- package/dist/helpers/paths.mjs.map +1 -0
- package/dist/helpers/persistence.cjs +68 -116
- package/dist/helpers/persistence.cjs.map +1 -1
- package/dist/helpers/persistence.mjs +68 -116
- package/dist/helpers/persistence.mjs.map +1 -1
- package/dist/helpers/update-package-json.cjs +4 -4
- package/dist/helpers/update-package-json.cjs.map +1 -1
- package/dist/helpers/utilities.cjs +1 -1
- package/dist/helpers/utilities.mjs +1 -1
- package/dist/helpers/validations.cjs +2 -3
- package/dist/helpers/validations.cjs.map +1 -1
- package/dist/helpers/validations.mjs +2 -2
- package/dist/helpers/validations.mjs.map +1 -1
- package/dist/index.cjs +14 -11
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +3 -3
- package/dist/plugin-utils/deepkit.cjs +72 -0
- package/dist/plugin-utils/deepkit.cjs.map +1 -0
- package/dist/plugin-utils/deepkit.d.cts +24 -0
- package/dist/plugin-utils/deepkit.d.cts.map +1 -0
- package/dist/plugin-utils/deepkit.d.mts +24 -0
- package/dist/plugin-utils/deepkit.d.mts.map +1 -0
- package/dist/plugin-utils/deepkit.mjs +70 -0
- package/dist/plugin-utils/deepkit.mjs.map +1 -0
- package/dist/plugin-utils/description-helpers.cjs +105 -0
- package/dist/plugin-utils/description-helpers.cjs.map +1 -0
- package/dist/plugin-utils/description-helpers.d.cts +44 -0
- package/dist/plugin-utils/description-helpers.d.cts.map +1 -0
- package/dist/plugin-utils/description-helpers.d.mts +44 -0
- package/dist/plugin-utils/description-helpers.d.mts.map +1 -0
- package/dist/plugin-utils/description-helpers.mjs +101 -0
- package/dist/plugin-utils/description-helpers.mjs.map +1 -0
- package/dist/plugin-utils/get-command-tree.cjs +2 -2
- package/dist/plugin-utils/get-command-tree.cjs.map +1 -1
- package/dist/plugin-utils/index.cjs +32 -18
- package/dist/plugin-utils/index.d.cts +4 -1
- package/dist/plugin-utils/index.d.mts +4 -1
- package/dist/plugin-utils/index.mjs +4 -1
- package/dist/plugin-utils/reflect.cjs +4 -5
- package/dist/plugin-utils/reflect.cjs.map +1 -1
- package/dist/plugin-utils/reflect.mjs +4 -4
- package/dist/plugin-utils/reflect.mjs.map +1 -1
- package/dist/plugin-utils/type-checks.cjs +89 -0
- package/dist/plugin-utils/type-checks.cjs.map +1 -0
- package/dist/plugin-utils/type-checks.d.cts +42 -0
- package/dist/plugin-utils/type-checks.d.cts.map +1 -0
- package/dist/plugin-utils/type-checks.d.mts +42 -0
- package/dist/plugin-utils/type-checks.d.mts.map +1 -0
- package/dist/plugin-utils/type-checks.mjs +84 -0
- package/dist/plugin-utils/type-checks.mjs.map +1 -0
- package/dist/plugin.cjs +31 -29
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts.map +1 -1
- package/dist/plugin.d.mts.map +1 -1
- package/dist/plugin.mjs +15 -13
- package/dist/plugin.mjs.map +1 -1
- package/dist/resolver/deepkit.cjs +132 -0
- package/dist/resolver/deepkit.cjs.map +1 -0
- package/dist/resolver/deepkit.mjs +131 -0
- package/dist/resolver/deepkit.mjs.map +1 -0
- package/dist/resolver/helpers.cjs +167 -0
- package/dist/resolver/helpers.cjs.map +1 -0
- package/dist/resolver/helpers.mjs +162 -0
- package/dist/resolver/helpers.mjs.map +1 -0
- package/dist/resolver/module.cjs +144 -0
- package/dist/resolver/module.cjs.map +1 -0
- package/dist/resolver/module.mjs +143 -0
- package/dist/resolver/module.mjs.map +1 -0
- package/dist/resolver/resolve.cjs +209 -0
- package/dist/resolver/resolve.cjs.map +1 -0
- package/dist/resolver/resolve.mjs +208 -0
- package/dist/resolver/resolve.mjs.map +1 -0
- package/dist/types/command.cjs +127 -104
- package/dist/types/command.cjs.map +1 -1
- package/dist/types/command.d.cts +39 -78
- package/dist/types/command.d.cts.map +1 -1
- package/dist/types/command.d.mts +39 -78
- package/dist/types/command.d.mts.map +1 -1
- package/dist/types/command.mjs +115 -95
- package/dist/types/command.mjs.map +1 -1
- package/dist/types/config.cjs +5 -3
- package/dist/types/config.cjs.map +1 -1
- package/dist/types/config.d.cts +7 -3
- package/dist/types/config.d.cts.map +1 -1
- package/dist/types/config.d.mts +7 -3
- package/dist/types/config.d.mts.map +1 -1
- package/dist/types/config.mjs +5 -3
- package/dist/types/config.mjs.map +1 -1
- package/dist/types/context.cjs +1 -1
- package/dist/types/context.cjs.map +1 -1
- package/dist/types/context.d.cts +2 -2
- package/dist/types/context.d.cts.map +1 -1
- package/dist/types/context.d.mts +2 -2
- package/dist/types/context.d.mts.map +1 -1
- package/dist/types/context.mjs +1 -1
- package/dist/types/context.mjs.map +1 -1
- package/dist/types/index.cjs +13 -10
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.mts +2 -2
- package/dist/types/index.mjs +2 -2
- package/package.json +24 -75
- package/dist/helpers/resolve-command.cjs +0 -430
- package/dist/helpers/resolve-command.cjs.map +0 -1
- package/dist/helpers/resolve-command.mjs +0 -425
- package/dist/helpers/resolve-command.mjs.map +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { getDynamicPathSegmentName, isDynamicPathSegment } from "../plugin-utils/context-helpers.mjs";
|
|
2
|
+
import { CommandParameterKinds } from "../types/command.mjs";
|
|
2
3
|
import { computedOptions } from "../contexts/options.mjs";
|
|
3
|
-
import { BooleanInputParserLogic } from "./helpers.mjs";
|
|
4
|
+
import { BooleanInputParserLogic, CommandParameterType } from "./helpers.mjs";
|
|
4
5
|
import { createComponent, createIntrinsic, memo } from "@alloy-js/core/jsx-runtime";
|
|
5
6
|
import { camelCase } from "@stryke/string-format/camel-case";
|
|
6
7
|
import { constantCase } from "@stryke/string-format/constant-case";
|
|
7
8
|
import { isSetString } from "@stryke/type-checks/is-set-string";
|
|
8
9
|
import { For, Show, code, computed } from "@alloy-js/core";
|
|
9
10
|
import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
|
|
10
|
-
import { ReflectionKind } from "@powerlines/deepkit/vendor/type";
|
|
11
11
|
import { ElseClause, ElseIfClause, IfStatement, InterfaceDeclaration, InterfaceMember, VarDeclaration } from "@alloy-js/typescript";
|
|
12
12
|
import { pascalCase } from "@stryke/string-format/pascal-case";
|
|
13
13
|
|
|
@@ -46,10 +46,10 @@ function DynamicSegmentsParserLogic(props) {
|
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
function ArgumentsParserLogic(props) {
|
|
49
|
-
const { command,
|
|
49
|
+
const { command, appSpecificEnvPrefix, isCaseSensitive } = props;
|
|
50
50
|
return createComponent(Show, {
|
|
51
51
|
get when() {
|
|
52
|
-
return command.
|
|
52
|
+
return command.args && command.args.length > 0;
|
|
53
53
|
},
|
|
54
54
|
get children() {
|
|
55
55
|
return [
|
|
@@ -73,37 +73,51 @@ function ArgumentsParserLogic(props) {
|
|
|
73
73
|
createComponent(Spacing, {}),
|
|
74
74
|
createComponent(For, {
|
|
75
75
|
get each() {
|
|
76
|
-
return command.
|
|
76
|
+
return command.args ?? [];
|
|
77
77
|
},
|
|
78
78
|
hardline: true,
|
|
79
79
|
children: (arg, index) => [
|
|
80
|
-
createComponent(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return camelCase(arg.name);
|
|
80
|
+
createComponent(Show, {
|
|
81
|
+
get when() {
|
|
82
|
+
return isSetString(arg.env) || arg.default !== void 0 || (arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic;
|
|
84
83
|
},
|
|
85
|
-
get
|
|
86
|
-
return
|
|
84
|
+
get fallback() {
|
|
85
|
+
return [
|
|
86
|
+
memo(() => code`let ${camelCase(arg.name)}!: `),
|
|
87
|
+
createComponent(CommandParameterType, { parameter: arg }),
|
|
88
|
+
code`; `
|
|
89
|
+
];
|
|
87
90
|
},
|
|
88
|
-
get
|
|
89
|
-
return
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
get children() {
|
|
92
|
+
return createComponent(VarDeclaration, {
|
|
93
|
+
"let": true,
|
|
94
|
+
get name() {
|
|
95
|
+
return camelCase(arg.name);
|
|
92
96
|
},
|
|
93
|
-
get
|
|
94
|
-
return
|
|
95
|
-
}
|
|
96
|
-
}), createComponent(Show, {
|
|
97
|
-
get when() {
|
|
98
|
-
return arg.default !== void 0;
|
|
97
|
+
get type() {
|
|
98
|
+
return createComponent(CommandParameterType, { parameter: arg });
|
|
99
99
|
},
|
|
100
|
-
get
|
|
101
|
-
return (
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
get initializer() {
|
|
101
|
+
return [createComponent(Show, {
|
|
102
|
+
get when() {
|
|
103
|
+
return isSetString(arg.env);
|
|
104
|
+
},
|
|
105
|
+
get children() {
|
|
106
|
+
return code`env.${appSpecificEnvPrefix}_${constantCase(String(arg.env))} ?? `;
|
|
107
|
+
}
|
|
108
|
+
}), createComponent(Show, {
|
|
109
|
+
get when() {
|
|
110
|
+
return arg.default !== void 0;
|
|
111
|
+
},
|
|
112
|
+
get fallback() {
|
|
113
|
+
return (arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? code`[]` : code`undefined;`;
|
|
114
|
+
},
|
|
115
|
+
get children() {
|
|
116
|
+
return arg.kind === CommandParameterKinds.string ? code`"${arg.default}"` : code`${arg.default}`;
|
|
117
|
+
}
|
|
118
|
+
})];
|
|
105
119
|
}
|
|
106
|
-
})
|
|
120
|
+
});
|
|
107
121
|
}
|
|
108
122
|
}),
|
|
109
123
|
createComponent(Spacing, {}),
|
|
@@ -112,7 +126,7 @@ function ArgumentsParserLogic(props) {
|
|
|
112
126
|
get children() {
|
|
113
127
|
return [memo(() => code`${camelCase(arg.name)} = `), createComponent(Show, {
|
|
114
128
|
get when() {
|
|
115
|
-
return arg.kind ===
|
|
129
|
+
return arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number;
|
|
116
130
|
},
|
|
117
131
|
get fallback() {
|
|
118
132
|
return createComponent(BooleanInputParserLogic, { name: `args[argsIndex + ${index}] ` });
|
|
@@ -120,19 +134,19 @@ function ArgumentsParserLogic(props) {
|
|
|
120
134
|
get children() {
|
|
121
135
|
return createComponent(Show, {
|
|
122
136
|
get when() {
|
|
123
|
-
return (arg.kind ===
|
|
137
|
+
return (arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic;
|
|
124
138
|
},
|
|
125
139
|
get fallback() {
|
|
126
140
|
return createComponent(Show, {
|
|
127
141
|
get when() {
|
|
128
|
-
return arg.kind ===
|
|
142
|
+
return arg.kind === CommandParameterKinds.number;
|
|
129
143
|
},
|
|
130
144
|
fallback: code`args[argsIndex + ${index}]; `,
|
|
131
145
|
children: code`Number(args[argsIndex + ${index}]); `
|
|
132
146
|
});
|
|
133
147
|
},
|
|
134
148
|
get children() {
|
|
135
|
-
return code`args.slice(argsIndex + ${index}, (optionsIndex > argsIndex ? optionsIndex : args.length) - ${command.
|
|
149
|
+
return code`args.slice(argsIndex + ${index}, (optionsIndex > argsIndex ? optionsIndex : args.length) - ${command.args.length - index}).join(" ").split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean)`;
|
|
136
150
|
}
|
|
137
151
|
});
|
|
138
152
|
}
|
|
@@ -159,7 +173,7 @@ function OptionsMember({ option }) {
|
|
|
159
173
|
return [
|
|
160
174
|
createComponent(Show, {
|
|
161
175
|
get when() {
|
|
162
|
-
return option.kind ===
|
|
176
|
+
return option.kind === CommandParameterKinds.string;
|
|
163
177
|
},
|
|
164
178
|
get children() {
|
|
165
179
|
return createComponent(InterfaceMember, {
|
|
@@ -168,7 +182,7 @@ function OptionsMember({ option }) {
|
|
|
168
182
|
},
|
|
169
183
|
doc,
|
|
170
184
|
get type() {
|
|
171
|
-
return
|
|
185
|
+
return createComponent(CommandParameterType, { parameter: option });
|
|
172
186
|
},
|
|
173
187
|
get optional() {
|
|
174
188
|
return option.optional;
|
|
@@ -178,7 +192,7 @@ function OptionsMember({ option }) {
|
|
|
178
192
|
}),
|
|
179
193
|
createComponent(Show, {
|
|
180
194
|
get when() {
|
|
181
|
-
return option.kind ===
|
|
195
|
+
return option.kind === CommandParameterKinds.number;
|
|
182
196
|
},
|
|
183
197
|
get children() {
|
|
184
198
|
return createComponent(InterfaceMember, {
|
|
@@ -187,7 +201,7 @@ function OptionsMember({ option }) {
|
|
|
187
201
|
},
|
|
188
202
|
doc,
|
|
189
203
|
get type() {
|
|
190
|
-
return
|
|
204
|
+
return createComponent(CommandParameterType, { parameter: option });
|
|
191
205
|
},
|
|
192
206
|
get optional() {
|
|
193
207
|
return option.optional;
|
|
@@ -197,7 +211,7 @@ function OptionsMember({ option }) {
|
|
|
197
211
|
}),
|
|
198
212
|
createComponent(Show, {
|
|
199
213
|
get when() {
|
|
200
|
-
return option.kind ===
|
|
214
|
+
return option.kind === CommandParameterKinds.boolean;
|
|
201
215
|
},
|
|
202
216
|
get children() {
|
|
203
217
|
return createComponent(InterfaceMember, {
|
|
@@ -205,7 +219,9 @@ function OptionsMember({ option }) {
|
|
|
205
219
|
return option.name;
|
|
206
220
|
},
|
|
207
221
|
doc,
|
|
208
|
-
type
|
|
222
|
+
get type() {
|
|
223
|
+
return createComponent(CommandParameterType, { parameter: option });
|
|
224
|
+
},
|
|
209
225
|
get optional() {
|
|
210
226
|
return option.optional;
|
|
211
227
|
}
|
|
@@ -224,7 +240,7 @@ function OptionsMemberParserLogic(props) {
|
|
|
224
240
|
const equalsRegex = `/^--?(${isCaseSensitive || name.length === 1 ? name : name.toLowerCase().replaceAll("-", "").replaceAll("_", "")}${option.alias && option.alias.length > 0 ? "|" : ""}${option.alias?.map((a) => (isCaseSensitive || name.length === 1 ? a : a.toLowerCase().replaceAll("-", "").replaceAll("_", "")) === "?" ? "\\?" : isCaseSensitive || name.length === 1 ? a : a.toLowerCase().replaceAll("-", "").replaceAll("_", "")).join("|")})=/`;
|
|
225
241
|
return [createComponent(Show, {
|
|
226
242
|
get when() {
|
|
227
|
-
return option.kind ===
|
|
243
|
+
return option.kind === CommandParameterKinds.string || option.kind === CommandParameterKinds.number;
|
|
228
244
|
},
|
|
229
245
|
get children() {
|
|
230
246
|
return [createComponent(Show, {
|
|
@@ -254,16 +270,24 @@ function OptionsMemberParserLogic(props) {
|
|
|
254
270
|
}),
|
|
255
271
|
createComponent(Show, {
|
|
256
272
|
get when() {
|
|
257
|
-
return option.kind ===
|
|
273
|
+
return option.kind === CommandParameterKinds.string;
|
|
258
274
|
},
|
|
259
275
|
children: code`...arg.replace(${equalsRegex}, "").split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean) `
|
|
260
276
|
}),
|
|
261
277
|
createComponent(Show, {
|
|
262
278
|
get when() {
|
|
263
|
-
return option.kind ===
|
|
279
|
+
return option.kind === CommandParameterKinds.number;
|
|
264
280
|
},
|
|
265
281
|
children: code`...arg.replace(${equalsRegex}, "").split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `
|
|
266
282
|
}),
|
|
283
|
+
createComponent(Show, {
|
|
284
|
+
get when() {
|
|
285
|
+
return (option.kind === CommandParameterKinds.string || option.kind === CommandParameterKinds.number) && option.choices && option.choices.length > 0;
|
|
286
|
+
},
|
|
287
|
+
get children() {
|
|
288
|
+
return code` as ${option.choices?.map((choice) => isSetString(choice) ? `"${choice}"` : choice).join(" | ")} `;
|
|
289
|
+
}
|
|
290
|
+
}),
|
|
267
291
|
code`); `
|
|
268
292
|
];
|
|
269
293
|
}
|
|
@@ -281,16 +305,24 @@ function OptionsMemberParserLogic(props) {
|
|
|
281
305
|
}),
|
|
282
306
|
createComponent(Show, {
|
|
283
307
|
get when() {
|
|
284
|
-
return option.kind ===
|
|
308
|
+
return option.kind === CommandParameterKinds.string;
|
|
285
309
|
},
|
|
286
310
|
children: code`...args[++i].split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean) `
|
|
287
311
|
}),
|
|
288
312
|
createComponent(Show, {
|
|
289
313
|
get when() {
|
|
290
|
-
return option.kind ===
|
|
314
|
+
return option.kind === CommandParameterKinds.number;
|
|
291
315
|
},
|
|
292
316
|
children: code`...args[++i].split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `
|
|
293
317
|
}),
|
|
318
|
+
createComponent(Show, {
|
|
319
|
+
get when() {
|
|
320
|
+
return (option.kind === CommandParameterKinds.string || option.kind === CommandParameterKinds.number) && option.choices && option.choices.length > 0;
|
|
321
|
+
},
|
|
322
|
+
get children() {
|
|
323
|
+
return code` as ${option.choices?.map((choice) => isSetString(choice) ? `"${choice}"` : choice).join(" | ")} `;
|
|
324
|
+
}
|
|
325
|
+
}),
|
|
294
326
|
code`); `
|
|
295
327
|
];
|
|
296
328
|
}
|
|
@@ -308,20 +340,32 @@ function OptionsMemberParserLogic(props) {
|
|
|
308
340
|
get children() {
|
|
309
341
|
return [createComponent(Show, {
|
|
310
342
|
get when() {
|
|
311
|
-
return option.kind ===
|
|
343
|
+
return option.kind === CommandParameterKinds.string;
|
|
312
344
|
},
|
|
313
345
|
get children() {
|
|
314
|
-
return [
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
346
|
+
return [
|
|
347
|
+
createComponent(Show, {
|
|
348
|
+
get when() {
|
|
349
|
+
return name.includes("?") || name.includes("-");
|
|
350
|
+
},
|
|
351
|
+
fallback: code`options.${name}`,
|
|
352
|
+
children: code`options["${name}"]`
|
|
353
|
+
}),
|
|
354
|
+
code` = arg.replace(${equalsRegex}, "").trim().replace(/^("|')/, "").replace(/("|')$/, "")`,
|
|
355
|
+
createComponent(Show, {
|
|
356
|
+
get when() {
|
|
357
|
+
return option.choices && option.choices.length > 0;
|
|
358
|
+
},
|
|
359
|
+
get children() {
|
|
360
|
+
return code` as ${option.choices?.map((choice) => `"${choice}"`).join(" | ")}`;
|
|
361
|
+
}
|
|
362
|
+
}),
|
|
363
|
+
code`; `
|
|
364
|
+
];
|
|
321
365
|
}
|
|
322
366
|
}), createComponent(Show, {
|
|
323
367
|
get when() {
|
|
324
|
-
return option.kind ===
|
|
368
|
+
return option.kind === CommandParameterKinds.number;
|
|
325
369
|
},
|
|
326
370
|
get children() {
|
|
327
371
|
return [
|
|
@@ -334,13 +378,25 @@ function OptionsMemberParserLogic(props) {
|
|
|
334
378
|
createComponent(IfStatement, {
|
|
335
379
|
condition: `!Number.isNaN(value)`,
|
|
336
380
|
get children() {
|
|
337
|
-
return [
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
381
|
+
return [
|
|
382
|
+
createComponent(Show, {
|
|
383
|
+
get when() {
|
|
384
|
+
return name.includes("?") || name.includes("-");
|
|
385
|
+
},
|
|
386
|
+
fallback: code`options.${name}`,
|
|
387
|
+
children: code`options["${name}"]`
|
|
388
|
+
}),
|
|
389
|
+
code` = value`,
|
|
390
|
+
createComponent(Show, {
|
|
391
|
+
get when() {
|
|
392
|
+
return option.choices && option.choices.length > 0;
|
|
393
|
+
},
|
|
394
|
+
get children() {
|
|
395
|
+
return code` as ${option.choices?.join(" | ")}`;
|
|
396
|
+
}
|
|
397
|
+
}),
|
|
398
|
+
code`; `
|
|
399
|
+
];
|
|
344
400
|
}
|
|
345
401
|
})
|
|
346
402
|
];
|
|
@@ -353,20 +409,32 @@ function OptionsMemberParserLogic(props) {
|
|
|
353
409
|
get children() {
|
|
354
410
|
return [createComponent(Show, {
|
|
355
411
|
get when() {
|
|
356
|
-
return option.kind ===
|
|
412
|
+
return option.kind === CommandParameterKinds.string;
|
|
357
413
|
},
|
|
358
414
|
get children() {
|
|
359
|
-
return [
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
415
|
+
return [
|
|
416
|
+
createComponent(Show, {
|
|
417
|
+
get when() {
|
|
418
|
+
return name.includes("?") || name.includes("-");
|
|
419
|
+
},
|
|
420
|
+
fallback: code`options.${name}`,
|
|
421
|
+
children: code`options["${name}"]`
|
|
422
|
+
}),
|
|
423
|
+
code` = args[++i].trim().replace(/^("|')/, "").replace(/("|')$/, "")`,
|
|
424
|
+
createComponent(Show, {
|
|
425
|
+
get when() {
|
|
426
|
+
return option.choices && option.choices.length > 0;
|
|
427
|
+
},
|
|
428
|
+
get children() {
|
|
429
|
+
return code` as ${option.choices?.map((choice) => `"${choice}"`).join(" | ")}`;
|
|
430
|
+
}
|
|
431
|
+
}),
|
|
432
|
+
code`; `
|
|
433
|
+
];
|
|
366
434
|
}
|
|
367
435
|
}), createComponent(Show, {
|
|
368
436
|
get when() {
|
|
369
|
-
return option.kind ===
|
|
437
|
+
return option.kind === CommandParameterKinds.number;
|
|
370
438
|
},
|
|
371
439
|
get children() {
|
|
372
440
|
return [
|
|
@@ -379,13 +447,25 @@ function OptionsMemberParserLogic(props) {
|
|
|
379
447
|
createComponent(IfStatement, {
|
|
380
448
|
condition: `!Number.isNaN(value)`,
|
|
381
449
|
get children() {
|
|
382
|
-
return [
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
450
|
+
return [
|
|
451
|
+
createComponent(Show, {
|
|
452
|
+
get when() {
|
|
453
|
+
return name.includes("?") || name.includes("-");
|
|
454
|
+
},
|
|
455
|
+
fallback: code`options.${name}`,
|
|
456
|
+
children: code`options["${name}"]`
|
|
457
|
+
}),
|
|
458
|
+
code` = value`,
|
|
459
|
+
createComponent(Show, {
|
|
460
|
+
get when() {
|
|
461
|
+
return option.choices && option.choices.length > 0;
|
|
462
|
+
},
|
|
463
|
+
get children() {
|
|
464
|
+
return code` as ${option.choices?.join(" | ")}`;
|
|
465
|
+
}
|
|
466
|
+
}),
|
|
467
|
+
code`; `
|
|
468
|
+
];
|
|
389
469
|
}
|
|
390
470
|
})
|
|
391
471
|
];
|
|
@@ -400,7 +480,7 @@ function OptionsMemberParserLogic(props) {
|
|
|
400
480
|
}
|
|
401
481
|
}), createComponent(Show, {
|
|
402
482
|
get when() {
|
|
403
|
-
return option.kind ===
|
|
483
|
+
return option.kind === CommandParameterKinds.boolean;
|
|
404
484
|
},
|
|
405
485
|
get children() {
|
|
406
486
|
return [
|
|
@@ -493,7 +573,7 @@ function OptionsInterfaceDeclaration(props) {
|
|
|
493
573
|
* The command options parser logic.
|
|
494
574
|
*/
|
|
495
575
|
function OptionsParserLogic(props) {
|
|
496
|
-
const { command,
|
|
576
|
+
const { command, appSpecificEnvPrefix, isCaseSensitive = false } = props;
|
|
497
577
|
const options = computed(() => computedOptions(command));
|
|
498
578
|
return [
|
|
499
579
|
createComponent(VarDeclaration, {
|
|
@@ -501,10 +581,10 @@ function OptionsParserLogic(props) {
|
|
|
501
581
|
name: "options",
|
|
502
582
|
get initializer() {
|
|
503
583
|
return code` {
|
|
504
|
-
${Object.entries(options.value).map(([name, option]) => {
|
|
505
|
-
if (option.kind ===
|
|
506
|
-
else if (option.kind ===
|
|
507
|
-
else if (option.kind ===
|
|
584
|
+
${Object.entries(options.value).filter(([, option]) => option.env || option.default !== void 0 || (option.kind === CommandParameterKinds.string || option.kind === CommandParameterKinds.number) && option.variadic).map(([name, option]) => {
|
|
585
|
+
if (option.kind === CommandParameterKinds.string) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${appSpecificEnvPrefix}_${option.env}` : ""}${option.variadic ? option.default !== void 0 ? `${option.env ? " ?? " : ""}${JSON.stringify(option.default)}` : option.env ? " ?? []" : "[]" : option.default !== void 0 ? `${option.env ? " ?? " : ""}"${option.default}"` : ""}, `;
|
|
586
|
+
else if (option.kind === CommandParameterKinds.number) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${appSpecificEnvPrefix}_${option.env}` : ""}${option.variadic ? option.default && Array.isArray(option.default) ? `${option.env ? " ?? " : ""}${JSON.stringify(option.default)}` : option.env ? " ?? []" : "[]" : option.default !== void 0 ? `${option.env ? " ?? " : ""}${option.default}` : ""}, `;
|
|
587
|
+
else if (option.kind === CommandParameterKinds.boolean) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${appSpecificEnvPrefix}_${option.env} ?? ` : ""}${option.default ? "true" : "false"},`;
|
|
508
588
|
return "";
|
|
509
589
|
}).join("")}
|
|
510
590
|
} as ${pascalCase(command.name)}Options;`;
|
|
@@ -582,7 +662,7 @@ function OptionsParserLogic(props) {
|
|
|
582
662
|
* The command parser logic, which includes parsing dynamic path segments, positional parameters, and options.
|
|
583
663
|
*/
|
|
584
664
|
function CommandParserLogic(props) {
|
|
585
|
-
const { command,
|
|
665
|
+
const { command, appSpecificEnvPrefix, isCaseSensitive = false } = props;
|
|
586
666
|
return [
|
|
587
667
|
createComponent(DynamicSegmentsParserLogic, {
|
|
588
668
|
command,
|
|
@@ -591,13 +671,13 @@ function CommandParserLogic(props) {
|
|
|
591
671
|
createComponent(Spacing, {}),
|
|
592
672
|
createComponent(OptionsParserLogic, {
|
|
593
673
|
command,
|
|
594
|
-
|
|
674
|
+
appSpecificEnvPrefix,
|
|
595
675
|
isCaseSensitive
|
|
596
676
|
}),
|
|
597
677
|
createComponent(Spacing, {}),
|
|
598
678
|
createComponent(ArgumentsParserLogic, {
|
|
599
679
|
command,
|
|
600
|
-
|
|
680
|
+
appSpecificEnvPrefix,
|
|
601
681
|
isCaseSensitive
|
|
602
682
|
}),
|
|
603
683
|
createComponent(Spacing, {})
|