Function convertToNested

  • Parse one level object to nested structure based on key separator

    Type Parameters

    • T = Record<string, unknown>

    Parameters

    • array: Record<string, unknown>
    • Optional options: {
          separator?: string;
          transformKey?: ((value) => string);
          transformValue?: ((value) => unknown);
      }
      • Optional separator?: string

        Key separator, default .

      • Optional transformKey?: ((value) => string)

        Key transform function, e.g. camelCase or pascalCase

          • (value): string
          • Parameters

            • value: string

            Returns string

      • Optional transformValue?: ((value) => unknown)

        Value transform function, by default JSON.parse is used.

          • (value): unknown
          • Parameters

            • value: unknown

            Returns unknown

    Returns T

    Example

    // ENV: config__host=0.0.0.0 config__port=3000
    convertToNested(process.env, { separator: '__' })
    // {config: { host: '0.0.0.0', port: 3000 } }

    // ENV: CONFIG__PRIVATE_KEY="my key"
    // ENV: CONFIG__PUBLIC_KEY="my key"
    // ENV: CONFIG__ALLOWED_IPS='["127.0.0.1", "localhost"]'
    convertToNested(process.env, {
    separator: '__',
    transformKey: camelCase
    }).config
    // { privateKey: 'my key', publicKey: 'my key', allowedIps: ['127.0.0.1', 'localhost'] }