UNPKG

snyk-config

Version:

Config setup for snyk shared across projects

82 lines (57 loc) 2.16 kB
# snyk-config Loads the configuration for your module. ## Usage Although you can require this module directly, it's recommended you create your own `config.ts` file that can be cached by the require system and called *without* a path: ```typescript // config.ts import { loadConfig } from 'snyk-config'; export const config = loadConfig('<directory with config files>'); // in app.ts import { config } from './config'; // in foo.ts import { config } from './config'; // matches config in app.ts ``` ## Method The config loader will look for the following values in order of priority, specifically, if a property appears in multiple layers of config (below) the first found is used: - process environment values prefixed with `SNYK_` - process arguments - a `config.secret.json` file in the path specified by: * the `secretConfig` option, or * the environment variable `CONFIG_SECRET_FILE`, or * in the specified config directory - a `config.${SERVICE_ENV}.json` file in the specified config directory, * where `SERVICE_ENV` defaults to `local`, if not set - a `config.default.json` file in the specified config directory ## Example ### config.local.json ```json { "from": "file" } ``` ### app.js ```typescript import { loadConfig } from 'snyk-config'; // as we're in the same directory as the config.local.json, there's no arg const config = loadConfig(); console.log(config); ``` ### cli ```shell $ SNYK_from=cli node app.js => { from: "cli" } ``` ## Notes * Values read from the environment or from the process arguments will *always* be `strings` or `boolean`s. This is important to differentiate from values parsed in the config files as these can be `numbers`. * Environment property names strip *off* the preceding `SNYK_` string, so `SNYK_foo = 10` becomes `foo = "10"` * To create a nested object structure from the environment values, use two underscores: `SNYK_foo__bar = 10` becomes `foo = { bar: "10" }` * By default, environment variable values will not be JSON-parsed. Parsing can be enabled by adding the `parseEnvValues` option, or by setting the `CONFIG_PARSE_ENV_VALUES` environment variable.