kakapo
Version:
Next generation mocking framework in Javascript
59 lines (58 loc) • 2.43 kB
JavaScript
;
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;