UNPKG

graphile-build

Version:

Build a GraphQL schema from plugins

67 lines (66 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var ClientMutationIdDescriptionPlugin = function ClientMutationIdDescriptionPlugin(builder) { builder.hook("GraphQLInputObjectType:fields:field", (field, build, context) => { const { extend } = build; const { scope: { isMutationInput, fieldName }, Self } = context; if (!isMutationInput || fieldName !== "clientMutationId" || field.description) { return field; } return extend(field, { description: build.wrapDescription("An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.", "field") }, `Tweaking '${fieldName}' field in '${Self.name}'`); }, ["ClientMutationIdDescription"]); builder.hook("GraphQLObjectType:fields:field", (field, build, context) => { const { extend } = build; const { scope: { isMutationPayload, fieldName }, Self } = context; if (!isMutationPayload || fieldName !== "clientMutationId" || field.description) { return field; } return extend(field, { description: build.wrapDescription("The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.", "field") }, `Tweaking '${fieldName}' field in '${Self.name}'`); }, ["ClientMutationIdDescription"]); builder.hook("GraphQLObjectType:fields:field:args", (args, build, context) => { const { extend } = build; const { scope: { isRootMutation, fieldName }, Self } = context; if (!isRootMutation || !args.input || args.input.description) { return args; } return { ...args, input: extend(args.input, { description: build.wrapDescription("The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", "arg") }, `Adding a description to input arg for field '${fieldName}' field in '${Self.name}'`) }; }, ["ClientMutationIdDescription"]); }; exports.default = ClientMutationIdDescriptionPlugin; //# sourceMappingURL=ClientMutationIdDescriptionPlugin.js.map