UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

65 lines (64 loc) 2.85 kB
import { ChildProcess } from 'child_process'; import express from 'express'; import { Container } from 'inversify'; import { Logger } from '@5minds/processcube_engine_sdk'; import { BaseController } from '../Api/Controller/BaseController'; import { SocketController } from '../Api/Controller/SocketController'; import { ServiceFacade } from './ServiceFacade'; import { WorkerFacade } from './WorkerFacade'; export type ClassConstructor = new (...args: Array<never>) => unknown; export type SocketControllerConstructor = new (...args: Array<never>) => SocketController; export type ProxyConfiguration = { proxyKey: string; targetKey: string; target: ClassConstructor; provideGlobally?: boolean; getGlobally?: boolean; }; export type HttpRouteConfiguration = { route: string; method: 'post' | 'get' | 'delete' | 'put'; controllerClass: ClassConstructor; controllerMethod: Function; isCancelable?: boolean; isDeprecated?: boolean | string; deprecateSilently?: boolean; }; export declare function subscribable(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; export declare function cancelable(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; export declare abstract class EngineRouter { engineApiRouter?: express.Router; extensionRouter?: express.Router; protected workerFacade?: WorkerFacade; protected serviceFacade?: ServiceFacade; protected logger: Logger; protected globalContainer: Container; protected routerContainer: Container; private engineApiRoutes; private extensionRoutes; private proxies; private socketControllers; private eventTopicsListening; private loggerNamespace; constructor(workerFacade: WorkerFacade, serviceFacade: ServiceFacade, globalContainer: Container, namespace: string); private onNotificationPublishedCallback; init(): Promise<void>; getChildProcess(): ChildProcess; dispose(): Promise<void>; onNotificationPublished(callback: (topic: string, message: any) => void): void; abstract initProxies(): Array<ProxyConfiguration>; abstract initSocketController(): Array<SocketControllerConstructor>; abstract initEventTopicsListening(): Array<string>; abstract initHttpRoutes(): Array<HttpRouteConfiguration>; protected getExtensionRoutes(): Promise<Array<HttpRouteConfiguration>>; protected getController<TController extends BaseController>(controller: ClassConstructor): TController; private buildIoc; private buildProxies; private buildControllers; private initMainThreadRouting; private registerEngineApiRoute; private registerExtensionRoute; private registerHttpRoute; private initMainThreadSocketNotificationBindings; private initWorkerRouting; }