config
Dynamic configuration variable storage for all things AlgoRaven.
⚠️ Manual publishes are required to update the NPM library. No CI/CD is performed on merge.
Publishing to NPM
Config is a stable repository and changes only ever need to be made in the data
folder.
Underlying code changes will require manual publishing to NPM. To publish:
- Push a commit up to
main
with a new version number. - Run
yarn build
locally to build the source. - Run
npm publish
locally to publish the package.
Creating Config Variables
-
Navigate to your chosen service (i.e.
api
) under the environment you're wishing to add your variable to from within the data directory. -
Create a new file within the service's folder with the exact name of your variable (i.e.
/data/staging/api/max_retry_count
). -
Repeat for development, staging, and production folders. If you would like to add a fallback value in case no environment is specified, add it to default.
-
Your variable name will be its relative path from the environment directory, except with
.
replacing/
. For instance, a variable at/data/staging/api/max_retry_count
will be accessed viaapi.max_retry_count
.
Using Config Variables
-
Install:
yarn add @algoraven/config
-
Import the
Config
class as follows.import Config from '@algoraven/config'
-
Initialize it with an access token and an environment. Defaults environment to
default
.const config = new Config('abcdefghijklmnop', 'production')
-
Retrieve a config variable via the
config
object.// The second parameter is the default value if the config variable cannot be retrieved. // The third parameter is the duration to cache a non-empty result before trying again. const maxRetryCount = await config.getNumber('api.max_retry_count', 3, CACHE_DURATION.LONG)