@optique/run 1.0.0-dev.555 → 1.0.0-dev.556

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 (3) hide show
  1. package/dist/run.cjs +33 -41
  2. package/dist/run.js +33 -41
  3. package/package.json +2 -2
package/dist/run.cjs CHANGED
@@ -4,31 +4,39 @@ const node_path = require_rolldown_runtime.__toESM(require("node:path"));
4
4
  const node_process = require_rolldown_runtime.__toESM(require("node:process"));
5
5
 
6
6
  //#region src/run.ts
7
+ function getProgramHelpMetadata(metadata) {
8
+ return {
9
+ brief: metadata.brief,
10
+ description: metadata.description,
11
+ examples: metadata.examples,
12
+ author: metadata.author,
13
+ bugs: metadata.bugs,
14
+ footer: metadata.footer
15
+ };
16
+ }
17
+ function resolveProgramInput(parserOrProgram, options) {
18
+ if ("parser" in parserOrProgram && "metadata" in parserOrProgram) return {
19
+ parser: parserOrProgram.parser,
20
+ options: options.programName == null ? {
21
+ ...options,
22
+ programName: parserOrProgram.metadata.name
23
+ } : options,
24
+ programMetadata: getProgramHelpMetadata(parserOrProgram.metadata)
25
+ };
26
+ return {
27
+ parser: parserOrProgram,
28
+ options
29
+ };
30
+ }
7
31
  function run(parserOrProgram, options = {}) {
8
32
  return runImpl(parserOrProgram, options);
9
33
  }
