kakapo
Version:
Next generation mocking framework in Javascript
49 lines (48 loc) • 2.09 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var lodash_keys_1 = __importDefault(require("lodash.keys"));
var lodash_includes_1 = __importDefault(require("lodash.includes"));
var path_match_1 = __importDefault(require("path-match"));
var parse_url_1 = __importDefault(require("parse-url"));
var query_string_1 = __importDefault(require("query-string"));
var getRoute = function (_a, _b) {
var host = _a.host;
var handlers = _b.handlers, pathname = _b.pathname, fullpath = _b.fullpath;
var matchesPathname = function (path) { return path_match_1.default()(path)(pathname); };
var route = lodash_keys_1.default(handlers).reduce(function (result, key) { return matchesPathname(key) ? key : result; }, undefined);
var hasHost = lodash_includes_1.default(fullpath, host);
return route && hasHost ? route : null;
};
var extractUrl = function (_a, url, method) {
var routes = _a.routes;
return ({
handlers: routes[method],
pathname: parse_url_1.default(url).pathname,
fullpath: parse_url_1.default(url).href
});
};
exports.interceptorHelper = function (config) { return ({
getDB: function () {
return config.db;
},
getDelay: function () {
return config.requestDelay;
},
getHandler: function (url, method) {
var extractedUrl = extractUrl(config, url, method);
var route = getRoute(config, extractedUrl);
return route ? extractedUrl.handlers[route] : null;
},
getParams: function (url, method) {
var extractedUrl = extractUrl(config, url, method);
var matchesPathname = function (path) { return path_match_1.default()(path)(extractedUrl.pathname); };
var route = getRoute(config, extractedUrl);
return route ? matchesPathname(route) : null;
},
getQuery: function (url) {
return query_string_1.default.parse(parse_url_1.default(url).search);
}
}); };