From 57e91a24b9eca919c3137aee17527e46f38d4071 Mon Sep 17 00:00:00 2001 From: Sayak Mukhopadhyay Date: Tue, 27 Dec 2022 16:37:32 +0530 Subject: [PATCH] feat: coerce some strings and numbers into boolean Signed-off-by: Sayak Mukhopadhyay --- packages/config/src/reader.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/config/src/reader.ts b/packages/config/src/reader.ts index 743c20f95c..6b0b418559 100644 --- a/packages/config/src/reader.ts +++ b/packages/config/src/reader.ts @@ -280,19 +280,20 @@ export class ConfigReader implements Config { /** {@inheritdoc Config.getOptionalBoolean} */ getOptionalBoolean(key: string): boolean | undefined { - const value = this.readConfigValue( + const value = this.readConfigValue( key, val => typeof val === 'boolean' || + typeof val === 'number' || typeof val === 'string' || { expected: 'boolean' }, ); if (typeof value === 'boolean' || value === undefined) { return value; } let boolean; - if (value === 'true') { + if (/^(?:y|yes|true|1|on)$/i.test(value as string) || value === 1) { boolean = true; - } else if (value === 'false') { + } else if (/^(?:n|no|false|0|off)$/i.test(value as string) || value === 0) { boolean = false; } else { throw new Error(