moleculer-api
Version:
A dynamic API Gateway for MoleculerJS which updates REST endpoints and aggregated GraphQL schema, access control policy for each action calls from metadata of remote services schema without restart or deployment.
68 lines (67 loc) • 2.92 kB
TypeScript
import { GraphQLResolveInfo, DocumentNode } from "graphql";
import { CallConnectorSchema, ConnectorCatalog, MapConnectorSchema, PublishConnectorSchema, SubscribeConnectorSchema } from "../../connector";
import { IProtocolPluginCatalog, IProtocolPluginSchema } from "../plugin";
export declare type GraphQLProtocolPluginSchema = IProtocolPluginSchema & {
description?: string;
typeDefs: string | DocumentNode;
resolvers: GraphQLProtocolResolversSchema;
};
export declare type GraphQLProtocolResolversSchema = {
Query?: GraphQLProtocolQueryTypeResolverSchema;
Mutation?: GraphQLProtocolMutationTypeResolverSchema;
Subscription?: GraphQLProtocolSubscriptionTypeResolverSchema;
} & {
[typeName: string]: GraphQLProtocolObjectTypeResolverSchema;
};
export declare type GraphQLProtocolQueryTypeResolverSchema = {
[fieldName: string]: GraphQLCallableFieldResolverSchema | GraphQLMappableFieldResolverSchema;
};
export declare type GraphQLProtocolMutationTypeResolverSchema = {
[fieldName: string]: Omit<GraphQLCallableFieldResolverSchema, "ignoreError"> | GraphQLPublishableFieldResolverSchema | GraphQLMappableFieldResolverSchema;
};
export declare type GraphQLProtocolSubscriptionTypeResolverSchema = {
[fieldName: string]: GraphQLSubscribableFieldResolverSchema;
};
export declare type GraphQLProtocolObjectTypeResolverSchema = {
__isTypeOf?: GraphQLIsTypeOfFieldResolverSchema;
} & {
[fieldName: string]: GraphQLCallableFieldResolverSchema | GraphQLMappableFieldResolverSchema;
};
export declare type GraphQLFieldResolverSchema = GraphQLCallableFieldResolverSchema | GraphQLPublishableFieldResolverSchema | GraphQLSubscribableFieldResolverSchema | GraphQLMappableFieldResolverSchema | GraphQLIsTypeOfFieldResolverSchema | undefined;
export declare type GraphQLCallableFieldResolverSchema = {
call: CallConnectorSchema;
ignoreError?: boolean;
};
export declare type GraphQLPublishableFieldResolverSchema = {
publish: PublishConnectorSchema;
};
export declare type GraphQLSubscribableFieldResolverSchema = {
subscribe: SubscribeConnectorSchema;
};
export declare type GraphQLMappableFieldResolverSchema = MapConnectorSchema<(obj: {
source: any;
args: any;
info: GraphQLResolveInfo;
context: any;
}) => any>;
export declare type GraphQLIsTypeOfFieldResolverSchema = MapConnectorSchema<(obj: {
source: any;
info: GraphQLResolveInfo;
context: any;
}) => boolean>;
export declare type GraphQLProtocolPluginCatalog = IProtocolPluginCatalog & {
schema: GraphQLProtocolPluginSchema;
description: string | null;
entries: {
typeDef: string;
kind: string;
description: string | null;
deprecated: boolean;
fields: {
name: string;
description: string | null;
deprecated: boolean;
connector: ConnectorCatalog;
}[] | null;
}[];
};