@anolilab/rc
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

anolilab rc

This module provides a utility function to load rc configuration settings from various sources, including environment variables, default values, and configuration files located in multiple standard directories. It merges these settings into a single configuration object.


typescript-image npm-image license-image


Daniel Bannert's open source work is supported by the community on GitHub Sponsors


Install

npm install @anolilab/rc
yarn add @anolilab/rc
pnpm add @anolilab/rc

Usage

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}/config and .${appname}rc and all found looking in ../../../ ../../ ../ ./ etc.
  • if you passed environment variable ${appname}_config then 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.

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

Readme

Keywords

Package Sidebar

Install

npm i @anolilab/rc

Weekly Downloads

346

Version

1.1.2

License

MIT

Unpacked Size

80.5 kB

Total Files

10

Last publish

Collaborators

  • prisis