Skip to main content

with-directive

decorators render helper for directive-definition-only content.

See

Migrating from customDirective

withDirective()

function withDirective(name, render): DecoratorRenderer;

Defined in: directives/with-directive.ts:49

Builds a decorator render for content derived from a directive's own definition — not per-occurrence argument values, so no resolve is needed. Looks the directive up once and skips the decorator (renders nothing) when it is absent from the schema, sparing render its own getDirectiveFromSchema call and null check.

Parameters

name

string

the schema directive name to resolve.

render

(directive, options, context) => Maybe<string>

called with the resolved directive, the print options, and the decorator's context, only when the directive is present in the schema.

Returns

DecoratorRenderer

a DecoratorRenderer for use as a decorator's render.

Example

import { withDirective } from "@graphql-markdown/helpers/directives/with-directive";
import { directiveDescriptor } from "@graphql-markdown/helpers/directives/descriptor";
import { hasDirectiveNamed } from "@graphql-markdown/graphql";

decorators: {
authDescription: {
predicate: hasDirectiveNamed("auth"),
position: { into: "description" },
render: withDirective("auth", (directive, options, { type }) =>
directiveDescriptor(directive, type, "Requires the `${requires}` role."),
),
},
}