UNPKG

@envelop/extended-validation

Version:

Extended validation plugin adds support for writing GraphQL validation rules, that has access to all `execute` parameters, including variables.

24 lines (23 loc) 907 B
import { Plugin } from '@envelop/core'; import { ExecutionArgs, ExecutionResult } from 'graphql'; import { ExtendedValidationRule } from './common.cjs'; declare const symbolExtendedValidationRules: unique symbol; declare type ExtendedValidationContext = { rules: Array<ExtendedValidationRule>; didRun: boolean; }; declare type OnValidationFailedCallback = (params: { args: ExecutionArgs; result: ExecutionResult; setResult: (result: ExecutionResult) => void; }) => void; export declare const useExtendedValidation: <PluginContext extends Record<string, any> = {}>(options: { rules: Array<ExtendedValidationRule>; /** * Callback that is invoked if the extended validation yields any errors. */ onValidationFailed?: OnValidationFailedCallback; }) => Plugin<PluginContext & { [symbolExtendedValidationRules]?: ExtendedValidationContext | undefined; }>; export {};