@giraphql/plugin-errors
Version:
A GiraphQL plugin for adding typed errors into your schema
53 lines (50 loc) • 1.23 kB
text/typescript
import {
EmptyToOptional,
FieldNullability,
Normalize,
SchemaTypes,
TypeParam,
} from '@giraphql/core';
export interface ErrorsPluginOptions {
defaultTypes?: (new (...args: any[]) => Error)[];
directResult?: boolean;
}
export type ErrorFieldOptions<
Types extends SchemaTypes,
Type extends TypeParam<Types>,
Shape,
Nullable extends FieldNullability<Type>,
> = EmptyToOptional<{
types?: (new (...args: any[]) => Error)[];
directResult?: Type extends unknown[] ? false : boolean;
union: Normalize<
Omit<GiraphQLSchemaTypes.UnionTypeOptions<Types>, 'resolveType' | 'types'> & {
name?: string;
}
>;
result: Normalize<
Omit<GiraphQLSchemaTypes.ObjectTypeOptions<Types, Shape>, 'interfaces' | 'isTypeOf'> & {
name?: string;
}
>;
dataField: Normalize<
Omit<
GiraphQLSchemaTypes.ObjectFieldOptions<
Types,
Shape,
Type,
Type extends [unknown]
? {
list: false;
items: Nullable extends { items: boolean } ? Nullable['items'] : true;
}
: false,
{},
Shape
>,
'args' | 'nullable' | 'resolve' | 'type'
> & {
name?: string;
}
>;
}>;