UNPKG

@napp/dti-server

Version:

data transaction interface server library

50 lines (49 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DtiServer = void 0; const route_1 = require("./route"); const bundler_1 = require("./bundler"); class DtiServer { constructor(root) { this.root = root; this._actions = new Map(); this._raws = new Map(); } register(...actions) { for (let action of actions) { let name = action.meta.getFullname(); if (this._actions.has(name)) { throw new Error(`already registed(${name})`); } this._actions.set(name, action); } return this; } rawRegister(route, ...handlers) { let name = route.getFullname(); if (this._raws.has(name)) { let olds = this._raws.get(name) || []; this._raws.set(name, [...olds, ...handlers]); } else { this._raws.set(name, [...handlers]); } return this; } getActionByName(name) { return this._actions.get(name); } getRawByName(name) { return this._raws.get(name); } static setup(server, setuper) { let route = setuper.factoryExpressRouter(server.root); new bundler_1.BundlerServer(server).setup(route, setuper); route.use(server.root.getLocalPath(), new route_1.DtiServerRoute(server.root, server).setup(setuper)); if (setuper.errorHandle) { route.use(setuper.errorHandle); } return route; } } exports.DtiServer = DtiServer;