UNPKG

@acaprojects/a2-composer

Version:
105 lines 3.69 kB
import { COMPOSER } from '../../../settings'; var MockRequestHandler = (function () { function MockRequestHandler() { this.handlers = {}; } MockRequestHandler.prototype.register = function (url, data, fn) { var parts = url.split('/'); var params = []; for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) { var i = parts_1[_i]; if (i[0] === ':') { params.push(i); } } this.handlers[url] = { data: data, parts: parts, route_params: params, params: {}, fn: fn, }; COMPOSER.log("HTTP(M)", "Registered handler for url \"" + url + "\""); }; MockRequestHandler.prototype.unregister = function (url) { if (this.handlers[url]) { this.handlers[url] = null; delete this.handlers[url]; COMPOSER.log("HTTP(M)", "Unregistered handler for url \"" + url + "\""); } }; MockRequestHandler.prototype.response = function (method, url, fragment) { var handler = this.getHandler(url); if (method === 'GET') { if (handler) { var resp = null; if (handler.fn) { var h = { data: handler.data, fragment: fragment, params: handler.params, }; resp = handler.fn(h); } else { resp = handler.data; } COMPOSER.log("HTTP(M)", "Response to " + method + " for url \"" + url + "\"", resp); return resp || {}; } else { var error = { status: 404, code: 404, message: 'Requested resource was not found.', data: {}, }; COMPOSER.log("HTTP(M)", "Response to " + method + " for url \"" + url + "\"", error); return error; } } else { COMPOSER.log("HTTP(M)", "Response to " + method + " for url \"" + url + "\"", 'Success'); return { message: 'Ok', data: {}, }; } }; MockRequestHandler.prototype.getHandler = function (url) { if (url.indexOf('http') === 0) { url = url.split('/').slice(3).join('/'); } if (this.handlers[url]) { return this.handlers[url]; } console.log(this.handlers); var parts = url.split('/'); for (var h in this.handlers) { if (this.handlers.hasOwnProperty(h) && this.handlers[h].route_params && this.handlers[h].route_params.length > 0) { var handler = this.handlers[h]; var count = 0; for (var i = 0; i < handler.parts.length; i++) { var p = handler.parts[i]; if (p === parts[i]) { count++; } else if (p.indexOf(':') === 0) { handler.params[p.split(':')[1]] = parts[i]; count++; } } if (handler.parts.length === count) { return handler; } } } return null; }; return MockRequestHandler; }()); export { MockRequestHandler }; export var MOCK_REQ_HANDLER = new MockRequestHandler(); //# sourceMappingURL=request-handler.mock.js.map