validate-options.js 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. const validateOptions = options => {
  2. if (typeof options !== 'object' || !options)
  3. throw new TypeError('invalid options object provided to runScript')
  4. const {
  5. event,
  6. path,
  7. scriptShell,
  8. env = {},
  9. stdio = 'pipe',
  10. args = [],
  11. cmd,
  12. } = options
  13. if (!event || typeof event !== 'string')
  14. throw new TypeError('valid event not provided to runScript')
  15. if (!path || typeof path !== 'string')
  16. throw new TypeError('valid path not provided to runScript')
  17. if (scriptShell !== undefined && typeof scriptShell !== 'string')
  18. throw new TypeError('invalid scriptShell option provided to runScript')
  19. if (typeof env !== 'object' || !env)
  20. throw new TypeError('invalid env option provided to runScript')
  21. if (typeof stdio !== 'string' && !Array.isArray(stdio))
  22. throw new TypeError('invalid stdio option provided to runScript')
  23. if (!Array.isArray(args) || args.some(a => typeof a !== 'string'))
  24. throw new TypeError('invalid args option provided to runScript')
  25. if (cmd !== undefined && typeof cmd !== 'string')
  26. throw new TypeError('invalid cmd option provided to runScript')
  27. }
  28. module.exports = validateOptions