UNPKG

shyft

Version:

Model driven GraphQL API framework

86 lines (85 loc) 2.53 kB
import { Entity } from '../entity/Entity'; import { Context } from '../context/Context'; import { GraphQLResolveInfo, Source } from 'graphql'; export declare const MUTATION_TYPE_CREATE = "create"; export declare const MUTATION_TYPE_UPDATE = "update"; export declare const MUTATION_TYPE_DELETE = "delete"; export declare const mutationTypes: string[]; export interface MutationMap { [key: string]: Mutation; } export interface MutationGenerator { (mutations: MutationMap): Mutation[]; } export declare const defaultEntityMutations: ({ name: string; type: string; description: (typeName: string) => string; hasAttributes: boolean; } | { name: string; description: (typeName: string) => string; type: string; hasAttributes?: undefined; })[]; interface MutationPreProcessorResponse { [key: string]: unknown; } export declare type MutationPreProcessor = (params: { entity: Entity; id?: number | string; source?: Source; input?: { [key: string]: unknown; }; typeName: string; entityMutation: Mutation; context?: Context; info?: GraphQLResolveInfo; }) => MutationPreProcessorResponse | Promise<MutationPreProcessorResponse>; export declare type MutationPostProcessor = (params: { result?: { [key: string]: unknown; }; error?: Error; entity: Entity; id?: number | string; source?: Source; input?: { [key: string]: unknown; }; typeName: string; entityMutation: Mutation; context?: Context; info?: GraphQLResolveInfo; }) => void | Promise<void>; export declare type MutationSetup = { name?: string; type?: string; description?: string; attributes?: string[]; preProcessor?: MutationPreProcessor; postProcessor?: MutationPostProcessor; fromState?: string | string[]; toState?: string | string[]; }; export declare class Mutation { name: string; type: string; description: string; attributes: string[]; fromState?: string | string[]; toState?: string | string[]; preProcessor?: MutationPreProcessor; postProcessor?: MutationPostProcessor; isTypeCreate?: boolean; isTypeDelete?: boolean; needsInstance?: boolean; ignoreRequired?: boolean; isTypeUpdate?: boolean; constructor(setup?: MutationSetup); toString(): string; } export declare const isMutation: (obj: unknown) => obj is Mutation; export declare const processEntityMutations: (entity: Entity, mutations: Mutation[]) => Mutation[]; export {};