10
34
  function runSync(parserOrProgram, options = {}) {
11
35
  const contexts = options.contexts;
12
36
  if (contexts && contexts.length > 0) {
13
- const isProgram = "parser" in parserOrProgram && "metadata" in parserOrProgram;
14
- let parser;
15
- let programMetadata;
16
- if (isProgram) {
17
- const program = parserOrProgram;
18
- parser = program.parser;
19
- if (!options.programName) options = {
20
- ...options,
21
- programName: program.metadata.name
22
- };
23
- programMetadata = {
24
- brief: program.metadata.brief,
25
- description: program.metadata.description,
26
- examples: program.metadata.examples,
27
- author: program.metadata.author,
28
- bugs: program.metadata.bugs,
29
- footer: program.metadata.footer
30
- };
31
- } else parser = parserOrProgram;
37
+ const resolved = resolveProgramInput(parserOrProgram, options);
38
+ const { parser, programMetadata } = resolved;
39
+ options = resolved.options;
32
40
  const { programName, args, coreOptions } = buildCoreOptions(options, programMetadata);
33
41
  const contextOptions = {};
34
42
  for (const key of Object.keys(options)) if (!knownRunOptionsKeys.has(key)) contextOptions[key] = options[key];
@@ -169,7 +177,7 @@ function buildCoreOptions(options, programMetadata) {
169
177
  * Set of known RunOptions field names. Used by `runImpl()` to separate
170
178
  * RunOptions fields from context-required options via rest-spread.
171
179
  */
172
- const knownRunOptionsKeys = new Set([
180
+ const knownRunOptionsKeyList = [
173
181
  "programName",
174
182
  "args",
175
183
  "stdout",
@@ -192,28 +200,12 @@ const knownRunOptionsKeys = new Set([
192
200
  "bugs",
193
201
  "footer",
194
202
  "contexts"
195
- ]);
203
+ ];
204
+ const knownRunOptionsKeys = new Set(knownRunOptionsKeyList);
196
205
  function runImpl(parserOrProgram, options = {}) {
197
- const isProgram = "parser" in parserOrProgram && "metadata" in parserOrProgram;
198
- let parser;
199
- let programMetadata;
200
- if (isProgram) {
201
- const program = parserOrProgram;
202
- parser = program.parser;
203
- const programNameFromProgram = program.metadata.name;
204
- programMetadata = {
205
- brief: program.metadata.brief,
206
- description: program.metadata.description,
207
- examples: program.metadata.examples,
208
- author: program.metadata.author,
209
- bugs: program.metadata.bugs,
210
- footer: program.metadata.footer
211
- };
212
- if (!options.programName) options = {
213
- ...options,
214
- programName: programNameFromProgram
215
- };
216
- } else parser = parserOrProgram;
206
+ const resolved = resolveProgramInput(parserOrProgram, options);
207
+ const { parser, programMetadata } = resolved;
208
+ options = resolved.options;
217
209
  const contexts = options.contexts;
218
210
  if (contexts && contexts.length > 0) {
219
211
  const { programName: programName$1, args: args$1, coreOptions: coreOptions$1 } = buildCoreOptions(options, programMetadata);
package/dist/run.js CHANGED
@@ -3,31 +3,39 @@ import path from "node:path";
3
3
  import process from "node:process";
4
4
 
5
5
  //#region src/run.ts
6
+ function getProgramHelpMetadata(metadata) {
7
+ return {
8
+ brief: metadata.brief,
9
+ description: metadata.description,
10
+ examples: metadata.examples,
11
+ author: metadata.author,
12
+ bugs: metadata.bugs,
13
+ footer: metadata.footer
14
+ };
15
+ }
16
+ function resolveProgramInput(parserOrProgram, options) {
17
+ if ("parser" in parserOrProgram && "metadata" in parserOrProgram) return {
18
+ parser: parserOrProgram.parser,
19
+ options: options.programName == null ? {
20
+ ...options,
21
+ programName: parserOrProgram.metadata.name
22
+ } : options,
23
+ programMetadata: getProgramHelpMetadata(parserOrProgram.metadata)
24
+ };
25
+ return {
26
+ parser: parserOrProgram,
27
+ options
28
+ };
29
+ }
6
30
  function run(parserOrProgram, options = {}) {
7
31
  return runImpl(parserOrProgram, options);
8
32
  }
9
33
  function runSync(parserOrProgram, options = {}) {
10
34
  const contexts = options.contexts;
11
35
  if (contexts && contexts.length > 0) {
12
- const isProgram = "parser" in parserOrProgram && "metadata" in parserOrProgram;
13
- let parser;
14
- let programMetadata;
15
- if (isProgram) {
16
- const program = parserOrProgram;
17
- parser = program.parser;
18
- if (!options.programName) options = {
19
- ...options,
20
- programName: program.metadata.name
21
- };
22
- programMetadata = {
23
- brief: program.metadata.brief,
24
- description: program.metadata.description,
25
- examples: program.metadata.examples,
26
- author: program.metadata.author,
27
- bugs: program.metadata.bugs,
28
- footer: program.metadata.footer
29
- };
30
- } else parser = parserOrProgram;
36
+ const resolved = resolveProgramInput(parserOrProgram, options);
37
+ const { parser, programMetadata } = resolved;
38
+ options = resolved.options;
31
39
  const { programName, args, coreOptions } = buildCoreOptions(options, programMetadata);
32
40
  const contextOptions = {};
33
41
  for (const key of Object.keys(options)) if (!knownRunOptionsKeys.has(key)) contextOptions[key] = options[key];
@@ -168,7 +176,7 @@ function buildCoreOptions(options, programMetadata) {
168
176
  * Set of known RunOptions field names. Used by `runImpl()` to separate
169
177
  * RunOptions fields from context-required options via rest-spread.
170
178
  */
171
- const knownRunOptionsKeys = new Set([
179
+ const knownRunOptionsKeyList = [
172
180
  "programName",
173
181
  "args",
174
182
  "stdout",
@@ -191,28 +199,12 @@ const knownRunOptionsKeys = new Set([
191
199
  "bugs",
192
200
  "footer",
193
201
  "contexts"
194
- ]);
202
+ ];
203
+ const knownRunOptionsKeys = new Set(knownRunOptionsKeyList);
195
204
  function runImpl(parserOrProgram, options = {}) {
196
- const isProgram = "parser" in parserOrProgram && "metadata" in parserOrProgram;
197
- let parser;
198
- let programMetadata;
199
- if (isProgram) {
200
- const program = parserOrProgram;
201
- parser = program.parser;
202
- const programNameFromProgram = program.metadata.name;
203
- programMetadata = {
204
- brief: program.metadata.brief,
205
- description: program.metadata.description,
206
- examples: program.metadata.examples,
207
- author: program.metadata.author,
208
- bugs: program.metadata.bugs,
209
- footer: program.metadata.footer
210
- };
211
- if (!options.programName) options = {
212
- ...options,
213
- programName: programNameFromProgram
214
- };
215
- } else parser = parserOrProgram;
205
+ const resolved = resolveProgramInput(parserOrProgram, options);
206
+ const { parser, programMetadata } = resolved;
207
+ options = resolved.options;
216
208
  const contexts = options.contexts;
217
209
  if (contexts && contexts.length > 0) {
218
210
  const { programName: programName$1, args: args$1, coreOptions: coreOptions$1 } = buildCoreOptions(options, programMetadata);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/run",
3
- "version": "1.0.0-dev.555+975ed8c5",
3
+ "version": "1.0.0-dev.556+f691dcba",
4
4
  "description": "Type-safe combinatorial command-line interface parser",
5
5
  "keywords": [
6
6
  "CLI",
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "sideEffects": false,
72
72
  "dependencies": {
73
- "@optique/core": "1.0.0-dev.555+975ed8c5"
73
+ "@optique/core": "1.0.0-dev.556+f691dcba"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/node": "^20.19.9",