16 lines
549 B
TypeScript
16 lines
549 B
TypeScript
export function undefList<T, U>(opt: T | undefined, fn: (opt: T) => U) {
|
|
return opt === undefined ? [] : fn(opt)
|
|
}
|
|
|
|
export const optFlag = (flag: string, opt: string | undefined) => undefList(opt, opt => [flag, opt])
|
|
|
|
/**
|
|
* Generate a switch flag, like "--rebuild", "--nobuild"
|
|
*/
|
|
export const optSwitch = (flag: string, opt: boolean | undefined) => undefList(opt, opt => opt ? [flag] : [])
|
|
|
|
export const optMultiFlag = (flag: string, opt: string[] | undefined) =>
|
|
undefList(
|
|
opt,
|
|
opt => opt.flatMap(name => [flag, name]))
|