Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

betterc

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

betterc

Like rc but better

  • 1.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

betterc

Like rc but better ;)

Searches for configs and returns an array of all configs found.

Installation

npm i betterc

Usage

var betterc = require('betterc');
betterc({ name: 'appname' });
betterc.sync({ name: 'appname' });

Given your application name (appname), betterc will look in all the obvious places for configuration:

  • the defaults object you passed in
  • $HOME/.${appname}rc
  • $HOME/.${appname}/config
  • $HOME/.config/${appname}
  • $HOME/.config/${appname}/config
  • 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 an option --config file 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 config files may have or have not json or js extentions in following order:

[
  `.${appname}rc`,
  `.${appname}rc.json`,
  `.${appname}rc.js`
]
```.

All configuration sources that were found will be added to result array.

## Advanced usage

```js
var betterc = require('betterc');

betterc({ // or betterc.sync for sync version
    name: 'appname',

    cwd: 'current-working-directory',
    argv: {
        config: 'path-to-config'
    },

    fsRoot: '/my-root',     // custom '/' directory, used in tests
    fsHome: '/my-home',     // custom $HOME directory, used in tests

    // initial config to be extended by all the others
    defaults: {
        foo: 'baz'
    },

    // config which will override all the others
    extendBy: {
        foo: 'will-override-baz'
    }
});

Configuration file format

Configuration files (e.g. .appnamerc) may be in json or CommonJS module format:

JSON

{
  "dependsOn": "0.10.0",
  "commands": {
    "www": "./commands/www",
    "console": "./commands/repl"
  },
  "generators": {
    "options": {
      "engine": "ejs"
    },
    "modules": {
      "new": "generate-new",
      "backend": "generate-backend"
    }
  }
}

CommonJS

module.exports = {
  "dependsOn": "0.10.0",
  "commands": {
    "www": "./commands/www",
    "console": "./commands/repl"
  },
  "generators": {
    "options": {
      "engine": "ejs"
    },
    "modules": {
      "new": "generate-new",
      "backend": "generate-backend"
    }
  }
};

Since env variables do not have a standard for types, your application needs be prepared for strings.

License

Licensed under the MIT License.

Keywords

FAQs

Package last updated on 28 Mar 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc