UNPKG

1.88 kBTypeScriptView Raw
1import { Request as BaseRequest, WorkerRouter as Router, Callback, CallbackResponse, workerErrorHandler, workerHandler, workerRequestHandler } from './router';
2import * as akala from '@akala/core';
3import * as express from 'express';
4export { Router, Callback, workerHandler as RouterHandler, workerErrorHandler as ErrorHandler, workerRequestHandler as RequestHandler };
5import * as jsonrpc from '@akala/json-rpc-ws';
6import send from 'send';
7export { CallbackResponse };
8export declare function createClient(namespace: string): PromiseLike<jsonrpc.ws.Client>;
9export declare type MasterRegistration = (from?: string, masterPath?: string, workerPath?: string) => void;
10export declare type IsModule = (moduleName: string) => boolean;
11export interface resolve {
12 (param: '$http'): akala.Http;
13 (param: '$request'): Request;
14 (param: '$callback'): Callback;
15 (param: '$router'): Router;
16 (param: '$io'): (namespace: string) => PromiseLike<jsonrpc.ws.Client>;
17 (param: '$bus'): jsonrpc.ws.Client;
18 (param: '$master'): MasterRegistration;
19 (param: '$isModule'): IsModule;
20 (param: string): any;
21}
22export interface WorkerInjector extends akala.Injector {
23 resolve: resolve;
24}
25export declare class WorkerInjectorImpl extends akala.Injector {
26 private request;
27 constructor(request: BaseRequest & {
28 body?: any;
29 });
30 resolve<T = any>(name: string): T;
31}
32export interface Request extends BaseRequest {
33 injector?: WorkerInjector;
34 [key: string]: any;
35 body: any;
36}
37export interface SendFileOptions extends send.SendOptions {
38 headers?: {
39 [key: string]: string;
40 };
41}
42export declare function expressWrap(handler: express.Handler): (req: Request, next: akala.NextFunction) => void;
43export declare function handle(app: Router, root: string): (request: Request, next?: akala.NextFunction) => PromiseLike<CallbackResponse>;