1.0.1 • Published 1 year ago

@wspro/env v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Декоратор для заполнения свойст через ENV-переменные

Пример легаси использования

import { EnvProperty, StringValue } from '@wspro/env';

class EnvConfig {
  @EnvProperty('ENV_STRING', StringValue)
  public strValue!: string;
}

const config = new EnvConfig();

config.strValue; // значение из ENV-переменой
config.strValue = 'new value'; // Error

Вариант с @wspro/di

// файл config.ts

import { Injectable } from '@wspro/di';
import { EnvProperty, StringValue } from '@wspro/env';

@Injectable()
export class EnvConfig {
  @EnvProperty('ENV_STRING', StringValue)
  public strValue!: string;
}
// файл application.ts

import { Application } from '@wspro/di';
import { EnvConfig } from './config';

@Application()
export class AppService {
  constructor(private config: EnvConfig) {}

  // Рабочие методы класса приложения
  public startApplication(): void {
    this.config.strValue; // значение из ENV-переменой
    ...
  }
}
// файл main.ts

import { AppFactory } from '@wspro/di';
import { AppService } from './application';

async function bootstrap(): Promise<void> {
  const app = await AppFactory.create<AppService>(AppService);
  app.startApplication();
}

bootstrap().catch((error) => console.error(error));
1.0.1

1 year ago

1.0.0

1 year ago