UNPKG

workspaces-affected

Version:

This tool is providing support for running operations only on affected packages in your [npm workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces#defining-workspaces)

32 lines 851 B
export const flagsParser = (supportedFlags, args) => { const usedArgs = []; const parsed = Object.entries(supportedFlags).reduce((flagsAcc, [flag, flagType]) => { const value = args.reduce((acc, arg, index) => { if (arg === flag) { let argValue = args[index + 1]; if (flagType === 'boolean') { usedArgs.push(arg); if (argValue === 'true') { argValue = true; } else if (argValue === 'false') { argValue = false; } else { argValue = true; } } else { usedArgs.push(arg, args[index + 1]); } acc = argValue; } else if (arg.startsWith(`${flag}=`)) { usedArgs.push(arg); acc = arg.split('=')[1]; } return acc; }, ''); if (value !== '') { flagsAcc[flag] = value; } return flagsAcc; }, {}); return [parsed, args.filter(arg => !usedArgs.includes(arg))]; };