graphql-extensions
Advanced tools
Comparing version 0.2.1 to 0.3.0-alpha.0
@@ -1,13 +0,10 @@ | ||
import { GraphQLSchema, GraphQLError, GraphQLField, GraphQLFieldResolver, GraphQLResolveInfo, ExecutionArgs, DocumentNode } from 'graphql'; | ||
import { GraphQLSchema, GraphQLField, GraphQLFieldResolver, GraphQLResolveInfo, ExecutionArgs, DocumentNode } from 'graphql'; | ||
import { Request } from 'apollo-server-env'; | ||
export { Request } from 'apollo-server-env'; | ||
import { GraphQLResponse } from 'apollo-server-core/dist/requestPipelineAPI'; | ||
export { GraphQLResponse }; | ||
export declare type EndHandler = (...errors: Array<Error>) => void; | ||
export interface GraphQLResponse { | ||
data?: object; | ||
errors?: Array<GraphQLError & object>; | ||
extensions?: object; | ||
} | ||
export declare class GraphQLExtension<TContext = any> { | ||
requestDidStart?(o: { | ||
request: Request; | ||
request: Pick<Request, 'url' | 'method' | 'headers'>; | ||
queryString?: string; | ||
@@ -47,3 +44,3 @@ parsedQuery?: DocumentNode; | ||
requestDidStart(o: { | ||
request: Request; | ||
request: Pick<Request, 'url' | 'method' | 'headers'>; | ||
queryString?: string; | ||
@@ -50,0 +47,0 @@ parsedQuery?: DocumentNode; |
@@ -60,10 +60,22 @@ "use strict"; | ||
this.extensions.forEach(extension => { | ||
const endHandler = startInvoker(extension); | ||
if (endHandler) { | ||
endHandlers.push(endHandler); | ||
try { | ||
const endHandler = startInvoker(extension); | ||
if (endHandler) { | ||
endHandlers.push(endHandler); | ||
} | ||
} | ||
catch (error) { | ||
console.error(error); | ||
} | ||
}); | ||
return (...errors) => { | ||
endHandlers.reverse(); | ||
endHandlers.forEach(endHandler => endHandler(...errors)); | ||
for (const endHandler of endHandlers) { | ||
try { | ||
endHandler(...errors); | ||
} | ||
catch (error) { | ||
console.error(error); | ||
} | ||
} | ||
}; | ||
@@ -70,0 +82,0 @@ } |
{ | ||
"name": "graphql-extensions", | ||
"version": "0.2.1", | ||
"version": "0.3.0-alpha.0", | ||
"description": "Add extensions to GraphQL servers", | ||
"main": "./dist/index.js", | ||
"types": "./dist/index.d.ts", | ||
"scripts": { | ||
"clean": "rm -rf dist", | ||
"compile": "tsc", | ||
"prepare": "npm run clean && npm run compile", | ||
"lint": "prettier -l 'src/**/*.ts' && tslint -p tsconfig.json 'src/**/*.ts'", | ||
"lint-fix": "prettier --write 'src/**/*.ts' && tslint --fix -p tsconfig.json 'src/**/*.ts'" | ||
}, | ||
"repository": { | ||
@@ -23,4 +16,5 @@ "type": "git", | ||
}, | ||
"dependencies": { | ||
"apollo-server-env": "^2.0.3" | ||
"devDependencies": { | ||
"apollo-server-core": "2.2.0-alpha.0", | ||
"apollo-server-env": "2.1.0-alpha.0" | ||
}, | ||
@@ -30,3 +24,3 @@ "peerDependencies": { | ||
}, | ||
"gitHead": "86dd95e223460f8e1768141a8cefa58bcd409b03" | ||
"gitHead": "dec2b94a0e309c1c75b3e9f3d7b4011e36a7e48a" | ||
} |
import { | ||
GraphQLSchema, | ||
GraphQLError, | ||
GraphQLObjectType, | ||
@@ -17,2 +16,5 @@ getNamedType, | ||
import { GraphQLResponse } from 'apollo-server-core/dist/requestPipelineAPI'; | ||
export { GraphQLResponse }; | ||
export type EndHandler = (...errors: Array<Error>) => void; | ||
@@ -24,16 +26,7 @@ // A StartHandlerInvoker is a function that, given a specific GraphQLExtension, | ||
ext: GraphQLExtension<TContext>, | ||
) => void; | ||
) => EndHandler | void; | ||
// Copied from runQuery in apollo-server-core. | ||
// XXX Will this work properly if it's an identical interface of the | ||
// same name? | ||
export interface GraphQLResponse { | ||
data?: object; | ||
errors?: Array<GraphQLError & object>; | ||
extensions?: object; | ||
} | ||
export class GraphQLExtension<TContext = any> { | ||
public requestDidStart?(o: { | ||
request: Request; | ||
request: Pick<Request, 'url' | 'method' | 'headers'>; | ||
queryString?: string; | ||
@@ -78,3 +71,3 @@ parsedQuery?: DocumentNode; | ||
public requestDidStart(o: { | ||
request: Request; | ||
request: Pick<Request, 'url' | 'method' | 'headers'>; | ||
queryString?: string; | ||
@@ -165,5 +158,9 @@ parsedQuery?: DocumentNode; | ||
// Invoke the start handler, which may return an end handler. | ||
const endHandler = startInvoker(extension); | ||
if (endHandler) { | ||
endHandlers.push(endHandler); | ||
try { | ||
const endHandler = startInvoker(extension); | ||
if (endHandler) { | ||
endHandlers.push(endHandler); | ||
} | ||
} catch (error) { | ||
console.error(error); | ||
} | ||
@@ -176,3 +173,9 @@ }); | ||
endHandlers.reverse(); | ||
endHandlers.forEach(endHandler => endHandler(...errors)); | ||
for (const endHandler of endHandlers) { | ||
try { | ||
endHandler(...errors); | ||
} catch (error) { | ||
console.error(error); | ||
} | ||
} | ||
}; | ||
@@ -179,0 +182,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
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
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
26508
1
475
0
2
- Removedapollo-server-env@^2.0.3
- Removedapollo-server-env@2.4.5(transitive)
- Removedarray-buffer-byte-length@1.0.1(transitive)
- Removedarray.prototype.reduce@1.0.7(transitive)
- Removedarraybuffer.prototype.slice@1.0.3(transitive)
- Removedavailable-typed-arrays@1.0.7(transitive)
- Removedcall-bind@1.0.7(transitive)
- Removeddata-view-buffer@1.0.1(transitive)
- Removeddata-view-byte-length@1.0.1(transitive)
- Removeddata-view-byte-offset@1.0.0(transitive)
- Removeddefine-data-property@1.1.4(transitive)
- Removeddefine-properties@1.2.1(transitive)
- Removedes-abstract@1.23.3(transitive)
- Removedes-array-method-boxes-properly@1.0.0(transitive)
- Removedes-define-property@1.0.0(transitive)
- Removedes-errors@1.3.0(transitive)
- Removedes-object-atoms@1.0.0(transitive)
- Removedes-set-tostringtag@2.0.3(transitive)
- Removedes-to-primitive@1.2.1(transitive)
- Removedfor-each@0.3.3(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedfunction.prototype.name@1.1.6(transitive)
- Removedfunctions-have-names@1.2.3(transitive)
- Removedget-intrinsic@1.2.4(transitive)
- Removedget-symbol-description@1.0.2(transitive)
- Removedglobalthis@1.0.4(transitive)
- Removedgopd@1.0.1(transitive)
- Removedhas-bigints@1.0.2(transitive)
- Removedhas-property-descriptors@1.0.2(transitive)
- Removedhas-proto@1.0.3(transitive)
- Removedhas-symbols@1.0.3(transitive)
- Removedhas-tostringtag@1.0.2(transitive)
- Removedhasown@2.0.2(transitive)
- Removedinternal-slot@1.0.7(transitive)
- Removedis-array-buffer@3.0.4(transitive)
- Removedis-bigint@1.0.4(transitive)
- Removedis-boolean-object@1.1.2(transitive)
- Removedis-callable@1.2.7(transitive)
- Removedis-data-view@1.0.1(transitive)
- Removedis-date-object@1.0.5(transitive)
- Removedis-negative-zero@2.0.3(transitive)
- Removedis-number-object@1.0.7(transitive)
- Removedis-regex@1.1.4(transitive)
- Removedis-shared-array-buffer@1.0.3(transitive)
- Removedis-string@1.0.7(transitive)
- Removedis-symbol@1.0.4(transitive)
- Removedis-typed-array@1.1.13(transitive)
- Removedis-weakref@1.0.2(transitive)
- Removedisarray@2.0.5(transitive)
- Removednode-fetch@2.7.0(transitive)
- Removedobject-inspect@1.13.2(transitive)
- Removedobject-keys@1.1.1(transitive)
- Removedobject.assign@4.1.5(transitive)
- Removedobject.getownpropertydescriptors@2.1.8(transitive)
- Removedpossible-typed-array-names@1.0.0(transitive)
- Removedregexp.prototype.flags@1.5.3(transitive)
- Removedsafe-array-concat@1.1.2(transitive)
- Removedsafe-regex-test@1.0.3(transitive)
- Removedset-function-length@1.2.2(transitive)
- Removedset-function-name@2.0.2(transitive)
- Removedside-channel@1.0.6(transitive)
- Removedstring.prototype.trim@1.2.9(transitive)
- Removedstring.prototype.trimend@1.0.8(transitive)
- Removedstring.prototype.trimstart@1.0.8(transitive)
- Removedtr46@0.0.3(transitive)
- Removedtyped-array-buffer@1.0.2(transitive)
- Removedtyped-array-byte-length@1.0.1(transitive)
- Removedtyped-array-byte-offset@1.0.2(transitive)
- Removedtyped-array-length@1.0.6(transitive)
- Removedunbox-primitive@1.0.2(transitive)
- Removedutil.promisify@1.1.2(transitive)
- Removedwebidl-conversions@3.0.1(transitive)
- Removedwhatwg-url@5.0.0(transitive)
- Removedwhich-boxed-primitive@1.0.2(transitive)
- Removedwhich-typed-array@1.1.15(transitive)