@optique/core 0.10.0-dev.375 → 0.10.0-dev.377

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.
@@ -1415,7 +1415,11 @@ function merge(...args) {
1415
1415
  const syncParsers = syncSorted.map(([p]) => p);
1416
1416
  if (!options.allowDuplicates) checkDuplicateOptionNames(sorted.map(([parser, originalIndex]) => [String(originalIndex), parser.usage]));
1417
1417
  const initialState = {};
1418
- for (const parser of parsers) if (parser.initialState && typeof parser.initialState === "object") for (const field in parser.initialState) initialState[field] = parser.initialState[field];
1418
+ for (let i = 0; i < parsers.length; i++) {
1419
+ const parser = parsers[i];
1420
+ if (parser.initialState === void 0) initialState[`__parser_${i}`] = void 0;
1421
+ else if (parser.initialState && typeof parser.initialState === "object") for (const field in parser.initialState) initialState[field] = parser.initialState[field];
1422
+ }
1419
1423
  const extractParserState = (parser, context, index) => {
1420
1424
  if (parser.initialState === void 0) {
1421
1425
  const key = `__parser_${index}`;
@@ -1415,7 +1415,11 @@ function merge(...args) {
1415
1415
  const syncParsers = syncSorted.map(([p]) => p);
1416
1416
  if (!options.allowDuplicates) checkDuplicateOptionNames(sorted.map(([parser, originalIndex]) => [String(originalIndex), parser.usage]));
1417
1417
  const initialState = {};
1418
- for (const parser of parsers) if (parser.initialState && typeof parser.initialState === "object") for (const field in parser.initialState) initialState[field] = parser.initialState[field];
1418
+ for (let i = 0; i < parsers.length; i++) {
1419
+ const parser = parsers[i];
1420
+ if (parser.initialState === void 0) initialState[`__parser_${i}`] = void 0;
1421
+ else if (parser.initialState && typeof parser.initialState === "object") for (const field in parser.initialState) initialState[field] = parser.initialState[field];
1422
+ }
1419
1423
  const extractParserState = (parser, context, index) => {
1420
1424
  if (parser.initialState === void 0) {
1421
1425
  const key = `__parser_${index}`;
package/dist/facade.cjs CHANGED
@@ -927,19 +927,19 @@ async function runWith(parser, programName, contexts, options) {
927
927
  }
928
928
  const augmentedParser1 = injectAnnotationsIntoParser(parser, phase1Annotations);
929
929
  let firstPassResult;
930
+ let firstPassFailed = false;
930
931
  try {
931
932
  if (parser.$mode === "async") firstPassResult = await require_parser.parseAsync(augmentedParser1, args);
932
933
  else firstPassResult = require_parser.parseSync(augmentedParser1, args);
933
934
  if (typeof firstPassResult === "object" && firstPassResult !== null && "success" in firstPassResult) {
934
935
  const result = firstPassResult;
935
936
  if (result.success) firstPassResult = result.value;
936
- else {
937
- const augmentedParser = injectAnnotationsIntoParser(parser, phase1Annotations);
938
- if (parser.$mode === "async") return runParser(augmentedParser, programName, args, options);
939
- return Promise.resolve(runParser(augmentedParser, programName, args, options));
940
- }
937
+ else firstPassFailed = true;
941
938
  }
942
939
  } catch {
940
+ firstPassFailed = true;
941
+ }
942
+ if (firstPassFailed) {
943
943
  const augmentedParser = injectAnnotationsIntoParser(parser, phase1Annotations);
944
944
  if (parser.$mode === "async") return runParser(augmentedParser, programName, args, options);
945
945
  return Promise.resolve(runParser(augmentedParser, programName, args, options));
package/dist/facade.js CHANGED
@@ -927,19 +927,19 @@ async function runWith(parser, programName, contexts, options) {
927
927
  }
928
928
  const augmentedParser1 = injectAnnotationsIntoParser(parser, phase1Annotations);
929
929
  let firstPassResult;
930
+ let firstPassFailed = false;
930
931
  try {
931
932
  if (parser.$mode === "async") firstPassResult = await parseAsync(augmentedParser1, args);
932
933
  else firstPassResult = parseSync(augmentedParser1, args);
933
934
  if (typeof firstPassResult === "object" && firstPassResult !== null && "success" in firstPassResult) {
934
935
  const result = firstPassResult;
935
936
  if (result.success) firstPassResult = result.value;
936
- else {
937
- const augmentedParser = injectAnnotationsIntoParser(parser, phase1Annotations);
938
- if (parser.$mode === "async") return runParser(augmentedParser, programName, args, options);
939
- return Promise.resolve(runParser(augmentedParser, programName, args, options));
940
- }
937
+ else firstPassFailed = true;
941
938
  }
942
939
  } catch {
940
+ firstPassFailed = true;
941
+ }
942
+ if (firstPassFailed) {
943
943
  const augmentedParser = injectAnnotationsIntoParser(parser, phase1Annotations);
944
944
  if (parser.$mode === "async") return runParser(augmentedParser, programName, args, options);
945
945
  return Promise.resolve(runParser(augmentedParser, programName, args, options));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/core",
3
- "version": "0.10.0-dev.375+fffd225e",
3
+ "version": "0.10.0-dev.377+69abd2d5",
4
4
  "description": "Type-safe combinatorial command-line interface parser",
5
5
  "keywords": [
6
6
  "CLI",