@optique/core 0.10.0-dev.305 → 0.10.0-dev.309

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.
@@ -616,7 +616,7 @@ async function* suggestObjectAsync(context, prefix, parserPairs) {
616
616
  function collectDependencies(state, registry) {
617
617
  if (state === null || state === void 0) return;
618
618
  if (require_dependency.isDependencySourceState(state)) {
619
- const depId = state[require_dependency.DependencyId];
619
+ const depId = state[require_dependency.dependencyId];
620
620
  const result = state.result;
621
621
  if (result.success) registry.set(depId, result.value);
622
622
  return;
@@ -640,6 +640,28 @@ function isPlainObject(value) {
640
640
  return proto === Object.prototype || proto === null;
641
641
  }
642
642
  /**
643
+ * Collects dependency values for a DeferredParseState from the registry.
644
+ * Returns the collected values array, or null if any required dependency
645
+ * is missing (and no default is available).
646
+ */
647
+ function collectDependencyValues(deferredState, registry) {
648
+ const depIds = deferredState.dependencyIds;
649
+ if (depIds && depIds.length > 0) {
650
+ const defaults = deferredState.defaultValues;
651
+ const dependencyValues = [];
652
+ for (let i = 0; i < depIds.length; i++) {
653
+ const depId$1 = depIds[i];
654
+ if (registry.has(depId$1)) dependencyValues.push(registry.get(depId$1));
655
+ else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
656
+ else return null;
657
+ }
658
+ return dependencyValues;
659
+ }
660
+ const depId = deferredState.dependencyId;
661
+ if (registry.has(depId)) return registry.get(depId);
662
+ return null;
663
+ }
664
+ /**
643
665
  * Recursively resolves DeferredParseState objects found anywhere in the state tree.
644
666
  * Returns the resolved state (sync version).
645
667
  *
@@ -656,29 +678,11 @@ function resolveDeferred(state, registry) {
656
678
  if (state === null || state === void 0) return state;
657
679
  if (require_dependency.isDeferredParseState(state)) {
658
680
  const deferredState = state;
659
- const parser = deferredState.parser;
660
- const depIds = deferredState.dependencyIds;
661
- if (depIds && depIds.length > 0) {
662
- const defaults = deferredState.defaultValues;
663
- const dependencyValues = [];
664
- for (let i = 0; i < depIds.length; i++) {
665
- const depId$1 = depIds[i];
666
- if (registry.has(depId$1)) dependencyValues.push(registry.get(depId$1));
667
- else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
668
- else return deferredState.preliminaryResult;
669
- }
670
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValues);
671
- if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
672
- return reParseResult;
673
- }
674
- const depId = deferredState.dependencyId;
675
- if (registry.has(depId)) {
676
- const dependencyValue = registry.get(depId);
677
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValue);
678
- if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
679
- return reParseResult;
680
- }
681
- return deferredState.preliminaryResult;
681
+ const dependencyValue = collectDependencyValues(deferredState, registry);
682
+ if (dependencyValue === null) return deferredState.preliminaryResult;
683
+ const reParseResult = deferredState.parser[require_dependency.parseWithDependency](deferredState.rawInput, dependencyValue);
684
+ if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
685
+ return reParseResult;
682
686
  }
683
687
  if (require_dependency.isDependencySourceState(state)) return state;
684
688
  if (Array.isArray(state)) return state.map((item) => resolveDeferred(item, registry));
@@ -711,27 +715,10 @@ async function resolveDeferredAsync(state, registry) {
711
715
  if (state === null || state === void 0) return state;
712
716
  if (require_dependency.isDeferredParseState(state)) {
713
717
  const deferredState = state;
714
- const parser = deferredState.parser;
715
- const depIds = deferredState.dependencyIds;
716
- if (depIds && depIds.length > 0) {
717
- const defaults = deferredState.defaultValues;
718
- const dependencyValues = [];
719
- for (let i = 0; i < depIds.length; i++) {
720
- const depId$1 = depIds[i];
721
- if (registry.has(depId$1)) dependencyValues.push(registry.get(depId$1));
722
- else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
723
- else return deferredState.preliminaryResult;
724
- }
725
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValues);
726
- return Promise.resolve(reParseResult);
727
- }
728
- const depId = deferredState.dependencyId;
729
- if (registry.has(depId)) {
730
- const dependencyValue = registry.get(depId);
731
- const reParseResult = parser[require_dependency.ParseWithDependency](deferredState.rawInput, dependencyValue);
732
- return Promise.resolve(reParseResult);
733
- }
734
- return deferredState.preliminaryResult;
718
+ const dependencyValue = collectDependencyValues(deferredState, registry);
719
+ if (dependencyValue === null) return deferredState.preliminaryResult;
720
+ const reParseResult = deferredState.parser[require_dependency.parseWithDependency](deferredState.rawInput, dependencyValue);
721
+ return Promise.resolve(reParseResult);
735
722
  }
736
723
  if (require_dependency.isDependencySourceState(state)) return state;
737
724
  if (Array.isArray(state)) return Promise.all(state.map((item) => resolveDeferredAsync(item, registry)));
@@ -928,7 +915,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
928
915
  preCompletedState[fieldKey] = completed;
929
916
  preCompletedKeys.add(fieldKey);
930
917
  } else if (fieldState === void 0 && require_dependency.isWrappedDependencySource(fieldParser)) {
931
- const pendingState = fieldParser[require_dependency.WrappedDependencySourceMarker];
918
+ const pendingState = fieldParser[require_dependency.wrappedDependencySourceMarker];
932
919
  const completed = fieldParser.complete([pendingState]);
933
920
  if (require_dependency.isDependencySourceState(completed)) {
934
921
  preCompletedState[fieldKey] = completed;
@@ -979,7 +966,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
979
966
  preCompletedState[fieldKey] = completed;
980
967
  preCompletedKeys.add(fieldKey);
981
968
  } else if (fieldState === void 0 && require_dependency.isWrappedDependencySource(fieldParser)) {
982
- const pendingState = fieldParser[require_dependency.WrappedDependencySourceMarker];
969
+ const pendingState = fieldParser[require_dependency.wrappedDependencySourceMarker];
983
970
  const completed = await fieldParser.complete([pendingState]);
984
971
  if (require_dependency.isDependencySourceState(completed)) {
985
972
  preCompletedState[fieldKey] = completed;
@@ -1242,7 +1229,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1242
1229
  const completed = elementParser.complete([elementParser.initialState]);
1243
1230
  preCompletedState[i] = completed;
1244
1231
  } else if (elementState === void 0 && require_dependency.isWrappedDependencySource(elementParser)) {
1245
- const pendingState = elementParser[require_dependency.WrappedDependencySourceMarker];
1232
+ const pendingState = elementParser[require_dependency.wrappedDependencySourceMarker];
1246
1233
  const completed = elementParser.complete([pendingState]);
1247
1234
  preCompletedState[i] = completed;
1248
1235
  } else preCompletedState[i] = elementState;
@@ -1291,7 +1278,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1291
1278
  const completed = await elementParser.complete([elementParser.initialState]);
1292
1279
  preCompletedState[i] = completed;
1293
1280
  } else if (elementState === void 0 && require_dependency.isWrappedDependencySource(elementParser)) {
1294
- const pendingState = elementParser[require_dependency.WrappedDependencySourceMarker];
1281
+ const pendingState = elementParser[require_dependency.wrappedDependencySourceMarker];
1295
1282
  const completed = await elementParser.complete([pendingState]);
1296
1283
  preCompletedState[i] = completed;
1297
1284
  } else preCompletedState[i] = elementState;
@@ -1,5 +1,5 @@
1
1
  import { message, optionName, values } from "./message.js";
2
- import { DependencyId, DependencyRegistry, ParseWithDependency, WrappedDependencySourceMarker, isDeferredParseState, isDependencySourceState, isPendingDependencySourceState, isWrappedDependencySource } from "./dependency.js";
2
+ import { DependencyRegistry, dependencyId, isDeferredParseState, isDependencySourceState, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, wrappedDependencySourceMarker } from "./dependency.js";
3
3
  import { extractArgumentMetavars, extractCommandNames, extractOptionNames } from "./usage.js";
4
4
  import { createErrorWithSuggestions, deduplicateSuggestions } from "./suggestion.js";
5
5
 
@@ -616,7 +616,7 @@ async function* suggestObjectAsync(context, prefix, parserPairs) {
616
616
  function collectDependencies(state, registry) {
617
617
  if (state === null || state === void 0) return;
618
618
  if (isDependencySourceState(state)) {
619
- const depId = state[DependencyId];
619
+ const depId = state[dependencyId];
620
620
  const result = state.result;
621
621
  if (result.success) registry.set(depId, result.value);
622
622
  return;
@@ -640,6 +640,28 @@ function isPlainObject(value) {
640
640
  return proto === Object.prototype || proto === null;
641
641
  }
642
642
  /**
643
+ * Collects dependency values for a DeferredParseState from the registry.
644
+ * Returns the collected values array, or null if any required dependency
645
+ * is missing (and no default is available).
646
+ */
647
+ function collectDependencyValues(deferredState, registry) {
648
+ const depIds = deferredState.dependencyIds;
649
+ if (depIds && depIds.length > 0) {
650
+ const defaults = deferredState.defaultValues;
651
+ const dependencyValues = [];
652
+ for (let i = 0; i < depIds.length; i++) {
653
+ const depId$1 = depIds[i];
654
+ if (registry.has(depId$1)) dependencyValues.push(registry.get(depId$1));
655
+ else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
656
+ else return null;
657
+ }
658
+ return dependencyValues;
659
+ }
660
+ const depId = deferredState.dependencyId;
661
+ if (registry.has(depId)) return registry.get(depId);
662
+ return null;
663
+ }
664
+ /**
643
665
  * Recursively resolves DeferredParseState objects found anywhere in the state tree.
644
666
  * Returns the resolved state (sync version).
645
667
  *
@@ -656,29 +678,11 @@ function resolveDeferred(state, registry) {
656
678
  if (state === null || state === void 0) return state;
657
679
  if (isDeferredParseState(state)) {
658
680
  const deferredState = state;
659
- const parser = deferredState.parser;
660
- const depIds = deferredState.dependencyIds;
661
- if (depIds && depIds.length > 0) {
662
- const defaults = deferredState.defaultValues;
663
- const dependencyValues = [];
664
- for (let i = 0; i < depIds.length; i++) {
665
- const depId$1 = depIds[i];
666
- if (registry.has(depId$1)) dependencyValues.push(registry.get(depId$1));
667
- else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
668
- else return deferredState.preliminaryResult;
669
- }
670
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValues);
671
- if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
672
- return reParseResult;
673
- }
674
- const depId = deferredState.dependencyId;
675
- if (registry.has(depId)) {
676
- const dependencyValue = registry.get(depId);
677
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValue);
678
- if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
679
- return reParseResult;
680
- }
681
- return deferredState.preliminaryResult;
681
+ const dependencyValue = collectDependencyValues(deferredState, registry);
682
+ if (dependencyValue === null) return deferredState.preliminaryResult;
683
+ const reParseResult = deferredState.parser[parseWithDependency](deferredState.rawInput, dependencyValue);
684
+ if (reParseResult instanceof Promise) return deferredState.preliminaryResult;
685
+ return reParseResult;
682
686
  }
683
687
  if (isDependencySourceState(state)) return state;
684
688
  if (Array.isArray(state)) return state.map((item) => resolveDeferred(item, registry));
@@ -711,27 +715,10 @@ async function resolveDeferredAsync(state, registry) {
711
715
  if (state === null || state === void 0) return state;
712
716
  if (isDeferredParseState(state)) {
713
717
  const deferredState = state;
714
- const parser = deferredState.parser;
715
- const depIds = deferredState.dependencyIds;
716
- if (depIds && depIds.length > 0) {
717
- const defaults = deferredState.defaultValues;
718
- const dependencyValues = [];
719
- for (let i = 0; i < depIds.length; i++) {
720
- const depId$1 = depIds[i];
721
- if (registry.has(depId$1)) dependencyValues.push(registry.get(depId$1));
722
- else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
723
- else return deferredState.preliminaryResult;
724
- }
725
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValues);
726
- return Promise.resolve(reParseResult);
727
- }
728
- const depId = deferredState.dependencyId;
729
- if (registry.has(depId)) {
730
- const dependencyValue = registry.get(depId);
731
- const reParseResult = parser[ParseWithDependency](deferredState.rawInput, dependencyValue);
732
- return Promise.resolve(reParseResult);
733
- }
734
- return deferredState.preliminaryResult;
718
+ const dependencyValue = collectDependencyValues(deferredState, registry);
719
+ if (dependencyValue === null) return deferredState.preliminaryResult;
720
+ const reParseResult = deferredState.parser[parseWithDependency](deferredState.rawInput, dependencyValue);
721
+ return Promise.resolve(reParseResult);
735
722
  }
736
723
  if (isDependencySourceState(state)) return state;
737
724
  if (Array.isArray(state)) return Promise.all(state.map((item) => resolveDeferredAsync(item, registry)));
@@ -928,7 +915,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
928
915
  preCompletedState[fieldKey] = completed;
929
916
  preCompletedKeys.add(fieldKey);
930
917
  } else if (fieldState === void 0 && isWrappedDependencySource(fieldParser)) {
931
- const pendingState = fieldParser[WrappedDependencySourceMarker];
918
+ const pendingState = fieldParser[wrappedDependencySourceMarker];
932
919
  const completed = fieldParser.complete([pendingState]);
933
920
  if (isDependencySourceState(completed)) {
934
921
  preCompletedState[fieldKey] = completed;
@@ -979,7 +966,7 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
979
966
  preCompletedState[fieldKey] = completed;
980
967
  preCompletedKeys.add(fieldKey);
981
968
  } else if (fieldState === void 0 && isWrappedDependencySource(fieldParser)) {
982
- const pendingState = fieldParser[WrappedDependencySourceMarker];
969
+ const pendingState = fieldParser[wrappedDependencySourceMarker];
983
970
  const completed = await fieldParser.complete([pendingState]);
984
971
  if (isDependencySourceState(completed)) {
985
972
  preCompletedState[fieldKey] = completed;
@@ -1242,7 +1229,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1242
1229
  const completed = elementParser.complete([elementParser.initialState]);
1243
1230
  preCompletedState[i] = completed;
1244
1231
  } else if (elementState === void 0 && isWrappedDependencySource(elementParser)) {
1245
- const pendingState = elementParser[WrappedDependencySourceMarker];
1232
+ const pendingState = elementParser[wrappedDependencySourceMarker];
1246
1233
  const completed = elementParser.complete([pendingState]);
1247
1234
  preCompletedState[i] = completed;
1248
1235
  } else preCompletedState[i] = elementState;
@@ -1291,7 +1278,7 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
1291
1278
  const completed = await elementParser.complete([elementParser.initialState]);
1292
1279
  preCompletedState[i] = completed;
1293
1280
  } else if (elementState === void 0 && isWrappedDependencySource(elementParser)) {
1294
- const pendingState = elementParser[WrappedDependencySourceMarker];
1281
+ const pendingState = elementParser[wrappedDependencySourceMarker];
1295
1282
  const completed = await elementParser.complete([pendingState]);
1296
1283
  preCompletedState[i] = completed;
1297
1284
  } else preCompletedState[i] = elementState;