UNPKG

@kitmi/jacaranda

Version:

JavaScript application framework

80 lines (79 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return fastServe; } }); const _serve = /*#__PURE__*/ _interop_require_default(require("./serve")); const _utils = require("@kitmi/utils"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function fastServe(modules, { logger, engine, middlewares, ...features } = {}) { const { routes, registry: moduleRegistry } = _utils._.reduce(modules, (result, module, route)=>{ const moduleName = (0, _utils.replaceAll)(route, '/', '_') + 'Module'; result.routes[route] = moduleName; result.registry[moduleName] = module; return result; }, { routes: {}, registry: {} }); const { config: middlewareConfig, registry: middlewareRegistry } = (middlewares ?? []).reduce((result, middleware)=>{ if (typeof middleware === 'string') { result.config.push(middleware); return result; } const [name, fn, config] = middleware; result.config.push(config ? [ name, config ] : name); result.registry[name] = fn; return result; }, { config: [], registry: {} }); return (0, _serve.default)({ loadConfigFromOptions: true, logLevel: logger?.level ?? 'verbose', config: { logger: { level: 'verbose', ...logger }, engine: { type: 'koa', port: 3388, ...engine }, routing: { '/': { module: { $source: 'registry', $middlewares: [ 'jsonError', ...middlewareConfig ], ...routes } } }, ...features }, registry: { controllers: { modules: moduleRegistry }, middlewares: middlewareRegistry } }); } //# sourceMappingURL=fastServe.js.map