validate-options.js 1.2 KB

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