hasFlags
Check if the current process's arguments contain the specified flags.
Use Array.prototype.every()
and Array.prototype.includes()
to check if process.argv
contains all the specified flags.
Use a regular expression to test if the specified flags are prefixed with -
or --
and prefix them accordingly.
typescript
const hasFlags = (args: string[], ...flags: string[]) =>
flags.every((flag) =>
args.includes(/^-{1,2}/.test(flag) ? flag : "--" + flag)
);
typescript
// node myScript.js -s --test --cool=true
hasFlags(process.argv, "-s"); // true
hasFlags(process.argv, "--test", "cool=true", "-s"); // true
hasFlags(process.argv, "special"); // false
// Another use case
const processHasFlags = curry(hasFlags, 2)(process.argv);
assertEquals(processHasFlags("-s"), true);
assertEquals(processHasFlags("--tests"), false);