shyft
Version:
Model driven GraphQL API framework
50 lines (49 loc) • 1.9 kB
TypeScript
import { PubSub } from 'graphql-subscriptions';
import { Entity } from '../entity/Entity';
export declare const pubsub: PubSub;
export declare const SUBSCRIPTION_TYPE_CREATE = "onCreate";
export declare const SUBSCRIPTION_TYPE_UPDATE = "onUpdate";
export declare const SUBSCRIPTION_TYPE_DELETE = "onDelete";
export declare const subscriptionTypes: string[];
export declare const defaultEntitySubscription: ({
name: string;
type: string;
description: (typeName: string) => string;
hasAttributes: boolean;
} | {
name: string;
description: (typeName: string) => string;
type: string;
hasAttributes?: undefined;
})[];
export declare type SubscriptionSetup = {
name?: string;
type?: string;
description?: string;
attributes?: string[];
delimiter?: string;
wildCard?: string;
pattern?: string;
preProcessor?: (entity?: Entity, id?: string | number, source?: any, input?: any, typeName?: string, entitySubscription?: Subscription, context?: any, info?: any) => Promise<string | null> | string | null;
postProcessor?: (entity?: Entity, source?: any, input?: any, typeName?: string, entitySubscription?: Subscription, context?: any, info?: any) => Promise<object | null> | object | null;
};
export declare class Subscription {
name: string;
type: string;
description: string;
attributes: string[];
delimiter?: string;
wildCard?: string;
pattern?: string;
preProcessor: Function;
postProcessor: Function;
isTypeCreate?: boolean;
isTypeDelete?: boolean;
needsInstance?: boolean;
ignoreRequired?: boolean;
isTypeUpdate?: boolean;
constructor(setup?: SubscriptionSetup);
toString(): string;
}
export declare const isSubscription: (obj: unknown) => obj is Subscription;
export declare const processEntitySubscriptions: (entity: Entity, subscriptions: Subscription[]) => Subscription[];