Guest User

Untitled

a guest
May 26th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. class ParamError extends Error {
  2. constructor (message) {
  3. super(message)
  4. this.name = "ParamError"
  5. }
  6. }
  7.  
  8. const ensureParams = (params, fn)=> {
  9. return (...args) => {
  10. for (let i = 0; i < params.length; i++) {
  11. if (args[i] === undefined) {
  12. throw new ParamError(`${params[i]} was not passed as a valid arg to ${fn.name}()`)
  13. }
  14. }
  15. return fn(...args)
  16. }
  17. }
  18.  
  19. const add = ensureParams(['a', 'b'], function add(a, b) {
  20. return a + b
  21. })
  22.  
  23. try {
  24. console.log(add(1))
  25. } catch (e) {
  26. console.error(e)
  27. }
  28.  
  29. /*
  30. Error: b was not passed as a valid arg to add()
  31. at new ParamError (VM624 pen.js:13)
  32. at VM624 pen.js:32
  33. at VM624 pen.js:46
  34. */
Add Comment
Please, Sign In to add comment