UNPKG

@accounts/module-core

Version:

Server side GraphQL transport for accounts

32 lines 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.authDirective = void 0; const authenticated_resolver_1 = require("./authenticated-resolver"); const utils_1 = require("@graphql-tools/utils"); const graphql_1 = require("graphql"); function authDirective(directiveName = 'auth') { const typeDirectiveArgumentMaps = {}; return { authDirectiveTypeDefs: `directive @${directiveName} on FIELD_DEFINITION | OBJECT`, authDirectiveTransformer: (schema) => (0, utils_1.mapSchema)(schema, { [utils_1.MapperKind.TYPE]: (type) => { const authDirective = (0, utils_1.getDirective)(schema, type, directiveName)?.[0]; if (authDirective) { typeDirectiveArgumentMaps[type.name] = authDirective; } return undefined; }, [utils_1.MapperKind.OBJECT_FIELD]: (fieldConfig, _fieldName, typeName) => { const authDirective = (0, utils_1.getDirective)(schema, fieldConfig, directiveName)?.[0] ?? typeDirectiveArgumentMaps[typeName]; if (authDirective) { const { resolve = graphql_1.defaultFieldResolver } = fieldConfig; fieldConfig.resolve = (0, authenticated_resolver_1.authenticated)(resolve); return fieldConfig; } }, }), }; } exports.authDirective = authDirective; //# sourceMappingURL=authenticated-directive.js.map