---
meta:
 - name: keywords
   description: api typescript node.js documentation DIConfiguration class
---
# DIConfiguration - @tsed/di

## Usage

```typescript
import { DIConfiguration } from "@tsed/di";
```

> See [/packages/di/src/common/services/DIConfiguration.ts](https://github.com/tsedio/tsed/blob/v8.28.4/packages/di/src/common/services/DIConfiguration.ts#L0-L0).

## Overview

```ts
class DIConfiguration {
    readonly default: Map<string, any>;
    protected map: Map<string, any>;
    constructor(initialProps?: {});
    get version(): string;
    set version(v: string);
    get rootDir(): string;
    set rootDir(value: string);
    get env(): Env;
    set env(value: Env);
    get imports(): (TokenProvider | ImportTokenProviderOpts)[];
    set imports(imports: (TokenProvider | ImportTokenProviderOpts)[]);
    get routes(): TokenRoute[];
    set routes(routes: TokenRoute[]);
    get logger(): Partial<DILoggerOptions>;
    set logger(value: Partial<DILoggerOptions>);
    get debug(): boolean;
    set debug(debug: boolean);
    get mount(): Record<string, TokenProvider[]>;
    set mount(value: Record<string, TokenProvider[]>);
    forEach(callbackfn: (value: any, index: string, map: Map<string, any>) => void, thisArg?: any): void;
    set(obj: Partial<TsED.Configuration>): this;
    set(propertyKey: string, value?: unknown): this;
    setRaw(propertyKey: string, value: any): this;
    get<T = any>(propertyKey: string, defaultValue?: T): T;
    decorate(key: string, value: ((...args: unknown[]) => unknown) | PropertyDescriptor): this | undefined;
    protected getRaw(propertyKey: string, defaultValue?: any): any;
}
```

<!-- Description -->

## Description

Configuration management service for the DI system.

Stores and manages application configuration settings including imports, routes, logger options,
and custom properties. Provides type-safe accessors for common configuration keys and supports
nested property access via `get()` and `set()`.

### Usage

```typescript
import {DIConfiguration} from "@tsed/di";

const config = new DIConfiguration({
  rootDir: __dirname,
  env: Env.PROD,
  logger: {level: "info"}
});

config.set("custom.nested.key", "value");
const value = config.get("custom.nested.key");
```

<!-- Members -->

## readonly default

```ts
readonly default: Map<string, any>;
```

## protected map

```ts
protected map: Map<string, any>;
```

## get version

```ts
get version(): string;
```

## set version

```ts
set version(v: string);
```

## get rootDir

```ts
get rootDir(): string;
```

## set rootDir

```ts
set rootDir(value: string);
```

## get env

```ts
get env(): Env;
```

## set env

```ts
set env(value: Env);
```

## get imports

```ts
get imports(): (TokenProvider | ImportTokenProviderOpts)[];
```

## set imports

```ts
set imports(imports: (TokenProvider | ImportTokenProviderOpts)[]);
```

## get routes

```ts
get routes(): TokenRoute[];
```

## set routes

```ts
set routes(routes: TokenRoute[]);
```

## get logger

```ts
get logger(): Partial<DILoggerOptions>;
```

## set logger

```ts
set logger(value: Partial<DILoggerOptions>);
```

## get debug

```ts
get debug(): boolean;
```

## set debug

```ts
set debug(debug: boolean);
```

## get mount

```ts
get mount(): Record<string, TokenProvider[]>;
```

## set mount

```ts
set mount(value: Record<string, TokenProvider[]>);
```

## forEach

```ts
forEach(callbackfn: (value: any, index: string, map: Map<string, any>) => void, thisArg?: any): void;
```

## set

```ts
set(obj: Partial<TsED.Configuration>): this;
```

## set

```ts
set(propertyKey: string, value?: unknown): this;
```

## setRaw

```ts
setRaw(propertyKey: string, value: any): this;
```

## get

```ts
get<T = any>(propertyKey: string, defaultValue?: T): T;
```

## decorate

```ts
decorate(key: string, value: ((...args: unknown[]) => unknown) | PropertyDescriptor): this | undefined;
```

## protected getRaw

```ts
protected getRaw(propertyKey: string, defaultValue?: any): any;
```
