UNPKG

1.46 kBTypeScriptView Raw
1/// <reference types="node" />
2import { Type } from '@nestjs/common/interfaces';
3import { IncomingMessage } from 'http';
4import { Observable } from 'rxjs';
5import { ContextId } from '../injector/instance-wrapper';
6import { HeaderStream } from '../router/sse-stream';
7import { ParamProperties } from './context-utils';
8export declare const HANDLER_METADATA_SYMBOL: unique symbol;
9export type HandleResponseFn = HandlerResponseBasicFn | HandleSseResponseFn;
10export type HandlerResponseBasicFn = <TResult, TResponse>(result: TResult, res: TResponse, req?: any) => any;
11export type HandleSseResponseFn = <TResult extends Observable<unknown> = any, TResponse extends HeaderStream = any, TRequest extends IncomingMessage = any>(result: TResult, res: TResponse, req: TRequest) => any;
12export interface HandlerMetadata {
13 argsLength: number;
14 paramtypes: any[];
15 httpStatusCode: number;
16 responseHeaders: any[];
17 hasCustomHeaders: boolean;
18 getParamsMetadata: (moduleKey: string, contextId?: ContextId, inquirerId?: string) => (ParamProperties & {
19 metatype?: any;
20 })[];
21 fnHandleResponse: HandleResponseFn;
22}
23export declare class HandlerMetadataStorage<TValue = HandlerMetadata, TKey extends Type<unknown> = any> {
24 private readonly [HANDLER_METADATA_SYMBOL];
25 set(controller: TKey, methodName: string, metadata: TValue): void;
26 get(controller: TKey, methodName: string): TValue | undefined;
27 private getMetadataKey;
28}