UNPKG

nock-knock

Version:

Advanced router handling for nock

42 lines (33 loc) 1.06 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = knock; var _routable = require('routable'); var _routable2 = _interopRequireDefault(_routable); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Parameter based route validation for Nock. * * @param {String} path The path of the URL we need to validate. * @param {Object} validators Validators for each param of the path. * @returns {Function} Nock path validator. * @public */ function knock(path) { var validators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var route = new _routable2.default(path); /** * The actual path validation function. * * @returns {Boolean} Indication if we past the test. * @private */ return function parser(url) { var params = route.exec(url) || {}; return Object.keys(params).every(function every(key) { if (!(key in validators)) return true; return validators[key](params[key]); }); }; }