chimp
Version:
Your development companion for doing quality, faster.
37 lines (36 loc) • 1.46 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
function default_1(graphqlString) {
const graphqlAST = (0, graphql_tag_1.default) `
${graphqlString}
`;
// @ts-ignore
const foundQueries = graphqlAST.definitions.find((d) => d.name.value === 'Query');
// @ts-ignore
const foundMutations = graphqlAST.definitions.find((d) => d.name.value === 'Mutation');
return {
queries: foundQueries &&
// @ts-ignore
foundQueries.fields.map((f) => ({
name: f.name.value,
hasArguments: f.arguments.length > 0,
variables: f.arguments.map((a) => a.name.value),
})),
mutations: foundMutations &&
// @ts-ignore
foundMutations.fields.map((f) => ({
name: f.name.value,
hasArguments: f.arguments.length > 0,
variables: f.arguments.map((a) => a.name.value),
})),
typeDefinitions: graphqlAST.definitions
// @ts-ignore
.filter((d) => !['Mutation', 'Query', 'Subscription'].includes(d.name.value))
.filter((d) => ['ObjectTypeDefinition', 'ObjectTypeExtension'].includes(d.kind))
// @ts-ignore
.map((f) => ({ name: f.name.value })),
};
}
exports.default = default_1;
;