webserv
Version:
a quick, flexible, fully typed development server
70 lines • 2.69 kB
JavaScript
(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