UNPKG

webserv

Version:

a quick, flexible, fully typed development server

70 lines 2.69 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "./services/chat", "./services/crud", "./services/file", "./services/log", "./services/proxy", "./services/upload"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chat_1 = require("./services/chat"); const crud_1 = require("./services/crud"); const file_1 = require("./services/file"); const log_1 = require("./services/log"); const proxy_1 = require("./services/proxy"); const upload_1 = require("./services/upload"); function isEnvironment(value) { return (typeof value === 'object' && typeof value.configPath === 'string' && (!value.properties || typeof value.properties === 'object')); } exports.isEnvironment = isEnvironment; const serviceMap = { chat: chat_1.bootChatService, crud: crud_1.bootCrudService, file: file_1.bootFileService, log: log_1.bootLogService, proxy: proxy_1.bootProxyService, upload: upload_1.bootUploadService }; function isServiceLoader(value) { return value && typeof value === 'function'; } function setLoader(name, handler) { if (typeof handler === 'string') { const loader = require(handler); if (typeof loader === 'object') { if (isServiceLoader(loader.default)) { serviceMap[name] = loader.default; } else if (isServiceLoader(loader)) { serviceMap[name] = loader; } else if (isServiceLoader(loader.loader)) { serviceMap[name] = loader.loader; } else { throw new Error(`"${handler}" is not a service loader`); } } else { throw new Error(`"${handler}" is not a service loader`); } } else { serviceMap[name] = handler; } } exports.setLoader = setLoader; function getLoader(name) { const handler = serviceMap[name]; if (!handler) { throw new Error(`unknown service ${name}`); } return handler; } exports.getLoader = getLoader; }); //# sourceMappingURL=loader.js.map