Class ConfigMap<Data>

ConfigMap

Example

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'));

Type Parameters

  • Data extends Record<string, unknown>

Implements

  • ISetOptionalLogger

Constructors

Properties

options: ConfigOptions

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

    Example

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

    Returns Promise<TypeValueRecords<Data>>

    Promise of all values

    Example

    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

    Returns Promise<Record<keyof Data, string>>

    Promise of all values as string

    Example

    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

    Example

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

    Type Parameters

    • Key extends string | number | symbol = keyof Data

    Parameters

    Returns Promise<LoaderTypeValueStrict<Data[Key]>>

    Promise of env object or undefined

    Example

    const valueObject: LoaderTypeValue<number> = await config.getObject('PORT');
    console.log(valueObject.type, valueObject.value); // 'env', 3000
  • get env object from config map as Result

    Type Parameters

    • Key extends string | number | symbol = keyof Data

    Parameters

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

    Result Promise of env object or undefined

    Example

    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<Result<Data[Key]>>

    Result Promise of value or undefined

    Example

    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

    Example

    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<Result<undefined extends Data[Key]
        ? string | undefined
        : string>>

    Result Promise of string value or undefined

    Example

    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) => void)

      callback function

        • (data): void
        • Parameters

          Returns void

    Returns Promise<void>