All files / config root.config.ts

100% Statements 14/14
100% Branches 0/0
100% Functions 6/6
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50                        1x       1x       3x 1x     3x 1x     3x 1x         3x 1x         3x 1x         3x 1x    
import { Type } from 'class-transformer';
import { IsIn, IsString, ValidateNested } from 'class-validator';
import { AppConfig } from './root/app.config';
import { DatabaseConfig } from './root/database.config';
import { HostConfig } from './root/host.config';
import { CacheConfig } from './root/cache.config';
import { StorageConfig } from './root/storage.config';
import { OtelConfig } from './root/otel.config';
 
export class RootConfig {
  @IsString()
  @IsIn(['app', 'migration'])
  mode!: 'app' | 'migration';
 
  //--remove start--
  @IsString()
  secret!: string;
  //--remove end--
 
  @ValidateNested()
  @Type(() => AppConfig)
  app!: AppConfig;
 
  @ValidateNested()
  @Type(() => HostConfig)
  host!: HostConfig;
 
  @ValidateNested()
  @Type(() => OtelConfig)
  otel!: OtelConfig;
 
  @ValidateNested({
    each: true,
  })
  @Type(() => DatabaseConfig)
  databases!: { [s: string]: DatabaseConfig };
 
  @ValidateNested({
    each: true,
  })
  @Type(() => CacheConfig)
  caches!: { [s: string]: CacheConfig };
 
  @ValidateNested({
    each: true,
  })
  @Type(() => StorageConfig)
  storages!: { [s: string]: StorageConfig };
}