Files
apollo/packages/test-e2e-composition/apollo-server/directives/private.js
T
2019-12-01 02:50:02 +01:00

13 lines
444 B
JavaScript

const { SchemaDirectiveVisitor } = require('graphql-tools')
const { defaultFieldResolver } = require('graphql')
module.exports = class PrivateDirective extends SchemaDirectiveVisitor {
visitFieldDefinition (field) {
const { resolve = defaultFieldResolver } = field
field.resolve = (root, args, context, info) => {
if (!context.userId) throw new Error('Unauthorized')
return resolve(root, args, context, info)
}
}
}