@optique/core 1.0.0-dev.557 → 1.0.0-dev.559

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/facade.cjs CHANGED
@@ -23,7 +23,7 @@ function createHelpParser(commandConfig, optionConfig) {
23
23
  const commandParsers = [];
24
24
  for (let i = 0; i < names.length; i++) commandParsers.push(require_primitives.command(names[i], innerParser, {
25
25
  description: require_message.message`Show help information.`,
26
- hidden: i === 0 ? commandConfig.hidden : commandConfig.hidden === true ? true : true
26
+ hidden: i === 0 ? commandConfig.hidden : true
27
27
  }));
28
28
  helpCommand = commandParsers.length === 1 ? commandParsers[0] : require_constructs.longestMatch(...commandParsers);
29
29
  }
@@ -51,7 +51,7 @@ function createVersionParser(commandConfig, optionConfig) {
51
51
  const commandParsers = [];
52
52
  for (let i = 0; i < names.length; i++) commandParsers.push(require_primitives.command(names[i], innerParser, {
53
53
  description: require_message.message`Show version information.`,
54
- hidden: i === 0 ? commandConfig.hidden : commandConfig.hidden === true ? true : true
54
+ hidden: i === 0 ? commandConfig.hidden : true
55
55
  }));
56
56
  versionCommand = commandParsers.length === 1 ? commandParsers[0] : require_constructs.longestMatch(...commandParsers);
57
57
  }
@@ -93,7 +93,7 @@ function createCompletionParser(programName, availableShells, commandConfig, opt
93
93
  const commandParsers = [];
94
94
  for (let i = 0; i < names.length; i++) commandParsers.push(require_primitives.command(names[i], completionInner, {
95
95
  ...completionCommandConfig,
96
- hidden: i === 0 ? commandConfig.hidden : commandConfig.hidden === true ? true : true
96
+ hidden: i === 0 ? commandConfig.hidden : true
97
97
  }));
98
98
  completionCommand = commandParsers.length === 1 ? commandParsers[0] : require_constructs.longestMatch(...commandParsers);
99
99
  }
package/dist/facade.js CHANGED
@@ -23,7 +23,7 @@ function createHelpParser(commandConfig, optionConfig) {
23
23
  const commandParsers = [];
24
24
  for (let i = 0; i < names.length; i++) commandParsers.push(command(names[i], innerParser, {
25
25
  description: message`Show help information.`,
26
- hidden: i === 0 ? commandConfig.hidden : commandConfig.hidden === true ? true : true
26
+ hidden: i === 0 ? commandConfig.hidden : true
27
27
  }));
28
28
  helpCommand = commandParsers.length === 1 ? commandParsers[0] : longestMatch(...commandParsers);
29
29
  }
@@ -51,7 +51,7 @@ function createVersionParser(commandConfig, optionConfig) {
51
51
  const commandParsers = [];
52
52
  for (let i = 0; i < names.length; i++) commandParsers.push(command(names[i], innerParser, {
53
53
  description: message`Show version information.`,
54
- hidden: i === 0 ? commandConfig.hidden : commandConfig.hidden === true ? true : true
54
+ hidden: i === 0 ? commandConfig.hidden : true
55
55
  }));
56
56
  versionCommand = commandParsers.length === 1 ? commandParsers[0] : longestMatch(...commandParsers);
57
57
  }
@@ -93,7 +93,7 @@ function createCompletionParser(programName, availableShells, commandConfig, opt
93
93
  const commandParsers = [];
94
94
  for (let i = 0; i < names.length; i++) commandParsers.push(command(names[i], completionInner, {
95
95
  ...completionCommandConfig,
96
- hidden: i === 0 ? commandConfig.hidden : commandConfig.hidden === true ? true : true
96
+ hidden: i === 0 ? commandConfig.hidden : true
97
97
  }));
98
98
  completionCommand = commandParsers.length === 1 ? commandParsers[0] : longestMatch(...commandParsers);
99
99
  }
@@ -8,6 +8,10 @@ const require_usage_internals = require('./usage-internals.cjs');
8
8
  const require_valueparser = require('./valueparser.cjs');
9
9
 
10
10
  //#region src/primitives.ts
