@orion-js/http
Advanced tools
Comparing version 3.0.0-alpha.14 to 3.0.0-alpha.15
@@ -8,3 +8,10 @@ import { setOnError, onError } from './errors'; | ||
import registerRoutes from './routes/registerRoutes'; | ||
export { express, startServer, getApp, getViewer, setGetViewer, setOnError, onError, route, registerRoute, registerRoutes }; | ||
import { json, raw, text, urlencoded } from 'body-parser'; | ||
declare const bodyParser: { | ||
json: typeof json; | ||
raw: typeof raw; | ||
text: typeof text; | ||
urlencoded: typeof urlencoded; | ||
}; | ||
export { express, startServer, getApp, getViewer, setGetViewer, setOnError, onError, route, registerRoute, registerRoutes, bodyParser }; | ||
export * from './types'; |
@@ -16,3 +16,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.registerRoutes = exports.registerRoute = exports.route = exports.onError = exports.setOnError = exports.setGetViewer = exports.getViewer = exports.getApp = exports.startServer = exports.express = void 0; | ||
exports.bodyParser = exports.registerRoutes = exports.registerRoute = exports.route = exports.onError = exports.setOnError = exports.setGetViewer = exports.getViewer = exports.getApp = exports.startServer = exports.express = void 0; | ||
const errors_1 = require("./errors"); | ||
@@ -35,2 +35,5 @@ Object.defineProperty(exports, "setOnError", { enumerable: true, get: function () { return errors_1.setOnError; } }); | ||
exports.registerRoutes = registerRoutes_1.default; | ||
const body_parser_1 = require("body-parser"); | ||
const bodyParser = { json: body_parser_1.json, raw: body_parser_1.raw, text: body_parser_1.text, urlencoded: body_parser_1.urlencoded }; | ||
exports.bodyParser = bodyParser; | ||
__exportStar(require("./types"), exports); |
@@ -1,2 +0,2 @@ | ||
import { OrionRoute } from '../types'; | ||
export default function registerRoute(route: OrionRoute): void; | ||
import { Route } from '../types'; | ||
export default function registerRoute(route: Route): void; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const viewer_1 = require("./../viewer"); | ||
const start_1 = require("./../start"); | ||
const errors_1 = require("../errors"); | ||
const executeRequest_1 = require("./executeRequest"); | ||
const body_parser_1 = require("body-parser"); | ||
function registerRoute(route) { | ||
const app = (0, start_1.getApp)(); | ||
const method = route.method; | ||
const expressMethod = app[method]; | ||
expressMethod(route.path, async (req, res) => { | ||
try { | ||
const viewer = await (0, viewer_1.getViewer)(req); | ||
await route.resolve(req, res, viewer); | ||
} | ||
catch (error) { | ||
await (0, errors_1.onError)(req, res, error); | ||
} | ||
}); | ||
const handler = async (req, res) => { | ||
(0, executeRequest_1.executeRequest)(route, req, res); | ||
}; | ||
const handlers = [handler]; | ||
if (route.bodyParser) { | ||
const parsers = { json: body_parser_1.json, raw: body_parser_1.raw, text: body_parser_1.text, urlencoded: body_parser_1.urlencoded }; | ||
const parser = parsers[route.bodyParser](route.bodyParserOptions); | ||
handlers.unshift(parser); | ||
} | ||
if (route.middlewares) { | ||
handlers.unshift(...route.middlewares); | ||
} | ||
app[method](route.path, ...handlers); | ||
} | ||
exports.default = registerRoute; |
@@ -1,6 +0,6 @@ | ||
import { OrionRoute } from '../types'; | ||
import { Route } from '../types'; | ||
interface OrionRoutesMap { | ||
[key: string]: OrionRoute; | ||
[key: string]: Route; | ||
} | ||
export default function registerRoutes(routesMap: OrionRoutesMap): void; | ||
export {}; |
@@ -1,2 +0,2 @@ | ||
import { OrionRoute, OrionRouteOptions } from '../types'; | ||
export default function route(options: OrionRouteOptions): OrionRoute; | ||
import { Route, OrionRouteOptions } from '../types'; | ||
export default function route(options: OrionRouteOptions): Route; |
/// <reference types="express-serve-static-core" /> | ||
import express from 'express'; | ||
export declare const startServer: () => express.Express; | ||
export declare const startServer: (port?: number) => express.Express; | ||
export declare const getApp: () => express.Express; |
@@ -9,5 +9,4 @@ "use strict"; | ||
const appRef = {}; | ||
const startServer = () => { | ||
const startServer = (port = Number(process.env.PORT)) => { | ||
const app = (0, exports.getApp)(); | ||
const port = process.env.PORT || 3000; | ||
app.listen(port); | ||
@@ -14,0 +13,0 @@ return app; |
import express from 'express'; | ||
import * as bodyParser from 'body-parser'; | ||
export interface RouteResponse { | ||
statusCode?: number; | ||
headers?: { | ||
[key: string]: string; | ||
}; | ||
body?: object; | ||
} | ||
export interface OrionRouteOptions { | ||
method: 'get' | 'post' | 'put' | 'delete'; | ||
path: string; | ||
resolve: (req: express.Request, res: express.Response, viewer: any) => Promise<any>; | ||
/** | ||
* Select the body parser to use for this route. | ||
*/ | ||
bodyParser?: 'json' | 'text' | 'urlencoded'; | ||
/** | ||
* Selected body parser options. | ||
*/ | ||
bodyParserOptions?: bodyParser.OptionsJson | bodyParser.OptionsText | bodyParser.OptionsUrlencoded; | ||
/** | ||
* Add a middleware to the route. | ||
* See https://expressjs.com/en/4x/api.html#middleware | ||
* for more information. | ||
*/ | ||
middlewares?: Array<express.RequestHandler>; | ||
resolve: (req: express.Request, res: express.Response, viewer: any) => Promise<RouteResponse> | Promise<void>; | ||
} | ||
export interface OrionRoute extends OrionRouteOptions { | ||
export interface Route extends OrionRouteOptions { | ||
} |
{ | ||
"name": "@orion-js/http", | ||
"version": "3.0.0-alpha.14", | ||
"version": "3.0.0-alpha.15", | ||
"main": "lib/index.js", | ||
@@ -12,3 +12,3 @@ "types": "lib/index.d.ts", | ||
"scripts": { | ||
"test": "exit 0", | ||
"test": "jest", | ||
"prepare": "yarn run build", | ||
@@ -23,2 +23,3 @@ "clean": "rm -rf ./lib", | ||
"@orion-js/schema": "^3.0.0-alpha.13", | ||
"body-parser": "1.19.0", | ||
"express": "4.17.1" | ||
@@ -28,6 +29,10 @@ }, | ||
"@shelf/jest-mongodb": "^2.1.0", | ||
"@types/body-parser": "^1.19.1", | ||
"@types/express": "4.17.13", | ||
"@types/jest": "^27.0.2", | ||
"@types/lodash": "4.14.176", | ||
"@types/supertest": "2.0.11", | ||
"jest": "27.3.1", | ||
"superagent": "^6.1.0", | ||
"supertest": "^6.1.6", | ||
"ts-jest": "27.0.7", | ||
@@ -39,3 +44,3 @@ "typescript": "^4.4.4" | ||
}, | ||
"gitHead": "56474f6e628e58af391fb2dd8728abcaa6888655" | ||
"gitHead": "15fe91d4439b3bd5d04d12931a344d6c49d09375" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
17334
26
392
5
11
21
+ Addedbody-parser@1.19.0