UNPKG

kakapo

Version:

Next generation mocking framework in Javascript

49 lines (48 loc) 2.09 kB
"use strict"; 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); } }); };