UNPKG

8.63 kBSource Map (JSON)View Raw
1{"version":3,"sources":["server.ts"],"names":[],"mappings":"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","file":"server.js","sourcesContent":["import * as Router from 'koa-router';\nimport * as Koa from 'Koa';\nimport * as url from 'url';\nimport * as httpProxy from 'http-proxy';\nimport * as http from 'http';\nimport * as pathToRegexp from 'path-to-regexp';\n\nimport * as sbase from '@nodeswork/sbase';\nimport * as logger from '@nodeswork/logger';\nimport * as applet from '@nodeswork/applet';\nimport { NodesworkError } from '@nodeswork/utils';\n\nimport { AppletManager } from './applet-manager';\n\nconst LOG = logger.getLogger();\n\nexport class Application extends Koa {\n appletManager: AppletManager;\n}\n\nconst bodyParser = require('koa-bodyparser');\nexport const app: Application = new Application();\n\nconst router = new Router();\nconst version = require('../package.json').version;\nconst proxy = httpProxy.createProxyServer({\n});\n\nrouter\n .get('/sstats', sstats)\n .post('/executions/:executionId/metrics', async(ctx) => {\n const appletId = ctx.request.get(applet.constants.headers.request.APPLET_ID);\n if (appletId == null) {\n throw NodesworkError.badRequest('applet id is missing');\n }\n ctx.body = await app.appletManager.updateExecutionMetrics(\n ctx.params.executionId, {\n dimensions: ctx.request.body.dimensions,\n name: ctx.request.body.name,\n value: ctx.request.body.value,\n },\n );\n })\n .post('/accounts/:accountId/operate', async (ctx) => {\n const appletId = ctx.request.get(applet.constants.headers.request.APPLET_ID);\n if (appletId == null) {\n throw NodesworkError.badRequest('applet id is missing');\n }\n\n const operateOptions = {\n accountId: ctx.params.accountId,\n appletId,\n body: ctx.request.body,\n };\n\n try {\n ctx.body = await app.appletManager.operateAccount(operateOptions);\n } catch (e) {\n if (e.name === 'StatusCodeError') {\n ctx.status = e.statusCode;\n ctx.body = e.error;\n } else {\n throw e;\n }\n }\n })\n;\n\napp\n .use(bodyParser())\n .use(router.routes())\n .use(router.allowedMethods())\n;\n\nconst routerPathRegex = pathToRegexp(\n '/applets/:appletId/:naType/:naVersion/:packageName/:version/:path*',\n);\nconst callback = app.callback();\nconst httpServerCallback = async function(\n req: http.IncomingMessage, res: http.ServerResponse,\n) {\n LOG.info('Receiving request', {\n url: req.url,\n method: req.method,\n headers: req.headers,\n });\n\n const path = url.parse(req.url);\n const result = routerPathRegex.exec(path.pathname);\n if (result != null) {\n const appletId: string = result[1];\n const naType: string = result[2];\n const naVersion: string = result[3];\n const packageName: string = result[4];\n const version: string = result[5];\n const newPath: string = result[6] || '';\n\n const route = await app.appletManager.route({\n appletId, naType, naVersion, packageName, version,\n });\n LOG.debug('Got routes', route);\n\n if (newPath === 'sstruct') {\n const origin = req.headers.origin;\n if (origin != null) {\n res.setHeader('Access-Control-Allow-Origin', origin);\n res.setHeader('Access-Control-Allow-Credentials', 'true');\n }\n }\n\n if (route != null) {\n req.url = newPath;\n req.headers[sbase.constants.headers.request.NODESWORK_FORWARDED_TO] = (\n route.route\n );\n proxy.web(req, res, {\n target: route.target,\n xfwd: true,\n toProxy: true,\n }, (e) => {\n res.writeHead(500, { 'Content-Type': 'text/plain' });\n const message = 'Routing Error in nam.'\n res.end(message);\n console.error(message, e);\n });\n return;\n } else {\n LOG.warn('Route not found', { path: result[0] });\n }\n }\n callback(req, res);\n};\n\nexport const server = http.createServer(httpServerCallback);\n\nasync function sstats(ctx: Router.IRouterContext) {\n ctx.body = {\n app: {\n name: 'nam',\n version,\n },\n applets: {\n status: await app.appletManager.ps(),\n },\n };\n}\n"],"sourceRoot":"/Users/yizhen/workspace/nw/nam/src"}
\No newline at end of file