UNPKG

kakapo

Version:

Next generation mocking framework in Javascript

59 lines (58 loc) 2.43 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_merge_1 = __importDefault(require("lodash.merge")); var lodash_foreach_1 = __importDefault(require("lodash.foreach")); var interceptors_1 = require("../interceptors"); var environment_1 = __importDefault(require("../config/environment")); var browserStrategies = ['fetch', 'XMLHttpRequest']; var nodeStrategies = ['http', 'https']; var routerDefaultConfig = { strategies: environment_1.default.browserEnv ? browserStrategies : nodeStrategies }; var interceptorDefaultConfig = { db: null, host: '', requestDelay: 0, routes: { GET: {}, POST: {}, PUT: {}, DELETE: {}, HEAD: {} } }; var Router = (function () { function Router(interceptorConfig, routerConfig) { if (interceptorConfig === void 0) { interceptorConfig = interceptorDefaultConfig; } if (routerConfig === void 0) { routerConfig = routerDefaultConfig; } this.routerConfig = routerConfig; this.interceptorConfig = lodash_merge_1.default({}, interceptorDefaultConfig, interceptorConfig); } Router.prototype.get = function (path, handler) { this.register('GET', path, handler); }; Router.prototype.post = function (path, handler) { this.register('POST', path, handler); }; Router.prototype.put = function (path, handler) { this.register('PUT', path, handler); }; Router.prototype.delete = function (path, handler) { this.register('DELETE', path, handler); }; Router.prototype.head = function (path, handler) { this.register('HEAD', path, handler); }; Router.prototype.register = function (method, path, handler) { this.interceptorConfig.routes[method][path] = handler; }; Router.prototype.intercept = function () { var _this = this; var strategies = this.routerConfig.strategies; lodash_foreach_1.default(strategies, function (name) { return interceptors_1.interceptors[name].enable(_this.interceptorConfig); }); }; Router.prototype.reset = function () { lodash_foreach_1.default(interceptors_1.interceptors, function (interceptor) { return interceptor.disable(); }); }; return Router; }()); exports.Router = Router;