# Class DIContext

Class
Module
import { DIContext } from "@tsed/di"
Source/packages/di/src/types/node/domain/DIContext.ts

# Overview

class DIContext {
    #private;
    opts: DIContextOptions;
    [x: string]: any;
    constructor(opts: DIContextOptions);
get <span class="token function">logger</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/di/types/node/domain/ContextLogger.html"><span class="token">ContextLogger</span></a><span class="token punctuation">;</span>

get <span class="token function">id</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>
get <span class="token function">dateStart</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">Date</span><span class="token punctuation">;</span>
get <span class="token function">injector</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/di/types/common/services/InjectorService.html"><span class="token">InjectorService</span></a><span class="token punctuation">;</span>
get <span class="token function">env</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>

get <span class="token function">container</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/di/types/common/domain/LocalsContainer.html"><span class="token">LocalsContainer</span></a><span class="token punctuation">;</span>
<span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>
<span class="token function">emit</span><span class="token punctuation">(</span>eventName<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> ...args<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token function">runInContext</span><span class="token punctuation">(</span>next<span class="token punctuation">:</span> Function<span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>
cache&lt;<a href="/api/di/types/common/decorators/Value.html"><span class="token">Value</span></a><span class="token punctuation"> = </span><span class="token keyword">any</span>&gt;<span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> cb<span class="token punctuation">:</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> =&gt; <a href="/api/di/types/common/decorators/Value.html"><span class="token">Value</span></a><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/di/types/common/decorators/Value.html"><span class="token">Value</span></a><span class="token punctuation">;</span>
cacheAsync&lt;<a href="/api/di/types/common/decorators/Value.html"><span class="token">Value</span></a><span class="token punctuation"> = </span><span class="token keyword">any</span>&gt;<span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> cb<span class="token punctuation">:</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> =&gt; Promise&lt;<a href="/api/di/types/common/decorators/Value.html"><span class="token">Value</span></a>&gt;<span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<a href="/api/di/types/common/decorators/Value.html"><span class="token">Value</span></a>&gt;<span class="token punctuation">;</span>
<span class="token function">delete</span><span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
get&lt;T<span class="token punctuation"> = </span><span class="token keyword">any</span>&gt;<span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> T<span class="token punctuation">;</span>
<span class="token function">has</span><span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
<span class="token function">set</span><span class="token punctuation">(</span>key<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">,</span> value<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> this<span class="token punctuation">;</span>

}

# Members

#private;


[x: string]: any;

get logger(): ContextLogger;

Logger attached to the context request.


get id(): string;

Request id generated by contextMiddleware.

TIP

By default Ts.ED generate uuid like that uuidv4().replace(/-/gi, "")). Dash are removed to simplify tracking logs in Kibana

TIP

Request id can by customized by changing the server configuration.

@Configuration({
  logger: {
    reqIdBuilder: createUniqId // give your own id generator function
  }
})
class Server {

}
1
2
3
4
5
6
7
8

:::


get dateStart(): Date;

get injector(): InjectorService;

get env(): any;

get container(): LocalsContainer;

The request container used by the Ts.ED DI. It contains all services annotated with @Scope(ProviderScope.REQUEST)


destroy(): Promise<any>;

emit(eventName: string, ...args: any[]): Promise<void>;

runInContext(next: Function): Promise<any>;

cache<Value = any>(key: string, cb: () => Value): Value;

cacheAsync<Value = any>(key: string, cb: () => Promise<Value>): Promise<Value>;

delete(key: any): boolean;

get<T = any>(key: any): T;

has(key: any): boolean;

set(key: any, value: any): this;