Skip to content

Commit

Permalink
Add a new oldValue function param to the application flow
Browse files Browse the repository at this point in the history
  • Loading branch information
citkane committed Aug 26, 2022
1 parent fa012f0 commit d7f5a2e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
11 changes: 7 additions & 4 deletions src/lib/utils/options/declaration.ts
Expand Up @@ -429,7 +429,8 @@ const converters: {
[K in ParameterType]: (
value: unknown,
option: DeclarationOption & { type: K },
configPath: string
configPath: string,
oldValue: unknown
) => ParameterTypeToOptionTypeMap[K];
} = {
[ParameterType.String](value, option) {
Expand Down Expand Up @@ -580,16 +581,18 @@ const converters: {
export function convert(
value: unknown,
option: DeclarationOption,
configPath: string
configPath: string,
oldValue?: unknown
): unknown {
const _converters = converters as Record<
ParameterType,
(v: unknown, o: DeclarationOption, c: string) => unknown
(v: unknown, o: DeclarationOption, c: string, ov: unknown) => unknown
>;
return _converters[option.type ?? ParameterType.String](
value,
option,
configPath
configPath,
oldValue
);
}

Expand Down
7 changes: 6 additions & 1 deletion src/lib/utils/options/options.ts
Expand Up @@ -301,10 +301,15 @@ export class Options {
);
}

let oldValue = this._values[declaration.name];
if (typeof oldValue === "undefined")
oldValue = getDefaultValue(declaration);

const converted = convert(
value,
declaration,
configPath ?? process.cwd()
configPath ?? process.cwd(),
oldValue
);

if (declaration.type === ParameterType.Flags) {
Expand Down

0 comments on commit d7f5a2e

Please sign in to comment.