Skip to main content


TS JS Deno

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.

const hasFlags = (args: string[], ...flags: string[]) =>
flags.every((flag) =>
args.includes(/^-{1,2}/.test(flag) ? flag : "--" + flag)
// 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);