UNPKG

google-it-reborn

Version:

A CLI and Node.js library to help retrieve, display, and store Google search results

38 lines (32 loc) 1.18 kB
const MISSING_QUERY = 'missing_query'; const OUTPUT_ARG_MUST_BE_STRING = 'output_arg_must_be_string'; const MUST_END_IN_JSON = 'must_end_in_json'; const ONLY_ONE_NOT_BOTH = 'only_one_not_both'; function getError(reason) { return { valid: false, Error: reason }; } const validationMap = { [MISSING_QUERY]: getError('Missing query'), [OUTPUT_ARG_MUST_BE_STRING]: getError('Output argument must be string'), [MUST_END_IN_JSON]: getError('Output argument must end in .json'), [ONLY_ONE_NOT_BOTH]: getError('Can only use --no-display when --output is used as well'), }; function getPotentialError(args) { let error = null; if (!args.query) { error = MISSING_QUERY; } else if (args.output && typeof args.output !== 'string') { error = OUTPUT_ARG_MUST_BE_STRING; } else if (args.output && !args.output.endsWith('.json')) { error = MUST_END_IN_JSON; } else if (args['no-display'] && !args.output) { error = ONLY_ONE_NOT_BOTH; } return validationMap[error]; } function validateCLIArguments(args) { const result = { valid: true }; const error = getPotentialError(args); return error || result; } module.exports = validateCLIArguments;