UNPKG

shyft

Version:

Model driven GraphQL API framework

75 lines (74 loc) 2.33 kB
import { Permission } from '../permission/Permission'; import { Context } from '../context/Context'; import { GraphQLResolveInfo, Source } from 'graphql'; export declare const ACTION_TYPE_MUTATION = "mutation"; export declare const ACTION_TYPE_QUERY = "query"; export declare const actionTypes: string[]; export declare type ActionPreProcessor = (params: { action: Action; source?: any; input?: { [key: string]: unknown; }; context?: Context; info?: GraphQLResolveInfo; }) => void | Promise<void>; export declare type ActionPostProcessor = (params: { result?: { [key: string]: unknown; }; error?: Error; action: Action; source?: Source; input?: { [key: string]: unknown; }; context?: Context; info?: GraphQLResolveInfo; }) => void | Promise<void>; export declare type ActionResolver = (params: { source?: Source; input?: { [key: string]: unknown; }; context?: Context; info?: GraphQLResolveInfo; }) => unknown | Promise<unknown>; export declare type ActionSetup = { name?: string; description?: string; input?: any; output?: any; resolve: ActionResolver; type?: string; permissions?: ((...args: any[]) => Permission | Permission[]) | Permission | Permission[]; preProcessor?: ActionPreProcessor; postProcessor?: ActionPostProcessor; }; export declare class Action { name: string; description: string; input: any; private _input; output: any; private _output; resolve: ActionResolver; type: string; permissions: Permission | Permission[]; private readonly _permissions; private _defaultPermissions; descriptionPermissions: string | boolean; preProcessor?: ActionPreProcessor; postProcessor?: ActionPostProcessor; constructor(setup?: ActionSetup); getInput(): null | any; hasInput(): boolean; getOutput(): null | any; hasOutput(): boolean; _processPermissions(): null | Permission | Permission[]; _generatePermissionDescriptions(): void; _injectDefaultPermissionsBySchema(defaultPermissions: any): void; getPermissions(): ((...args: any[]) => Permission | Permission[]) | Permission | Permission[]; toString(): string; } export declare const isAction: (obj: unknown) => obj is Action;