UNPKG

@n1k1t/mock-server

Version:

Powerful util to setup mocks over HTTP APIs

50 lines 1.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Router = void 0; const minimatch_1 = __importDefault(require("minimatch")); const lodash_1 = __importDefault(require("lodash")); class Router extends Map { constructor(server) { super(); this.server = server; } default(transport) { return { provider: this.server.providers.default, transport: this.server.transports.get(transport), }; } register(pattern, configuration) { this.server.providers.register(configuration.provider); const types = Array.isArray(configuration.transports) ? configuration.transports : configuration.transports ? Object.keys(configuration.transports) : [...this.server.transports.keys()]; return this.set(pattern, { provider: configuration.provider, transports: types.reduce((acc, type) => lodash_1.default.set(acc, type, Array.isArray(configuration.transports) ? this.server.transports.get(type) : configuration.transports?.[type] ?? this.server.transports.get(type)), {}), }); } *match(transport, path) { for (const [pattern, route] of this.entries()) { if ((0, minimatch_1.default)(path, pattern)) { yield { provider: route.provider, transport: route.transports[transport], }; } } yield this.default(transport); } static build(server) { return new Router(server); } } exports.Router = Router; //# sourceMappingURL=router.js.map