UNPKG

@graphql-mesh/plugin-operation-field-permissions

Version:
27 lines (26 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useMeshOperationFieldPermissions; /* eslint-disable no-new-func */ const operation_field_permissions_1 = require("@envelop/operation-field-permissions"); const cross_helpers_1 = require("@graphql-mesh/cross-helpers"); function useMeshOperationFieldPermissions(options) { return { onPluginInit({ addPlugin }) { addPlugin((0, operation_field_permissions_1.useOperationFieldPermissions)({ getPermissions(context) { const allowedFields = new Set(); for (const { if: condition, allow } of options.permissions) { const ifFn = new Function('context', 'env', 'return ' + condition); if (ifFn(context, cross_helpers_1.process.env)) { for (const allowedField of allow) { allowedFields.add(allowedField); } } } return allowedFields; }, })); }, }; }