UNPKG

@booxood/mocker-api

Version:

This is dev support mock RESTful API.

39 lines (31 loc) 4.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pathMatch = pathMatch; var toRegexp = _interopRequireWildcard(require("path-to-regexp")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const pathToRegexp = toRegexp.pathToRegexp; function pathMatch(options) { options = options || {}; return function (path) { var keys = []; var re = pathToRegexp(path, keys, options); return function (pathname, params) { var m = re.exec(pathname); if (!m) return false; params = params || {}; var key, param; for (var i = 0; i < keys.length; i++) { key = keys[i]; param = m[i + 1]; if (!param) continue; params[key.name] = decodeURIComponent(param); if (key.repeat) params[key.name] = params[key.name].split(key.delimiter); } return params; }; }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJwYXRoVG9SZWdleHAiLCJ0b1JlZ2V4cCIsInBhdGhNYXRjaCIsIm9wdGlvbnMiLCJwYXRoIiwia2V5cyIsInJlIiwicGF0aG5hbWUiLCJwYXJhbXMiLCJtIiwiZXhlYyIsImtleSIsInBhcmFtIiwiaSIsImxlbmd0aCIsIm5hbWUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJyZXBlYXQiLCJzcGxpdCIsImRlbGltaXRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7QUFHQSxNQUFNQSxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0QsWUFBOUI7O0FBRU8sU0FBU0UsU0FBVCxDQUFtQkMsT0FBbkIsRUFBa0U7QUFDdkVBLEVBQUFBLE9BQU8sR0FBR0EsT0FBTyxJQUFJLEVBQXJCO0FBQ0EsU0FBTyxVQUFVQyxJQUFWLEVBQXdCO0FBQzdCLFFBQUlDLElBQTBFLEdBQUcsRUFBakY7QUFDQSxRQUFJQyxFQUFFLEdBQUdOLFlBQVksQ0FBQ0ksSUFBRCxFQUFPQyxJQUFQLEVBQWFGLE9BQWIsQ0FBckI7QUFDQSxXQUFPLFVBQVVJLFFBQVYsRUFBNEJDLE1BQTVCLEVBQTBDO0FBQy9DLFVBQUlDLENBQUMsR0FBR0gsRUFBRSxDQUFDSSxJQUFILENBQVFILFFBQVIsQ0FBUjtBQUNBLFVBQUksQ0FBQ0UsQ0FBTCxFQUFRLE9BQU8sS0FBUDtBQUNSRCxNQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSSxFQUFuQjtBQUNBLFVBQUlHLEdBQUosRUFBU0MsS0FBVDs7QUFDQSxXQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdSLElBQUksQ0FBQ1MsTUFBekIsRUFBaUNELENBQUMsRUFBbEMsRUFBc0M7QUFDcENGLFFBQUFBLEdBQUcsR0FBR04sSUFBSSxDQUFDUSxDQUFELENBQVY7QUFDQUQsUUFBQUEsS0FBSyxHQUFHSCxDQUFDLENBQUNJLENBQUMsR0FBRyxDQUFMLENBQVQ7QUFDQSxZQUFJLENBQUNELEtBQUwsRUFBWTtBQUNaSixRQUFBQSxNQUFNLENBQUNHLEdBQUcsQ0FBQ0ksSUFBTCxDQUFOLEdBQW1CQyxrQkFBa0IsQ0FBQ0osS0FBRCxDQUFyQztBQUNBLFlBQUlELEdBQUcsQ0FBQ00sTUFBUixFQUFnQlQsTUFBTSxDQUFDRyxHQUFHLENBQUNJLElBQUwsQ0FBTixHQUFtQlAsTUFBTSxDQUFDRyxHQUFHLENBQUNJLElBQUwsQ0FBTixDQUFpQkcsS0FBakIsQ0FBdUJQLEdBQUcsQ0FBQ1EsU0FBM0IsQ0FBbkI7QUFDakI7O0FBQ0QsYUFBT1gsTUFBUDtBQUNELEtBYkQ7QUFjRCxHQWpCRDtBQWtCRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0ICogYXMgdG9SZWdleHAgZnJvbSAncGF0aC10by1yZWdleHAnO1xuaW1wb3J0IHsgVG9rZW5zVG9SZWdleHBPcHRpb25zLCBQYXJzZU9wdGlvbnMsIEtleSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuY29uc3QgcGF0aFRvUmVnZXhwID0gdG9SZWdleHAucGF0aFRvUmVnZXhwO1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0aE1hdGNoKG9wdGlvbnM6IFRva2Vuc1RvUmVnZXhwT3B0aW9ucyAmIFBhcnNlT3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChwYXRoOiBzdHJpbmcpIHtcbiAgICB2YXIga2V5czogKEtleSAmIFRva2Vuc1RvUmVnZXhwT3B0aW9ucyAmIFBhcnNlT3B0aW9ucyAmIHsgcmVwZWF0OiBib29sZWFuIH0pW10gPSBbXTtcbiAgICB2YXIgcmUgPSBwYXRoVG9SZWdleHAocGF0aCwga2V5cywgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChwYXRobmFtZTogc3RyaW5nLCBwYXJhbXM/OiBhbnkpIHtcbiAgICAgIHZhciBtID0gcmUuZXhlYyhwYXRobmFtZSk7XG4gICAgICBpZiAoIW0pIHJldHVybiBmYWxzZTtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICAgIHZhciBrZXksIHBhcmFtO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgIHBhcmFtID0gbVtpICsgMV07XG4gICAgICAgIGlmICghcGFyYW0pIGNvbnRpbnVlO1xuICAgICAgICBwYXJhbXNba2V5Lm5hbWVdID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhcmFtKTtcbiAgICAgICAgaWYgKGtleS5yZXBlYXQpIHBhcmFtc1trZXkubmFtZV0gPSBwYXJhbXNba2V5Lm5hbWVdLnNwbGl0KGtleS5kZWxpbWl0ZXIpXG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cbiAgfVxufVxuXG4iXX0=