shyft
Version:
Model driven GraphQL API framework
75 lines (74 loc) • 2.33 kB
TypeScript
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;