@wspro/env
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Декоратор для заполнения свойст через 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));

Readme

Keywords

Package Sidebar

Install

npm i @wspro/env

Weekly Downloads

1

Version

1.0.1

License

ISC

Unpacked Size

58.1 kB

Total Files

33

Last publish

Collaborators

  • wspro