UNPKG

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.

25 lines (24 loc) 1.03 kB
import { Branch } from "../../branch"; import { ServiceAPIIntegration } from "../../integration"; import { Route } from "../../../server"; import { Plugin, PluginProps } from "../plugin"; import { PolicyPlugin } from "../policy"; export interface IProtocolPluginCatalog { schema: any; description?: string; entries: any[]; } export interface IProtocolPluginSchema { description?: string; } export declare type ProtocolPluginProps = PluginProps & { policyPlugins: Readonly<PolicyPlugin<any, any>>[]; }; export declare abstract class ProtocolPlugin<PluginSchema extends IProtocolPluginSchema, PluginCatalog extends IProtocolPluginCatalog> extends Plugin<PluginSchema, PluginCatalog> { protected readonly props: ProtocolPluginProps; constructor(props: ProtocolPluginProps, opts?: any); abstract compileSchemata(routeHashMapCache: Readonly<Map<string, Readonly<Route>>>, integrations: Readonly<ServiceAPIIntegration>[], branch: Branch): { hash: string; route: Readonly<Route>; }[]; }