@cli-forge/parser 0.9.0 → 0.10.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cli-forge/parser",
3
- "version": "0.9.0",
3
+ "version": "0.10.1",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -56,11 +56,23 @@ export type CommonOptionConfig<T, TCoerce = T, TChoices = T[]> = {
56
56
  /**
57
57
  * What key should the value be read from in process.env
58
58
  */
59
- key: string;
59
+ key?: string;
60
60
  /**
61
61
  * If set to false, ignore prefix provided by .env() call.
62
62
  */
63
63
  prefix?: boolean;
64
+ /**
65
+ * If set to false, the option will not be set in process.env, even if the global env option is set to reflect.
66
+ * If set to true, the option will be set in process.env, even if the global env option is set to ignore.
67
+ */
68
+ reflect?: boolean;
69
+ /**
70
+ * If set to false the option will not be read from process.env. This is useful if you
71
+ * want to set the value in process.env, but not read it from there.
72
+ *
73
+ * @default true
74
+ */
75
+ populate?: boolean;
64
76
  };
65
77
  /**
66
78
  * If set, the option will be marked as deprecated, with the provided message. This will not effect runtime behavior,
@@ -4,13 +4,19 @@ import { ObjectOptionConfig } from './object';
4
4
  /**
5
5
  * Converts an OptionConfig to the TypeScript type for the parsed value.
6
6
  */
7
- export type OptionConfigToType<TOptionConfig extends OptionConfig> = InferTChoice<TOptionConfig> extends [never] ? TOptionConfig['coerce'] extends (s: any) => any ? ReturnType<TOptionConfig['coerce']> : {
7
+ export type OptionConfigToType<TOptionConfig extends OptionConfig> = UndefinedIfRequiredAndNoDefault<TOptionConfig, InferTChoice<TOptionConfig> extends [never] ? TOptionConfig['coerce'] extends (s: any) => any ? ReturnType<TOptionConfig['coerce']> : {
8
8
  string: string;
9
9
  number: number;
10
10
  boolean: boolean;
11
11
  array: ArrayItems<TOptionConfig>[];
12
12
  object: TOptionConfig extends ObjectOptionConfig ? ResolveTProperties<TOptionConfig['properties']> & AdditionalProperties<TOptionConfig> : never;
13
- }[TOptionConfig['type']] : InferTChoice<TOptionConfig>;
13
+ }[TOptionConfig['type']] : InferTChoice<TOptionConfig>>;
14
+ export type UndefinedIfRequiredAndNoDefault<TOptionConfig extends OptionConfig, ResolvedValue> = TOptionConfig extends {
15
+ required: true;
16
+ } ? ResolvedValue : TOptionConfig extends {
17
+ default: unknown;
18
+ } ? ResolvedValue : // Option is not required and has no default value
19
+ ResolvedValue | undefined;
14
20
  type ArrayItems<TOptionConfig extends OptionConfig> = TOptionConfig extends ArrayOptionConfig<string | number> ? TOptionConfig['items'] extends 'string' ? string : number : never;
15
21
  type AdditionalProperties<TOptionConfig extends ObjectOptionConfig> = TOptionConfig['additionalProperties'] extends 'string' ? Record<string, string> : TOptionConfig['additionalProperties'] extends 'number' ? Record<string, number> : TOptionConfig['additionalProperties'] extends 'boolean' ? Record<string, boolean> : Record<string, never>;
