Skip to content

Commit be130fe

Browse files
authored
fix: make BooleanArgument/resolveBoolean's contexts immutable (#338)
1 parent 4d4452d commit be130fe

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/arguments/CoreBoolean.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export class CoreArgument extends Argument<boolean> {
77
super(context, { name: 'boolean' });
88
}
99

10-
public run(parameter: string, context: { truths?: string[]; falses?: string[] } & Argument.Context): Argument.Result<boolean> {
10+
public run(parameter: string, context: { readonly truths?: string[]; falses?: readonly string[] } & Argument.Context): Argument.Result<boolean> {
1111
const resolved = resolveBoolean(parameter, { truths: context.truths, falses: context.falses });
1212
if (resolved.success) return this.ok(resolved.value);
1313
return this.error({

src/lib/resolvers/boolean.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Identifiers } from '../errors/Identifiers';
22
import { err, ok, Result } from '../parsers/Result';
33

4-
const baseTruths = ['1', 'true', '+', 't', 'yes', 'y'];
5-
const baseFalses = ['0', 'false', '-', 'f', 'no', 'n'];
4+
const baseTruths = ['1', 'true', '+', 't', 'yes', 'y'] as const;
5+
const baseFalses = ['0', 'false', '-', 'f', 'no', 'n'] as const;
66

77
export function resolveBoolean(
88
parameter: string,
9-
customs?: { truths?: string[]; falses?: string[] }
9+
customs?: { truths?: readonly string[]; falses?: readonly string[] }
1010
): Result<boolean, Identifiers.ArgumentBooleanError> {
1111
const boolean = parameter.toLowerCase();
1212
if ([...baseTruths, ...(customs?.truths ?? [])].includes(boolean)) return ok(true);

0 commit comments

Comments
 (0)