apollo-server-servie
Advanced tools
Comparing version 1.2.1 to 2.0.0
@@ -1,4 +0,4 @@ | ||
import { Request, Response } from 'servie'; | ||
import { GraphQLOptions } from 'apollo-server-core'; | ||
import { GraphiQLData } from 'apollo-server-module-graphiql'; | ||
import { Request, Response } from "servie/dist/node"; | ||
import { GraphQLOptions } from "apollo-server-core"; | ||
import { GraphiQLData } from "apollo-server-module-graphiql"; | ||
export declare type GraphQLOptionsFunction = (req: Request) => GraphQLOptions | Promise<GraphQLOptions>; | ||
@@ -5,0 +5,0 @@ export declare type ServieHandler = (req: Request) => Promise<Response>; |
@@ -11,5 +11,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const servie_1 = require("servie"); | ||
const universal_1 = require("servie/dist/body/universal"); | ||
const querystring_1 = require("querystring"); | ||
const node_1 = require("servie/dist/node"); | ||
const url_1 = require("url"); | ||
const servie_send_1 = require("servie-send"); | ||
@@ -25,18 +24,21 @@ const apollo_server_core_1 = require("apollo-server-core"); | ||
const { method } = req; | ||
const query = method === 'POST' ? yield req.body.json() : querystring_1.parse(req.Url.query); | ||
const query = method === "POST" ? yield req.json() : url_1.parse(req.url, true).query; | ||
const request = { method, url: req.url, headers: req.headers }; | ||
try { | ||
const gqlResponse = yield apollo_server_core_1.runHttpQuery([req], { method, options, query, request }); | ||
return new servie_1.Response({ | ||
headers: servie_1.createHeaders(gqlResponse.responseInit.headers), | ||
body: universal_1.createBody(gqlResponse.graphqlResponse) | ||
const gqlResponse = yield apollo_server_core_1.runHttpQuery([req], { | ||
method, | ||
options, | ||
query, | ||
request | ||
}); | ||
return new node_1.Response(gqlResponse.graphqlResponse, { | ||
headers: gqlResponse.responseInit.headers | ||
}); | ||
} | ||
catch (err) { | ||
if (err.name !== 'HttpQueryError') | ||
if (err.name !== "HttpQueryError") | ||
throw err; | ||
return new servie_1.Response({ | ||
statusCode: err.statusCode, | ||
headers: servie_1.createHeaders(err.headers), | ||
body: universal_1.createBody(err.message) | ||
return new node_1.Response(err.message, { | ||
status: err.statusCode, | ||
headers: err.headers | ||
}); | ||
@@ -54,3 +56,3 @@ } | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const { query, variables, operationName } = querystring_1.parse(req.Url.query); | ||
const { query, variables, operationName } = url_1.parse(req.url, true).query; | ||
const graphiQLString = apollo_server_module_graphiql_1.renderGraphiQL({ | ||
@@ -57,0 +59,0 @@ endpointURL: options.endpointURL, |
@@ -12,13 +12,12 @@ "use strict"; | ||
const index_1 = require("./index"); | ||
const servie_1 = require("servie"); | ||
const universal_1 = require("servie/dist/body/universal"); | ||
const node_1 = require("servie/dist/node"); | ||
const graphql_1 = require("graphql"); | ||
describe('graphql server servie', () => { | ||
describe('graphql', () => { | ||
describe("graphql server servie", () => { | ||
describe("graphql", () => { | ||
const queryType = new graphql_1.GraphQLObjectType({ | ||
name: 'QueryType', | ||
name: "QueryType", | ||
fields: { | ||
testString: { | ||
type: graphql_1.GraphQLString, | ||
resolve: () => 'it works' | ||
resolve: () => "it works" | ||
} | ||
@@ -31,22 +30,21 @@ } | ||
const handler = index_1.graphqlServie({ schema }); | ||
it('should respond to graphql queries', () => __awaiter(this, void 0, void 0, function* () { | ||
const req = new servie_1.Request({ | ||
url: '/', | ||
method: 'POST', | ||
body: universal_1.createBody({ | ||
query: '{testString}' | ||
it("should respond to graphql queries", () => __awaiter(this, void 0, void 0, function* () { | ||
const req = new node_1.Request("/", { | ||
method: "POST", | ||
body: JSON.stringify({ | ||
query: "{testString}" | ||
}) | ||
}); | ||
const res = yield handler(req); | ||
const body = yield res.body.text(); | ||
expect(res.headers.get('Content-Type')).toEqual('application/json'); | ||
const body = yield res.text(); | ||
expect(res.headers.get("Content-Type")).toEqual("application/json"); | ||
expect(body).toEqual('{"data":{"testString":"it works"}}\n'); | ||
})); | ||
}); | ||
describe('graphiql', () => { | ||
const handler = index_1.graphiqlServie({ endpointURL: './graphql' }); | ||
it('should serve graphiql', () => __awaiter(this, void 0, void 0, function* () { | ||
const req = new servie_1.Request({ url: '/' }); | ||
describe("graphiql", () => { | ||
const handler = index_1.graphiqlServie({ endpointURL: "/graphql" }); | ||
it("should serve graphiql", () => __awaiter(this, void 0, void 0, function* () { | ||
const req = new node_1.Request("/"); | ||
const res = yield handler(req); | ||
expect(res.headers.get('Content-Type')).toBe('text/html'); | ||
expect(res.headers.get("Content-Type")).toBe("text/html"); | ||
})); | ||
@@ -53,0 +51,0 @@ }); |
{ | ||
"name": "apollo-server-servie", | ||
"version": "1.2.1", | ||
"version": "2.0.0", | ||
"description": "Production-ready Node.js GraphQL server for Servie", | ||
@@ -11,7 +11,9 @@ "main": "dist/index.js", | ||
"scripts": { | ||
"prettier": "prettier --write", | ||
"format": "npm run prettier -- \"{.,src/**}/*.{js,ts,json,md,yml,css}\"", | ||
"lint": "tslint \"src/**/*.ts\" --project tsconfig.json", | ||
"build": "rm -rf dist/ && tsc", | ||
"build": "rimraf dist/ && tsc", | ||
"specs": "jest --coverage", | ||
"test": "npm run -s lint && npm run -s build && npm run -s specs", | ||
"prepublish": "npm run build" | ||
"prepare": "npm run build" | ||
}, | ||
@@ -39,23 +41,38 @@ "repository": { | ||
"jest": { | ||
"roots": [ | ||
"<rootDir>/src/" | ||
], | ||
"transform": { | ||
".(ts|tsx)": "ts-jest" | ||
}, | ||
"testRegex": "src/.*\\.(?:test|spec)\\.(ts|tsx|js)$", | ||
"moduleFileExtensions": [ | ||
"ts", | ||
"tsx", | ||
"js" | ||
"\\.tsx?$": "ts-jest" | ||
} | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "lint-staged" | ||
} | ||
}, | ||
"lint-staged": { | ||
"*.{js,ts,json,md,yml,css}": [ | ||
"npm run prettier", | ||
"git add" | ||
] | ||
}, | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"devDependencies": { | ||
"@types/graphql": "^14.0.3", | ||
"@types/jest": "^24.0.0", | ||
"@types/node": "^11.9.5", | ||
"@types/node": "^12.0.2", | ||
"graphql": "^14.0.2", | ||
"husky": "^2.3.0", | ||
"jest": "^24.1.0", | ||
"lint-staged": "^8.1.7", | ||
"prettier": "^1.17.1", | ||
"rimraf": "^2.5.4", | ||
"servie": "^3.0.0", | ||
"servie": "^4.0.4", | ||
"throwback": "^4.0.0", | ||
"ts-jest": "^24.0.0", | ||
"tslint": "^5.10.0", | ||
"tslint-config-prettier": "^1.18.0", | ||
"tslint-config-standard": "^8.0.1", | ||
@@ -71,4 +88,4 @@ "typescript": "^3.2.2" | ||
"apollo-server-module-graphiql": "^1.3.4", | ||
"servie-send": "^1.1.0" | ||
"servie-send": "^2.0.0" | ||
} | ||
} |
@@ -21,10 +21,10 @@ # Apollo Server Servie | ||
```ts | ||
import { compose } from 'throwback' | ||
import { get, all } from 'servie-route' | ||
import { graphqlServie, graphiqlServie } from 'apollo-server-servie' | ||
import { compose } from "throwback"; | ||
import { get, all } from "servie-route"; | ||
import { graphqlServie, graphiqlServie } from "apollo-server-servie"; | ||
const app = compose([ | ||
all('/graphql', graphqlServie({ schema })), | ||
get('/graphiql', graphiqlServie({ endpointURL: `./graphql` })) | ||
]) | ||
all("/graphql", graphqlServie({ schema })), | ||
get("/graphiql", graphiqlServie({ endpointURL: `./graphql` })) | ||
]); | ||
``` | ||
@@ -31,0 +31,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
16420
16
+ Added@servie/events@1.0.0(transitive)
+ Addedservie@4.3.3(transitive)
+ Addedservie-send@2.0.0(transitive)
+ Addedts-expect@1.3.0(transitive)
- Removedservie-send@1.1.1(transitive)
Updatedservie-send@^2.0.0