Class ConfigMap<Data>

ConfigMap

type ConfigEnv = {
PORT: number;
HOST: string;
DEBUG: boolean;
URL: URL;
};
const config = new ConfigMap<ConfigEnv>({
DEBUG: {loaders: [env()], parser: booleanParser, defaultValue: false},
HOST: {loaders: [env()], parser: stringParser, defaultValue: 'localhost'},
PORT: {loaders: [env()], parser: integerParser, defaultValue: 3000},
URL: {loaders: [env()], parser: new UrlParser({urlSanitize: true}), defaultValue: new URL('http://localhost:3000')},
});
console.log('port', await config.get('PORT'));

v0.6.0

Type Parameters

  • Data extends Record<string, unknown>

Implements

  • ISetOptionalLogger

Constructors

Methods

  • get env value from config map

    Type Parameters

    • Key extends string | number | symbol = keyof Data

    Parameters

    Returns Promise<Data[Key]>

    Promise of value or undefined

    const port: number = await config.get('PORT');
    
  • get all env value objects from config map

    Returns Promise<TypeValueRecords<Data>>

    Promise of all values

    const values: TypeValueRecords<Data> = await config.getAll();
    console.log(values.PORT.type, values.PORT.value); // 'env', 3000
  • get all env values from config map as string

    Parameters

    Returns Promise<Record<keyof Data, string>>

    Promise of all values as string

    const values: Record<keyof Data, string> = await config.getAllStringValues();
    console.log('PORT', values.PORT); // '3000' (string)
  • get all env values from config map

    Returns Promise<Data>

    Promise of all values

    const values: Data = await config.getAllValues();
    console.log('PORT', values.PORT); // 3000 (number)
  • get env object from config map as Result

    Type Parameters

    • Key extends string | number | symbol = keyof Data

    Parameters

    Returns Promise<IResult<LoaderTypeValueStrict<Data[Key]>>>

    Result Promise of env object or undefined

    const valueObject: Result<LoaderTypeValue<number>> = await config.getObjectResult('PORT');
    if (valueObject.isOk()) {
    const {type, value} = valueObject.ok();
    console.log(type, value); // 'env', 3000
    }
  • get env value from config map as Result

    Type Parameters

    • Key extends string | number | symbol = keyof Data

    Parameters

    Returns Promise<IResult<Data[Key]>>

    Result Promise of value or undefined

    const port: Result<number> = await config.getResult('PORT');
    if (port.isOk()) {
    console.log('port', port.ok());
    }
  • get env value as string from config map

    Type Parameters

    • Key extends string | number | symbol = keyof Data

    Parameters

    Returns Promise<undefined extends Data[Key] ? string | undefined : string>

    Promise of string value or undefined

    const port: string = await config.getString('PORT');
    
  • get env value as string from config map as Result

    Type Parameters

    • Key extends string | number | symbol = keyof Data

    Parameters

    Returns Promise<IResult<undefined extends Data[Key] ? string | undefined : string>>

    Result Promise of string value or undefined

    const port: Result<string> = await config.getStringResult('PORT');
    if (port.isOk()) {
    console.log('port', port.ok());
    }
  • Set logger value

    Parameters

    • logger: undefined | ILoggerLike

      logger like object

    Returns void

  • Validate all env values from config map, expect to throw error if error exists

    Parameters

    • callback: (data: Data) => void

      callback function

    Returns Promise<void>