Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ParamError extends Error {
- constructor (message) {
- super(message)
- this.name = "ParamError"
- }
- }
- const ensureParams = (params, fn)=> {
- return (...args) => {
- for (let i = 0; i < params.length; i++) {
- if (args[i] === undefined) {
- throw new ParamError(`${params[i]} was not passed as a valid arg to ${fn.name}()`)
- }
- }
- return fn(...args)
- }
- }
- const add = ensureParams(['a', 'b'], function add(a, b) {
- return a + b
- })
- try {
- console.log(add(1))
- } catch (e) {
- console.error(e)
- }
- /*
- Error: b was not passed as a valid arg to add()
- at new ParamError (VM624 pen.js:13)
- at VM624 pen.js:32
- at VM624 pen.js:46
- */
Add Comment
Please, Sign In to add comment