@anolilab/rc
v3.2.0
Published
The runtime configuration loader.
Maintainers
Readme
Install
npm install @anolilab/rcyarn add @anolilab/rcpnpm add @anolilab/rcUsage
The main function provided by this module is rc. It allows you to load configuration settings for your application from different sources.
import { rc } from "@anolilab/rc";
const { config, files } = rc("npm");
// returns a merged config object with all found npmrc files and a files list what files where found.Api
- name (string): The application name. This is used to locate configuration files and environment variables.
- options (object, optional): An object with the following properties:
- config (string, optional): Path to a specific configuration file.
- cwd (string, optional): The current working directory to start searching for configuration files. Defaults to process.cwd().
- defaults (object, optional): Default configuration values.
- home (string, optional): The home directory to use. Defaults to os.homedir().
- stopAt (string, optional): Directory to stop searching for configuration files.
Standards
Given your application name (appname), rc will look in all the obvious places for configuration.
- The defaults object you passed in
/etc/${appname}/config/etc/${appname}rc$HOME/.config/${appname}/config$HOME/.config/${appname}$HOME/.${appname}/config$HOME/.${appname}rc- a local
.${appname}/configand.${appname}rcand all found looking in../../../ ../../ ../ ./etc. - if you passed environment variable
${appname}_configthen from that file - if you passed options.config variable, then from that file
- environment variables prefixed with
${appname}_or use "__" to indicate nested properties (e.g.appname_foo__bar__baz=>foo.bar.baz)
All configuration sources that were found will be flattened into one object, in this exact order.
Api Docs
@anolilab/rc
Functions
rc()
function rc(name, options?): object;Defined in: index.ts:193
Aggregates configuration from multiple sources (defaults, configuration files, and environment variables)
into a single object, following the same resolution logic as the original rc npm package.
The resolution order is (highest precedence last):
options.defaults– default values supplied by the caller- Configuration files discovered by getConfigFiles
- Environment variables that start with
${name}_(nested via__)
The function also returns the list of configuration file paths that were read while resolving the configuration. No mutation is performed on any of the discovered files – they are only read.
Parameters
name
string
The base name of the application (used to derive env-var prefix and file names).
options?
Optional behaviour switches.
config?
string
Explicit path to a configuration file that should be merged last.
cwd?
string
Working directory to start searching for local configuration files.
defaults?
Record<string, any>
Default configuration values that act as the lowest precedence.
home?
string
Home directory to look for user-level configuration files. Defaults to the current user home directory.
stopAt?
string
Absolute path that acts as a boundary when traversing up the directory tree.
Returns
object
An object containing the final merged config and the ordered list of files that were considered.
config
config: Record<string, any>;files
files: string[];Related
- rc - The non-configurable configuration loader for lazy people.
Supported Node.js Versions
Libraries in this ecosystem make the best effort to track Node.js’ release schedule. Here’s a post on why we think this is important.
Contributing
If you would like to help take a look at the list of issues and check our Contributing guidelines.
Note: please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Credits
License
The anolilab rc is open-sourced software licensed under the MIT
