UNPKG

graphile-build

Version:

Build a GraphQL schema from plugins

46 lines 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MutationPayloadQueryPlugin = void 0; require("graphile-config"); const grafast_1 = require("grafast"); const utils_ts_1 = require("../utils.js"); const version_ts_1 = require("../version.js"); const EMPTY_OBJECT = Object.freeze({}); const queryPlan = (0, utils_ts_1.EXPORTABLE)((EMPTY_OBJECT, constant) => function plan() { return constant(EMPTY_OBJECT); }, [EMPTY_OBJECT, grafast_1.constant], "queryPlan"); /** * Adds a 'query' field to each mutation payload object type; this often turns * out to be quite helpful but if you don't want it in your schema then it's * safe to disable this plugin. */ exports.MutationPayloadQueryPlugin = { name: "MutationPayloadQueryPlugin", description: "Adds the 'query' field to mutation payloads; useful for follow-up queries after a mutation", version: version_ts_1.version, schema: { hooks: { GraphQLObjectType_fields: { callback: (fields, build, context) => { const { extend, getTypeByName, inflection } = build; const { scope: { isMutationPayload }, Self, } = context; if (isMutationPayload !== true) { return fields; } const Query = getTypeByName(inflection.builtin("Query")); if (Query == null) return fields; return extend(fields, { query: { description: "Our root query field type. Allows us to run any query from our mutation payload.", type: Query, plan: queryPlan, }, }, `Adding 'query' field to mutation payload ${Self.name}`); }, provides: ["MutationPayloadQuery"], }, }, }, }; //# sourceMappingURL=MutationPayloadQueryPlugin.js.map