@gabliam/web-core
Version:
Gabliam plugin for add web-core
33 lines (32 loc) • 1.14 kB
TypeScript
import { Container, gabliamValue } from '@gabliam/core';
import { extractArgsFn } from '../interface';
/**
* InterceptorConstructor
*/
export type InterceptorConstructor = new () => Interceptor;
/**
* Interceptor
*/
export interface Interceptor {
intercept(...args: any[]): gabliamValue<any>;
}
export declare function isInterceptor(value: any): value is Interceptor;
export declare const createInterceptorResolver: (container: Container) => (interceptor: any) => Interceptor;
/**
* Get interceptors metadata.
* If key is undefined, return the list of interceptors for a class (target)
* else return the list of interceptors for a method (key) of a class (target)
* @param {Container} container
* @param {Object} target
* @param {string} key?
* @returns express.RequestHandler[]
*/
export declare function extractInterceptors(container: Container, target: any, key?: string): InterceptorInfo[];
/**
* Get globals interceptors
*/
export declare const getGlobalInterceptors: (container: Container) => InterceptorInfo[];
export interface InterceptorInfo {
instance: Interceptor;
extractArgs: extractArgsFn;
}