@booxood/mocker-api
Version:
This is dev support mock RESTful API.
39 lines (31 loc) • 4.88 kB
JavaScript
;
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=