16
22
  type ResolveTProperties<TProperties extends Record<string, OptionConfig>> = {
@@ -2,6 +2,14 @@ import { OptionConfigToType } from './option-types/option-config-to-type';
2
2
  import { InternalOptionConfig, OptionConfig } from './option-types';
3
3
  import { Parser, ParserContext } from './parsers/typings';
4
4
  import { ConfigurationProvider } from './config-files/configuration-loader';
5
+ /**
6
+ * Defines the option configuration passed to {@link ArgvParser.env}.
7
+ */
8
+ export type EnvOptionConfig = {
9
+ prefix?: string;
10
+ reflect?: boolean;
11
+ populate?: boolean;
12
+ };
5
13
  /**
6
14
  * Base type for parsed arguments.
7
15
  */
@@ -85,6 +93,7 @@ export declare class ArgvParser<TArgs extends ParsedArgs = {
85
93
  */
86
94
  private envPrefix?;
87
95
  private shouldReadFromEnv?;
96
+ private shouldReflectEnv?;
88
97
  /**
89
98
  * Creates a new parser. Normally using {@link parser} is preferred.
90
99
  * @param options
@@ -103,14 +112,103 @@ export declare class ArgvParser<TArgs extends ParsedArgs = {
103
112
  * @param config The configuration for the positional argument. See {@link OptionConfig}
104
113
  * @returns Updated parser instance with the new positional argument registered.
105
114
  */
106
- positional<TOption extends string, const TOptionConfig extends OptionConfig<any>>(name: TOption, config: TOptionConfig): ArgvParser<TArgs & { [key in TOption]: OptionConfigToType<TOptionConfig & {
115
+ positional<TOption extends string, const TOptionConfig extends OptionConfig<any>>(name: TOption, config: TOptionConfig): ArgvParser<TArgs & { [key in TOption]: import("./option-types").UndefinedIfRequiredAndNoDefault<TOptionConfig & {
116
+ readonly positional: true;
117
+ }, ("choices" extends "positional" | keyof TOptionConfig ? (TOptionConfig & {
118
+ readonly positional: true;
119
+ })[keyof TOptionConfig & "choices"] extends (infer TChoice)[] ? TChoice : (TOptionConfig & {
120
+ readonly positional: true;
121
+ })[keyof TOptionConfig & "choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? (TOptionConfig & {
122
+ readonly positional: true;
123
+ })["coerce"] extends (s: any) => any ? ReturnType<(TOptionConfig & {
124
+ readonly positional: true;
125
+ })["coerce"]> : {
126
+ string: string;
127
+ number: number;
128
+ boolean: boolean;
129
+ array: (TOptionConfig & {
130
+ readonly positional: true;
131
+ } extends infer T ? T extends TOptionConfig & {
132
+ readonly positional: true;
133
+ } ? T extends import("./option-types").ArrayOptionConfig<string | number> ? T["items"] extends "string" ? string : number : never : never : never)[];
134
+ object: TOptionConfig & {
135
+ readonly positional: true;
136
+ } extends infer T_1 ? T_1 extends TOptionConfig & {
137
+ readonly positional: true;
138
+ } ? T_1 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_1["properties"] extends infer T_2 extends Record<string, OptionConfig> ? { [key_1 in keyof T_2]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_1["properties"][key_1], ("choices" extends keyof T_1["properties"][key_1] ? T_1["properties"][key_1]["choices"] extends (infer TChoice)[] ? TChoice : T_1["properties"][key_1]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_1["properties"][key_1]["coerce"] extends (s: any) => any ? ReturnType<T_1["properties"][key_1]["coerce"]> : {
139
+ string: string;
140
+ number: number;
141
+ boolean: boolean;
142
+ array: (T_1["properties"][key_1] extends infer T_3 ? T_3 extends T_1["properties"][key_1] ? T_3 extends import("./option-types").ArrayOptionConfig<string | number> ? T_3["items"] extends "string" ? string : number : never : never : never)[];
143
+ object: T_1["properties"][key_1] extends infer T_4 ? T_4 extends T_1["properties"][key_1] ? T_4 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_4["properties"] extends infer T_5 extends Record<string, OptionConfig> ? { [key_2 in keyof T_5]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_4["properties"][key_2], ("choices" extends keyof T_4["properties"][key_2] ? T_4["properties"][key_2]["choices"] extends (infer TChoice)[] ? TChoice : T_4["properties"][key_2]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_4["properties"][key_2]["coerce"] extends (s: any) => any ? ReturnType<T_4["properties"][key_2]["coerce"]> : {
144
+ string: string;
145
+ number: number;
146
+ boolean: boolean;
147
+ array: (T_4["properties"][key_2] extends infer T_6 ? T_6 extends T_4["properties"][key_2] ? T_6 extends import("./option-types").ArrayOptionConfig<string | number> ? T_6["items"] extends "string" ? string : number : never : never : never)[];
148
+ object: T_4["properties"][key_2] extends infer T_7 ? T_7 extends T_4["properties"][key_2] ? T_7 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_7["properties"] extends infer T_8 extends Record<string, OptionConfig> ? { [key_3 in keyof T_8]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_7["properties"][key_3], ("choices" extends keyof T_7["properties"][key_3] ? T_7["properties"][key_3]["choices"] extends (infer TChoice)[] ? TChoice : T_7["properties"][key_3]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_7["properties"][key_3]["coerce"] extends (s: any) => any ? ReturnType<T_7["properties"][key_3]["coerce"]> : {
149
+ string: string;
150
+ number: number;
151
+ boolean: boolean;
152
+ array: (T_7["properties"][key_3] extends infer T_9 ? T_9 extends T_7["properties"][key_3] ? T_9 extends import("./option-types").ArrayOptionConfig<string | number> ? T_9["items"] extends "string" ? string : number : never : never : never)[];
153
+ object: T_7["properties"][key_3] extends infer T_10 ? T_10 extends T_7["properties"][key_3] ? T_10 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_10["properties"] extends infer T_11 extends Record<string, OptionConfig> ? { [key_4 in keyof T_11]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_10["properties"][key_4], ("choices" extends keyof T_10["properties"][key_4] ? T_10["properties"][key_4]["choices"] extends (infer TChoice)[] ? TChoice : T_10["properties"][key_4]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_10["properties"][key_4]["coerce"] extends (s: any) => any ? ReturnType<T_10["properties"][key_4]["coerce"]> : {
154
+ string: string;
155
+ number: number;
156
+ boolean: boolean;
157
+ array: (T_10["properties"][key_4] extends infer T_12 ? T_12 extends T_10["properties"][key_4] ? T_12 extends import("./option-types").ArrayOptionConfig<string | number> ? T_12["items"] extends "string" ? string : number : never : never : never)[];
158
+ object: T_10["properties"][key_4] extends infer T_13 ? T_13 extends T_10["properties"][key_4] ? T_13 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_13["properties"] extends infer T_14 extends Record<string, OptionConfig> ? { [key_5 in keyof T_14]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_13["properties"][key_5], ("choices" extends keyof T_13["properties"][key_5] ? T_13["properties"][key_5]["choices"] extends (infer TChoice)[] ? TChoice : T_13["properties"][key_5]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_13["properties"][key_5]["coerce"] extends (s: any) => any ? ReturnType<T_13["properties"][key_5]["coerce"]> : {
159
+ string: string;
160
+ number: number;
161
+ boolean: boolean;
162
+ array: (T_13["properties"][key_5] extends infer T_15 ? T_15 extends T_13["properties"][key_5] ? T_15 extends import("./option-types").ArrayOptionConfig<string | number> ? T_15["items"] extends "string" ? string : number : never : never : never)[];
163
+ object: T_13["properties"][key_5] extends infer T_16 ? T_16 extends T_13["properties"][key_5] ? T_16 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_16["properties"] extends infer T_17 extends Record<string, OptionConfig> ? { [key_6 in keyof T_17]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_16["properties"][key_6], ("choices" extends keyof T_16["properties"][key_6] ? T_16["properties"][key_6]["choices"] extends (infer TChoice)[] ? TChoice : T_16["properties"][key_6]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_16["properties"][key_6]["coerce"] extends (s: any) => any ? ReturnType<T_16["properties"][key_6]["coerce"]> : {
164
+ string: string;
165
+ number: number;
166
+ boolean: boolean;
167
+ array: (T_16["properties"][key_6] extends infer T_18 ? T_18 extends T_16["properties"][key_6] ? T_18 extends import("./option-types").ArrayOptionConfig<string | number> ? T_18["items"] extends "string" ? string : number : never : never : never)[];
168
+ object: T_16["properties"][key_6] extends infer T_19 ? T_19 extends T_16["properties"][key_6] ? T_19 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_19["properties"] extends infer T_20 extends Record<string, OptionConfig> ? { [key_7 in keyof T_20]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_19["properties"][key_7], ("choices" extends keyof T_19["properties"][key_7] ? T_19["properties"][key_7]["choices"] extends (infer TChoice)[] ? TChoice : T_19["properties"][key_7]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_19["properties"][key_7]["coerce"] extends (s: any) => any ? ReturnType<T_19["properties"][key_7]["coerce"]> : {
169
+ string: string;
170
+ number: number;
171
+ boolean: boolean;
172
+ array: (T_19["properties"][key_7] extends infer T_21 ? T_21 extends T_19["properties"][key_7] ? T_21 extends import("./option-types").ArrayOptionConfig<string | number> ? T_21["items"] extends "string" ? string : number : never : never : never)[];
173
+ object: T_19["properties"][key_7] extends infer T_22 ? T_22 extends T_19["properties"][key_7] ? T_22 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_22["properties"] extends infer T_23 extends Record<string, OptionConfig> ? { [key_8 in keyof T_23]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_22["properties"][key_8], ("choices" extends keyof T_22["properties"][key_8] ? T_22["properties"][key_8]["choices"] extends (infer TChoice)[] ? TChoice : T_22["properties"][key_8]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_22["properties"][key_8]["coerce"] extends (s: any) => any ? ReturnType<T_22["properties"][key_8]["coerce"]> : {
174
+ string: string;
175
+ number: number;
176
+ boolean: boolean;
177
+ array: (T_22["properties"][key_8] extends infer T_24 ? T_24 extends T_22["properties"][key_8] ? T_24 extends import("./option-types").ArrayOptionConfig<string | number> ? T_24["items"] extends "string" ? string : number : never : never : never)[];
178
+ object: T_22["properties"][key_8] extends infer T_25 ? T_25 extends T_22["properties"][key_8] ? T_25 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_25["properties"] extends infer T_26 extends Record<string, OptionConfig> ? { [key_9 in keyof T_26]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_25["properties"][key_9], ("choices" extends keyof T_25["properties"][key_9] ? T_25["properties"][key_9]["choices"] extends (infer TChoice)[] ? TChoice : T_25["properties"][key_9]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_25["properties"][key_9]["coerce"] extends (s: any) => any ? ReturnType<T_25["properties"][key_9]["coerce"]> : {
179
+ string: string;
180
+ number: number;
181
+ boolean: boolean;
182
+ array: (T_25["properties"][key_9] extends infer T_27 ? T_27 extends T_25["properties"][key_9] ? T_27 extends import("./option-types").ArrayOptionConfig<string | number> ? T_27["items"] extends "string" ? string : number : never : never : never)[];
183
+ object: T_25["properties"][key_9] extends infer T_28 ? T_28 extends T_25["properties"][key_9] ? T_28 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_28["properties"] extends infer T_29 extends Record<string, OptionConfig> ? { [key_10 in keyof T_29]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_28["properties"][key_10], ("choices" extends keyof T_28["properties"][key_10] ? T_28["properties"][key_10]["choices"] extends (infer TChoice)[] ? TChoice : T_28["properties"][key_10]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_28["properties"][key_10]["coerce"] extends (s: any) => any ? ReturnType<T_28["properties"][key_10]["coerce"]> : {
184
+ string: string;
185
+ number: number;
186
+ boolean: boolean;
187
+ array: (T_28["properties"][key_10] extends infer T_30 ? T_30 extends T_28["properties"][key_10] ? T_30 extends import("./option-types").ArrayOptionConfig<string | number> ? T_30["items"] extends "string" ? string : number : never : never : never)[];
188
+ object: T_28["properties"][key_10] extends infer T_31 ? T_31 extends T_28["properties"][key_10] ? T_31 extends import("./option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_31["properties"] extends infer T_32 extends Record<string, OptionConfig> ? { [key_11 in keyof T_32]: import("./option-types").UndefinedIfRequiredAndNoDefault<T_31["properties"][key_11], any>; } : never) & (T_31["additionalProperties"] extends "string" ? Record<string, string> : T_31["additionalProperties"] extends "number" ? Record<string, number> : T_31["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
189
+ }[T_28["properties"][key_10]["type"]] : "choices" extends keyof T_28["properties"][key_10] ? T_28["properties"][key_10]["choices"] extends (infer TChoice)[] ? TChoice : T_28["properties"][key_10]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_28["additionalProperties"] extends "string" ? Record<string, string> : T_28["additionalProperties"] extends "number" ? Record<string, number> : T_28["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
190
+ }[T_25["properties"][key_9]["type"]] : "choices" extends keyof T_25["properties"][key_9] ? T_25["properties"][key_9]["choices"] extends (infer TChoice)[] ? TChoice : T_25["properties"][key_9]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_25["additionalProperties"] extends "string" ? Record<string, string> : T_25["additionalProperties"] extends "number" ? Record<string, number> : T_25["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
191
+ }[T_22["properties"][key_8]["type"]] : "choices" extends keyof T_22["properties"][key_8] ? T_22["properties"][key_8]["choices"] extends (infer TChoice)[] ? TChoice : T_22["properties"][key_8]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_22["additionalProperties"] extends "string" ? Record<string, string> : T_22["additionalProperties"] extends "number" ? Record<string, number> : T_22["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
192
+ }[T_19["properties"][key_7]["type"]] : "choices" extends keyof T_19["properties"][key_7] ? T_19["properties"][key_7]["choices"] extends (infer TChoice)[] ? TChoice : T_19["properties"][key_7]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_19["additionalProperties"] extends "string" ? Record<string, string> : T_19["additionalProperties"] extends "number" ? Record<string, number> : T_19["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
193
+ }[T_16["properties"][key_6]["type"]] : "choices" extends keyof T_16["properties"][key_6] ? T_16["properties"][key_6]["choices"] extends (infer TChoice)[] ? TChoice : T_16["properties"][key_6]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_16["additionalProperties"] extends "string" ? Record<string, string> : T_16["additionalProperties"] extends "number" ? Record<string, number> : T_16["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
194
+ }[T_13["properties"][key_5]["type"]] : "choices" extends keyof T_13["properties"][key_5] ? T_13["properties"][key_5]["choices"] extends (infer TChoice)[] ? TChoice : T_13["properties"][key_5]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_13["additionalProperties"] extends "string" ? Record<string, string> : T_13["additionalProperties"] extends "number" ? Record<string, number> : T_13["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
195
+ }[T_10["properties"][key_4]["type"]] : "choices" extends keyof T_10["properties"][key_4] ? T_10["properties"][key_4]["choices"] extends (infer TChoice)[] ? TChoice : T_10["properties"][key_4]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_10["additionalProperties"] extends "string" ? Record<string, string> : T_10["additionalProperties"] extends "number" ? Record<string, number> : T_10["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
196
+ }[T_7["properties"][key_3]["type"]] : "choices" extends keyof T_7["properties"][key_3] ? T_7["properties"][key_3]["choices"] extends (infer TChoice)[] ? TChoice : T_7["properties"][key_3]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_7["additionalProperties"] extends "string" ? Record<string, string> : T_7["additionalProperties"] extends "number" ? Record<string, number> : T_7["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
197
+ }[T_4["properties"][key_2]["type"]] : "choices" extends keyof T_4["properties"][key_2] ? T_4["properties"][key_2]["choices"] extends (infer TChoice)[] ? TChoice : T_4["properties"][key_2]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_4["additionalProperties"] extends "string" ? Record<string, string> : T_4["additionalProperties"] extends "number" ? Record<string, number> : T_4["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
198
+ }[T_1["properties"][key_1]["type"]] : "choices" extends keyof T_1["properties"][key_1] ? T_1["properties"][key_1]["choices"] extends (infer TChoice)[] ? TChoice : T_1["properties"][key_1]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_1["additionalProperties"] extends "string" ? Record<string, string> : T_1["additionalProperties"] extends "number" ? Record<string, number> : T_1["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
199
+ }[(TOptionConfig & {
200
+ readonly positional: true;
201
+ })["type"]] : "choices" extends "positional" | keyof TOptionConfig ? (TOptionConfig & {
202
+ readonly positional: true;
203
+ })[keyof TOptionConfig & "choices"] extends (infer TChoice)[] ? TChoice : (TOptionConfig & {
107
204
  readonly positional: true;
108
- }>; }>;
205
+ })[keyof TOptionConfig & "choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; }>;
109
206
  /**
110
207
  * Enables environment variable population for options.
111
208
  * @param envPrefix Prefix for environment variables. The full environment variable name will be `${envPrefix}_${optionName}`.
112
209
  */
113
- env(envPrefix?: string): this;
210
+ env(envPrefix?: string): typeof this;
211
+ env(options: EnvOptionConfig): typeof this;
114
212
  /**
115
213
  * Registers a configuration provider to read configuration from.
116
214
  * @param provider The configuration provider to register.
@@ -125,8 +223,10 @@ export declare class ArgvParser<TArgs extends ParsedArgs = {
125
223
  private normalizeOptions;
126
224
  private validateAndNormalizeResults;
127
225
  private readFromEnv;
226
+ private reflectEnv;
128
227
  private cachedConfigKey;
129
228
  private cachedConfig;
229
+ private getEnvKey;
130
230
  private readFromConfig;
131
231
  /**
132
232
  * Registers that a set of options cannot be provided at the same time.
package/src/lib/parser.js CHANGED
@@ -47,6 +47,7 @@ class ArgvParser {
47
47
  */
48
48
  envPrefix;
49
49
  shouldReadFromEnv;
50
+ shouldReflectEnv;
50
51
  /**
51
52
  * Creates a new parser. Normally using {@link parser} is preferred.
52
53
  * @param options
@@ -98,13 +99,16 @@ class ArgvParser {
98
99
  positional: true,
99
100
  });
100
101
  }
101
- /**
102
- * Enables environment variable population for options.
103
- * @param envPrefix Prefix for environment variables. The full environment variable name will be `${envPrefix}_${optionName}`.
104
- */
105
- env(envPrefix) {
106
- this.envPrefix = envPrefix;
102
+ env(a1) {
103
+ if (typeof a1 === 'object') {
104
+ this.envPrefix = a1.prefix;
105
+ this.shouldReadFromEnv = a1.populate ?? true;
106
+ this.shouldReflectEnv = a1.reflect ?? true;
107
+ return this;
108
+ }
109
+ this.envPrefix = a1;
107
110
  this.shouldReadFromEnv = true;
111
+ this.shouldReflectEnv = true;
108
112
  return this;
109
113
  }
110
114
  /**
@@ -205,8 +209,16 @@ class ArgvParser {
205
209
  for (const key in this.configuredOptions) {
206
210
  const configuration = this.configuredOptions[key];
207
211
  if (normalized[key] === undefined) {
208
- if ((configuration.env !== false && this.shouldReadFromEnv) ||
209
- configuration.env) {
212
+ if (
213
+ // If env not disabled for this option, and env is enabled for parser
214
+ (configuration.env !== false &&
215
+ !(typeof configuration.env === 'object' &&
216
+ configuration.env.populate === false) &&
217
+ this.shouldReadFromEnv) ||
218
+ // OR the env is explicitly enabled for this option, and populate is not disabled
219
+ (configuration.env &&
220
+ !(typeof configuration.env === 'object' &&
221
+ configuration.env.populate === false))) {
210
222
  const envValue = this.readFromEnv(configuration);
211
223
  if (envValue) {
212
224
  normalized[configuration.key] = envValue;
@@ -222,6 +234,7 @@ class ArgvParser {
222
234
  normalized[configuration.key] ??= (0, read_default_value_1.readDefaultValue)(configuration)[0];
223
235
  }
224
236
  }
237
+ this.reflectEnv(configuration, normalized[configuration.key]);
225
238
  }
226
239
  return normalized;
227
240
  }
@@ -280,25 +293,46 @@ class ArgvParser {
280
293
  return normalized;
281
294
  }
282
295
  readFromEnv(configuration) {
283
- const { envKey: configuredKey, prefix } = typeof configuration.env === 'string'
284
- ? { envKey: configuration.env, prefix: this.envPrefix }
285
- : typeof configuration.env === 'boolean'
286
- ? { envKey: configuration.key, prefix: this.envPrefix }
287
- : {
288
- envKey: configuration.env?.key ?? configuration.key,
289
- prefix: configuration.env?.prefix === false ? undefined : this.envPrefix,
290
- };
291
- const envKey = (0, case_transformations_1.getEnvKey)(prefix, configuredKey);
296
+ const envKey = this.getEnvKey(configuration);
292
297
  const envValue = process.env[envKey];
293
298
  if (envValue) {
294
299
  return tryParseValue(this.parserMap[configuration.type], {
295
300
  config: configuration,
296
301
  tokens: [envValue],
302
+ providedFlag: `--${configuration.key}`,
297
303
  });
298
304
  }
299
305
  }
306
+ reflectEnv(configuration, value) {
307
+ // Skip reflection if:
308
+ if (
309
+ // - Global reflect is disabled, and local reflect is not enabled
310
+ (this.shouldReflectEnv !== true && configuration.env !== true) ||
311
+ // - Local reflect is explicitly disabled
312
+ configuration.env === false ||
313
+ (typeof configuration.env === 'object' &&
314
+ configuration.env.reflect === false)) {
315
+ return;
316
+ }
317
+ const envKey = this.getEnvKey(configuration);
318
+ if (value !== undefined) {
319
+ process.env[envKey] = value;
320
+ }
321
+ }
300
322
  cachedConfigKey;
301
323
  cachedConfig;
324
+ getEnvKey(configuration) {
325
+ const { envKey: configuredKey, prefix } = typeof configuration.env === 'string'
326
+ ? { envKey: configuration.env, prefix: this.envPrefix }
327
+ : typeof configuration.env === 'boolean'
328
+ ? { envKey: configuration.key, prefix: this.envPrefix }
329
+ : {
330
+ envKey: configuration.env?.key ?? configuration.key,
331
+ prefix: configuration.env?.prefix === false ? undefined : this.envPrefix,
332
+ };
333
+ const envKey = (0, case_transformations_1.getEnvKey)(prefix, configuredKey);
334
+ return envKey;
335
+ }
302
336
  readFromConfig(configuration) {
303
337
  if (this.cachedConfig === undefined ||
304
338
  this.cachedConfigKey !== this.configuredConfigurationProviders.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../packages/parser/src/lib/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../packages/parser/src/lib/parser.ts"],"names":[],"mappings":"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"}
@@ -327,5 +327,71 @@ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
327
327
  * @param config The configuration for the option
328
328
  * @returns A unary function that adds an option to an {@link ArgvParser}.
329
329
  */
330
- export declare function makeComposableOption<const TKey extends string, const TOptionConfig extends OptionConfig>(name: TKey, config: TOptionConfig): <const T extends ParsedArgs>(argv: ArgvParser<T>) => ArgvParser<T & { [key in TKey]: import("../option-types").OptionConfigToType<TOptionConfig>; }>;
330
+ export declare function makeComposableOption<const TKey extends string, const TOptionConfig extends OptionConfig>(name: TKey, config: TOptionConfig): <const T extends ParsedArgs>(argv: ArgvParser<T>) => ArgvParser<T & { [key in TKey]: import("../option-types").UndefinedIfRequiredAndNoDefault<TOptionConfig, ("choices" extends keyof TOptionConfig ? TOptionConfig[keyof TOptionConfig & "choices"] extends (infer TChoice)[] ? TChoice : TOptionConfig[keyof TOptionConfig & "choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? TOptionConfig["coerce"] extends (s: any) => any ? ReturnType<TOptionConfig["coerce"]> : {
331
+ string: string;
332
+ number: number;
333
+ boolean: boolean;
334
+ array: (TOptionConfig extends import("../option-types").ArrayOptionConfig<string | number> ? TOptionConfig["items"] extends "string" ? string : number : never)[];
335
+ object: TOptionConfig extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (TOptionConfig["properties"] extends infer T_1 extends Record<string, OptionConfig> ? { [key_1 in keyof T_1]: import("../option-types").UndefinedIfRequiredAndNoDefault<TOptionConfig["properties"][key_1], ("choices" extends keyof TOptionConfig["properties"][key_1] ? TOptionConfig["properties"][key_1]["choices"] extends (infer TChoice)[] ? TChoice : TOptionConfig["properties"][key_1]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? TOptionConfig["properties"][key_1]["coerce"] extends (s: any) => any ? ReturnType<TOptionConfig["properties"][key_1]["coerce"]> : {
336
+ string: string;
337
+ number: number;
338
+ boolean: boolean;
339
+ array: (TOptionConfig["properties"][key_1] extends infer T_2 ? T_2 extends TOptionConfig["properties"][key_1] ? T_2 extends import("../option-types").ArrayOptionConfig<string | number> ? T_2["items"] extends "string" ? string : number : never : never : never)[];
340
+ object: TOptionConfig["properties"][key_1] extends infer T_3 ? T_3 extends TOptionConfig["properties"][key_1] ? T_3 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_3["properties"] extends infer T_4 extends Record<string, OptionConfig> ? { [key_2 in keyof T_4]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_3["properties"][key_2], ("choices" extends keyof T_3["properties"][key_2] ? T_3["properties"][key_2]["choices"] extends (infer TChoice)[] ? TChoice : T_3["properties"][key_2]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_3["properties"][key_2]["coerce"] extends (s: any) => any ? ReturnType<T_3["properties"][key_2]["coerce"]> : {
341
+ string: string;
342
+ number: number;
343
+ boolean: boolean;
344
+ array: (T_3["properties"][key_2] extends infer T_5 ? T_5 extends T_3["properties"][key_2] ? T_5 extends import("../option-types").ArrayOptionConfig<string | number> ? T_5["items"] extends "string" ? string : number : never : never : never)[];
345
+ object: T_3["properties"][key_2] extends infer T_6 ? T_6 extends T_3["properties"][key_2] ? T_6 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_6["properties"] extends infer T_7 extends Record<string, OptionConfig> ? { [key_3 in keyof T_7]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_6["properties"][key_3], ("choices" extends keyof T_6["properties"][key_3] ? T_6["properties"][key_3]["choices"] extends (infer TChoice)[] ? TChoice : T_6["properties"][key_3]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_6["properties"][key_3]["coerce"] extends (s: any) => any ? ReturnType<T_6["properties"][key_3]["coerce"]> : {
346
+ string: string;
347
+ number: number;
348
+ boolean: boolean;
349
+ array: (T_6["properties"][key_3] extends infer T_8 ? T_8 extends T_6["properties"][key_3] ? T_8 extends import("../option-types").ArrayOptionConfig<string | number> ? T_8["items"] extends "string" ? string : number : never : never : never)[];
350
+ object: T_6["properties"][key_3] extends infer T_9 ? T_9 extends T_6["properties"][key_3] ? T_9 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_9["properties"] extends infer T_10 extends Record<string, OptionConfig> ? { [key_4 in keyof T_10]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_9["properties"][key_4], ("choices" extends keyof T_9["properties"][key_4] ? T_9["properties"][key_4]["choices"] extends (infer TChoice)[] ? TChoice : T_9["properties"][key_4]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_9["properties"][key_4]["coerce"] extends (s: any) => any ? ReturnType<T_9["properties"][key_4]["coerce"]> : {
351
+ string: string;
352
+ number: number;
353
+ boolean: boolean;
354
+ array: (T_9["properties"][key_4] extends infer T_11 ? T_11 extends T_9["properties"][key_4] ? T_11 extends import("../option-types").ArrayOptionConfig<string | number> ? T_11["items"] extends "string" ? string : number : never : never : never)[];
355
+ object: T_9["properties"][key_4] extends infer T_12 ? T_12 extends T_9["properties"][key_4] ? T_12 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_12["properties"] extends infer T_13 extends Record<string, OptionConfig> ? { [key_5 in keyof T_13]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_12["properties"][key_5], ("choices" extends keyof T_12["properties"][key_5] ? T_12["properties"][key_5]["choices"] extends (infer TChoice)[] ? TChoice : T_12["properties"][key_5]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_12["properties"][key_5]["coerce"] extends (s: any) => any ? ReturnType<T_12["properties"][key_5]["coerce"]> : {
356
+ string: string;
357
+ number: number;
358
+ boolean: boolean;
359
+ array: (T_12["properties"][key_5] extends infer T_14 ? T_14 extends T_12["properties"][key_5] ? T_14 extends import("../option-types").ArrayOptionConfig<string | number> ? T_14["items"] extends "string" ? string : number : never : never : never)[];
360
+ object: T_12["properties"][key_5] extends infer T_15 ? T_15 extends T_12["properties"][key_5] ? T_15 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_15["properties"] extends infer T_16 extends Record<string, OptionConfig> ? { [key_6 in keyof T_16]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_15["properties"][key_6], ("choices" extends keyof T_15["properties"][key_6] ? T_15["properties"][key_6]["choices"] extends (infer TChoice)[] ? TChoice : T_15["properties"][key_6]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_15["properties"][key_6]["coerce"] extends (s: any) => any ? ReturnType<T_15["properties"][key_6]["coerce"]> : {
361
+ string: string;
362
+ number: number;
363
+ boolean: boolean;
364
+ array: (T_15["properties"][key_6] extends infer T_17 ? T_17 extends T_15["properties"][key_6] ? T_17 extends import("../option-types").ArrayOptionConfig<string | number> ? T_17["items"] extends "string" ? string : number : never : never : never)[];
365
+ object: T_15["properties"][key_6] extends infer T_18 ? T_18 extends T_15["properties"][key_6] ? T_18 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_18["properties"] extends infer T_19 extends Record<string, OptionConfig> ? { [key_7 in keyof T_19]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_18["properties"][key_7], ("choices" extends keyof T_18["properties"][key_7] ? T_18["properties"][key_7]["choices"] extends (infer TChoice)[] ? TChoice : T_18["properties"][key_7]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_18["properties"][key_7]["coerce"] extends (s: any) => any ? ReturnType<T_18["properties"][key_7]["coerce"]> : {
366
+ string: string;
367
+ number: number;
368
+ boolean: boolean;
369
+ array: (T_18["properties"][key_7] extends infer T_20 ? T_20 extends T_18["properties"][key_7] ? T_20 extends import("../option-types").ArrayOptionConfig<string | number> ? T_20["items"] extends "string" ? string : number : never : never : never)[];
370
+ object: T_18["properties"][key_7] extends infer T_21 ? T_21 extends T_18["properties"][key_7] ? T_21 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_21["properties"] extends infer T_22 extends Record<string, OptionConfig> ? { [key_8 in keyof T_22]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_21["properties"][key_8], ("choices" extends keyof T_21["properties"][key_8] ? T_21["properties"][key_8]["choices"] extends (infer TChoice)[] ? TChoice : T_21["properties"][key_8]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_21["properties"][key_8]["coerce"] extends (s: any) => any ? ReturnType<T_21["properties"][key_8]["coerce"]> : {
371
+ string: string;
372
+ number: number;
373
+ boolean: boolean;
374
+ array: (T_21["properties"][key_8] extends infer T_23 ? T_23 extends T_21["properties"][key_8] ? T_23 extends import("../option-types").ArrayOptionConfig<string | number> ? T_23["items"] extends "string" ? string : number : never : never : never)[];
375
+ object: T_21["properties"][key_8] extends infer T_24 ? T_24 extends T_21["properties"][key_8] ? T_24 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_24["properties"] extends infer T_25 extends Record<string, OptionConfig> ? { [key_9 in keyof T_25]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_24["properties"][key_9], ("choices" extends keyof T_24["properties"][key_9] ? T_24["properties"][key_9]["choices"] extends (infer TChoice)[] ? TChoice : T_24["properties"][key_9]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_24["properties"][key_9]["coerce"] extends (s: any) => any ? ReturnType<T_24["properties"][key_9]["coerce"]> : {
376
+ string: string;
377
+ number: number;
378
+ boolean: boolean;
379
+ array: (T_24["properties"][key_9] extends infer T_26 ? T_26 extends T_24["properties"][key_9] ? T_26 extends import("../option-types").ArrayOptionConfig<string | number> ? T_26["items"] extends "string" ? string : number : never : never : never)[];
380
+ object: T_24["properties"][key_9] extends infer T_27 ? T_27 extends T_24["properties"][key_9] ? T_27 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_27["properties"] extends infer T_28 extends Record<string, OptionConfig> ? { [key_10 in keyof T_28]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_27["properties"][key_10], ("choices" extends keyof T_27["properties"][key_10] ? T_27["properties"][key_10]["choices"] extends (infer TChoice)[] ? TChoice : T_27["properties"][key_10]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never) extends [never] ? T_27["properties"][key_10]["coerce"] extends (s: any) => any ? ReturnType<T_27["properties"][key_10]["coerce"]> : {
381
+ string: string;
382
+ number: number;
383
+ boolean: boolean;
384
+ array: (T_27["properties"][key_10] extends infer T_29 ? T_29 extends T_27["properties"][key_10] ? T_29 extends import("../option-types").ArrayOptionConfig<string | number> ? T_29["items"] extends "string" ? string : number : never : never : never)[];
385
+ object: T_27["properties"][key_10] extends infer T_30 ? T_30 extends T_27["properties"][key_10] ? T_30 extends import("../option-types").ObjectOptionConfig<Record<string, string>, Record<string, any>> ? (T_30["properties"] extends infer T_31 extends Record<string, OptionConfig> ? { [key_11 in keyof T_31]: import("../option-types").UndefinedIfRequiredAndNoDefault<T_30["properties"][key_11], any>; } : never) & (T_30["additionalProperties"] extends "string" ? Record<string, string> : T_30["additionalProperties"] extends "number" ? Record<string, number> : T_30["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
386
+ }[T_27["properties"][key_10]["type"]] : "choices" extends keyof T_27["properties"][key_10] ? T_27["properties"][key_10]["choices"] extends (infer TChoice)[] ? TChoice : T_27["properties"][key_10]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_27["additionalProperties"] extends "string" ? Record<string, string> : T_27["additionalProperties"] extends "number" ? Record<string, number> : T_27["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
387
+ }[T_24["properties"][key_9]["type"]] : "choices" extends keyof T_24["properties"][key_9] ? T_24["properties"][key_9]["choices"] extends (infer TChoice)[] ? TChoice : T_24["properties"][key_9]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_24["additionalProperties"] extends "string" ? Record<string, string> : T_24["additionalProperties"] extends "number" ? Record<string, number> : T_24["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
388
+ }[T_21["properties"][key_8]["type"]] : "choices" extends keyof T_21["properties"][key_8] ? T_21["properties"][key_8]["choices"] extends (infer TChoice)[] ? TChoice : T_21["properties"][key_8]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_21["additionalProperties"] extends "string" ? Record<string, string> : T_21["additionalProperties"] extends "number" ? Record<string, number> : T_21["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
389
+ }[T_18["properties"][key_7]["type"]] : "choices" extends keyof T_18["properties"][key_7] ? T_18["properties"][key_7]["choices"] extends (infer TChoice)[] ? TChoice : T_18["properties"][key_7]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_18["additionalProperties"] extends "string" ? Record<string, string> : T_18["additionalProperties"] extends "number" ? Record<string, number> : T_18["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
390
+ }[T_15["properties"][key_6]["type"]] : "choices" extends keyof T_15["properties"][key_6] ? T_15["properties"][key_6]["choices"] extends (infer TChoice)[] ? TChoice : T_15["properties"][key_6]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_15["additionalProperties"] extends "string" ? Record<string, string> : T_15["additionalProperties"] extends "number" ? Record<string, number> : T_15["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
391
+ }[T_12["properties"][key_5]["type"]] : "choices" extends keyof T_12["properties"][key_5] ? T_12["properties"][key_5]["choices"] extends (infer TChoice)[] ? TChoice : T_12["properties"][key_5]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_12["additionalProperties"] extends "string" ? Record<string, string> : T_12["additionalProperties"] extends "number" ? Record<string, number> : T_12["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
392
+ }[T_9["properties"][key_4]["type"]] : "choices" extends keyof T_9["properties"][key_4] ? T_9["properties"][key_4]["choices"] extends (infer TChoice)[] ? TChoice : T_9["properties"][key_4]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_9["additionalProperties"] extends "string" ? Record<string, string> : T_9["additionalProperties"] extends "number" ? Record<string, number> : T_9["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
393
+ }[T_6["properties"][key_3]["type"]] : "choices" extends keyof T_6["properties"][key_3] ? T_6["properties"][key_3]["choices"] extends (infer TChoice)[] ? TChoice : T_6["properties"][key_3]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_6["additionalProperties"] extends "string" ? Record<string, string> : T_6["additionalProperties"] extends "number" ? Record<string, number> : T_6["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
394
+ }[T_3["properties"][key_2]["type"]] : "choices" extends keyof T_3["properties"][key_2] ? T_3["properties"][key_2]["choices"] extends (infer TChoice)[] ? TChoice : T_3["properties"][key_2]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (T_3["additionalProperties"] extends "string" ? Record<string, string> : T_3["additionalProperties"] extends "number" ? Record<string, number> : T_3["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never : never : never;
395
+ }[TOptionConfig["properties"][key_1]["type"]] : "choices" extends keyof TOptionConfig["properties"][key_1] ? TOptionConfig["properties"][key_1]["choices"] extends (infer TChoice)[] ? TChoice : TOptionConfig["properties"][key_1]["choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; } : never) & (TOptionConfig["additionalProperties"] extends "string" ? Record<string, string> : TOptionConfig["additionalProperties"] extends "number" ? Record<string, number> : TOptionConfig["additionalProperties"] extends "boolean" ? Record<string, boolean> : Record<string, never>) : never;
396
+ }[TOptionConfig["type"]] : "choices" extends keyof TOptionConfig ? TOptionConfig[keyof TOptionConfig & "choices"] extends (infer TChoice)[] ? TChoice : TOptionConfig[keyof TOptionConfig & "choices"] extends () => Array<infer TChoice_1> ? TChoice_1 : never : never>; }>;
331
397
  export {};