Files
apollo/packages/test-e2e/apollo-server/directives/private.js
T
2025-03-08 21:12:47 +01:00

15 lines
530 B
JavaScript

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