UNPKG

@0xobelisk/graphql-server

Version:

Tookit for interacting with dubhe graphql server

42 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QueryFilterPlugin = void 0; // Query filter plugin - only keep useful table-related queries const QueryFilterPlugin = (builder) => { // Filter query fields builder.hook('GraphQLObjectType:fields', (fields, build, context) => { const { scope: { isRootQuery } } = context; if (!isRootQuery) { return fields; } // Define query types to keep const allowedQueries = new Set(); // Get all table-related queries Object.keys(fields).forEach((fieldName) => { // Keep PostGraphile required system fields if (['query', 'nodeId', 'node'].includes(fieldName)) { allowedQueries.add(fieldName); } // Keep store table-related queries if (fieldName.match(/^(allStore|store)/i)) { allowedQueries.add(fieldName); } // Keep table_fields table queries if (fieldName.match(/^(allTable|table)/i)) { allowedQueries.add(fieldName); } }); // Filter fields, only keep allowed queries const filteredFields = {}; Object.keys(fields).forEach((fieldName) => { if (allowedQueries.has(fieldName)) { filteredFields[fieldName] = fields[fieldName]; } }); // console.log('🔍 Filtered query fields:', Object.keys(filteredFields)); return filteredFields; }); }; exports.QueryFilterPlugin = QueryFilterPlugin; exports.default = exports.QueryFilterPlugin; //# sourceMappingURL=query-filter.js.map