Skip to content

Commit

Permalink
fix: middleware was not workingg
Browse files Browse the repository at this point in the history
  • Loading branch information
BelfordZ committed May 15, 2019
1 parent b35fdb3 commit 50ba08e
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 4 deletions.
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@
"type": "git",
"url": "https://github.com/open-rpc/server-js.git"
},
"main": "./build/index.js",
"main": "./build/src/index.js",
"bin": {
"open-rpc-server-js": "./build/cli.js"
"open-rpc-server-js": "./build/src/cli.js"
},
"files": [
"build",
".node-version"
],
"scripts": {
"start": "./build/cli.js",
"start": "./build/src/cli.js",
"test": "jest --coverage",
"build": "tsc",
"watch:build": "tsc --watch",
Expand Down
26 changes: 25 additions & 1 deletion src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ import { Router, IMethodMapping } from "./router";
import { OpenRPC } from "@open-rpc/meta-schema";
import Transports, { TTransportOptions, TTransportClasses, TTransportNames } from "./transports";

import cors from "cors";
import { json as jsonParser } from "body-parser";
import { HandleFunction } from "connect";
import { THTTPServerTransportOptions } from "./transports/http";
import { THTTPSServerTransportOptions } from "./transports/https";
import { TWebSocketServerTransportOptions } from "./transports/websocket";

interface ITransportConfig {
type: TTransportNames;
options: TTransportOptions;
Expand All @@ -23,7 +30,24 @@ export default class Server {

constructor(private options: IServerOptions) {
this.addRouter(options.openrpcDocument, options.methodMapping as IMethodMapping);
options.transportConfigs.forEach((transportConfig) => {

const defaultCorsOptions = { origin: "*" } as cors.CorsOptions;
const transportConfigs = options.transportConfigs.map((transportConfig) => {
if (["HTTPTransport", "HTTPSTransport", "WebSocketTransport"].includes(transportConfig.type)) {
const transportOptions = transportConfig.options as THTTPServerTransportOptions |
THTTPSServerTransportOptions |
TWebSocketServerTransportOptions;

transportOptions.middleware = [
cors(defaultCorsOptions) as HandleFunction,
jsonParser(),
...transportOptions.middleware,
];
}
return transportConfig;
});

transportConfigs.forEach((transportConfig) => {
this.addTransport(transportConfig.type, transportConfig.options);
});
}
Expand Down
1 change: 1 addition & 0 deletions src/transports/http.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export default class HTTPServerTransport extends ServerTransport {
}

private async httpRouterHandler(req: any, res: any) {
console.log(req, res.body); //tslint:disable-line
const result = await this.routerHandler(req.body.id, req.body.method, req.body.params);
res.setHeader("Content-Type", "application/json");
res.end(JSON.stringify(result));
Expand Down

0 comments on commit 50ba08e

Please sign in to comment.