11
+ function hasParsedOptionValue(state, valueParser) {
12
+ if (valueParser != null) return require_dependency.isDeferredParseState(state) || require_dependency.isDependencySourceState(state) || state != null && "success" in state && state.success;
13
+ return state != null && "success" in state && state.success && state.value === true;
14
+ }
11
15
  /**
12
16
  * Helper function to create the appropriate state for an option value.
13
17
  * - If the value parser is a DerivedValueParser, wraps the result in a DeferredParseState
@@ -354,8 +358,7 @@ function option(...args) {
354
358
  consumed: context.buffer.slice(0, 1)
355
359
  };
356
360
  if (optionNames$1.includes(context.buffer[0])) {
357
- const hasValue = valueParser != null ? context.state?.success || require_dependency.isDeferredParseState(context.state) || require_dependency.isDependencySourceState(context.state) : context.state?.success && context.state?.value;
358
- if (hasValue) return {
361
+ if (hasParsedOptionValue(context.state, valueParser)) return {
359
362
  success: false,
360
363
  consumed: 1,
361
364
  error: options.errors?.duplicate ? typeof options.errors.duplicate === "function" ? options.errors.duplicate(context.buffer[0]) : options.errors.duplicate : require_message.message`${require_message.optionName(context.buffer[0])} cannot be used multiple times.`
@@ -401,7 +404,7 @@ function option(...args) {
401
404
  const prefixes = optionNames$1.filter((name) => name.startsWith("--") || name.startsWith("/") || name.startsWith("-") && name.length > 2).map((name) => name.startsWith("/") ? `${name}:` : `${name}=`);
402
405
  for (const prefix of prefixes) {
403
406
  if (!context.buffer[0].startsWith(prefix)) continue;
404
- if (context.state?.success && (valueParser != null || context.state.value)) {
407
+ if (hasParsedOptionValue(context.state, valueParser)) {
405
408
  const optionName$1 = prefix.slice(0, -1);
406
409
  return {
407
410
  success: false,
@@ -439,7 +442,7 @@ function option(...args) {
439
442
  const shortOptions = optionNames$1.filter((name) => name.match(/^-[^-]$/));
440
443
  for (const shortOption of shortOptions) {
441
444
  if (!context.buffer[0].startsWith(shortOption)) continue;
442
- if (context.state?.success && (valueParser != null || context.state.value)) return {
445
+ if (hasParsedOptionValue(context.state, valueParser)) return {
443
446
  success: false,
444
447
  consumed: 1,
445
448
  error: options.errors?.duplicate ? typeof options.errors.duplicate === "function" ? options.errors.duplicate(shortOption) : options.errors.duplicate : require_message.message`${require_message.optionName(shortOption)} cannot be used multiple times.`
@@ -8,6 +8,10 @@ import { extractLeadingCommandNames } from "./usage-internals.js";
8
8
  import { isValueParser } from "./valueparser.js";
9
9
 
10
10
  //#region src/primitives.ts
11
+ function hasParsedOptionValue(state, valueParser) {
12
+ if (valueParser != null) return isDeferredParseState(state) || isDependencySourceState(state) || state != null && "success" in state && state.success;
13
+ return state != null && "success" in state && state.success && state.value === true;
14
+ }
11
15
  /**
12
16
  * Helper function to create the appropriate state for an option value.
13
17
  * - If the value parser is a DerivedValueParser, wraps the result in a DeferredParseState
@@ -354,8 +358,7 @@ function option(...args) {
354
358
  consumed: context.buffer.slice(0, 1)
355
359
  };
356
360
  if (optionNames$1.includes(context.buffer[0])) {
357
- const hasValue = valueParser != null ? context.state?.success || isDeferredParseState(context.state) || isDependencySourceState(context.state) : context.state?.success && context.state?.value;
358
- if (hasValue) return {
361
+ if (hasParsedOptionValue(context.state, valueParser)) return {
359
362
  success: false,
360
363
  consumed: 1,
361
364
  error: options.errors?.duplicate ? typeof options.errors.duplicate === "function" ? options.errors.duplicate(context.buffer[0]) : options.errors.duplicate : message`${optionName(context.buffer[0])} cannot be used multiple times.`
@@ -401,7 +404,7 @@ function option(...args) {
401
404
  const prefixes = optionNames$1.filter((name) => name.startsWith("--") || name.startsWith("/") || name.startsWith("-") && name.length > 2).map((name) => name.startsWith("/") ? `${name}:` : `${name}=`);
402
405
  for (const prefix of prefixes) {
403
406
  if (!context.buffer[0].startsWith(prefix)) continue;
404
- if (context.state?.success && (valueParser != null || context.state.value)) {
407
+ if (hasParsedOptionValue(context.state, valueParser)) {
405
408
  const optionName$1 = prefix.slice(0, -1);
406
409
  return {
407
410
  success: false,
@@ -439,7 +442,7 @@ function option(...args) {
439
442
  const shortOptions = optionNames$1.filter((name) => name.match(/^-[^-]$/));
440
443
  for (const shortOption of shortOptions) {
441
444
  if (!context.buffer[0].startsWith(shortOption)) continue;
442
- if (context.state?.success && (valueParser != null || context.state.value)) return {
445
+ if (hasParsedOptionValue(context.state, valueParser)) return {
443
446
  success: false,
444
447
  consumed: 1,
445
448
  error: options.errors?.duplicate ? typeof options.errors.duplicate === "function" ? options.errors.duplicate(shortOption) : options.errors.duplicate : message`${optionName(shortOption)} cannot be used multiple times.`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/core",
3
- "version": "1.0.0-dev.557+7de4cc60",
3
+ "version": "1.0.0-dev.559+88102fdb",
4
4
  "description": "Type-safe combinatorial command-line interface parser",
5
5
  "keywords": [
6
6
  "CLI",