atcheck/lsscanner/new_ubuntu/node_modules/boolean/lib/boolean.ts

36 lines
1.4 KiB
TypeScript

const boolean = function (value: any): boolean {
if (typeof value === 'string') {
// According to our ESLint rules, the regular expression following below
// should be using a named capture group. This is an official part of
// ES2018, but Firefox fails to implement it. There has been an open issue
// for this (see https://bugzilla.mozilla.org/show_bug.cgi?id=1362154) since
// 2016 now, and Mozilla fails to fix this. To avoid breaking support with
// Firefox, we explicitly disable the ESLint rule here and use a regular
// expression without a named capture group. We should check from time to
// time, whether support in Firefox has finally been added. Besides the
// issue, we can check this using the following link to the kangax table:
// https://kangax.github.io/compat-table/es2016plus/#test-RegExp_named_capture_groups
// The original line, which is failing in Firefox:
// return /^(?<truthy>true|t|yes|y|on|1)$/iu.test(value.trim());
// The replacement line, which should be removed at some point in the
// future, including the ESLint comments:
/* eslint-disable prefer-named-capture-group */
return /^(true|t|yes|y|on|1)$/iu.test(value.trim());
/* eslint-enable prefer-named-capture-group */
}
if (typeof value === 'number') {
return value === 1;
}
if (typeof value === 'boolean') {
return value;
}
return false;
};
export { boolean };