From b22f6770c8bd084d66950655203c61dd701b3d90 Mon Sep 17 00:00:00 2001 From: Minteck Date: Sat, 4 Jun 2022 08:51:19 +0200 Subject: Remove node_modules --- node_modules/rc/README.md | 227 ---------------------------------------------- 1 file changed, 227 deletions(-) delete mode 100644 node_modules/rc/README.md (limited to 'node_modules/rc/README.md') diff --git a/node_modules/rc/README.md b/node_modules/rc/README.md deleted file mode 100644 index e6522e2..0000000 --- a/node_modules/rc/README.md +++ /dev/null @@ -1,227 +0,0 @@ -# rc - -The non-configurable configuration loader for lazy people. - -## Usage - -The only option is to pass rc the name of your app, and your default configuration. - -```javascript -var conf = require('rc')(appname, { - //defaults go here. - port: 2468, - - //defaults which are objects will be merged, not replaced - views: { - engine: 'jade' - } -}); -``` - -`rc` will return your configuration options merged with the defaults you specify. -If you pass in a predefined defaults object, it will be mutated: - -```javascript -var conf = {}; -require('rc')(appname, conf); -``` - -If `rc` finds any config files for your app, the returned config object will have -a `configs` array containing their paths: - -```javascript -var appCfg = require('rc')(appname, conf); -appCfg.configs[0] // /etc/appnamerc -appCfg.configs[1] // /home/dominictarr/.config/appname -appCfg.config // same as appCfg.configs[appCfg.configs.length - 1] -``` - -## Standards - -Given your application name (`appname`), rc will look in all the obvious places for configuration. - - * command line arguments, parsed by minimist _(e.g. `--foo baz`, also nested: `--foo.bar=baz`)_ - * environment variables prefixed with `${appname}_` - * or use "\_\_" to indicate nested properties
_(e.g. `appname_foo__bar__baz` => `foo.bar.baz`)_ - * if you passed an option `--config file` then from that file - * a local `.${appname}rc` or the first found looking in `./ ../ ../../ ../../../` etc. - * `$HOME/.${appname}rc` - * `$HOME/.${appname}/config` - * `$HOME/.config/${appname}` - * `$HOME/.config/${appname}/config` - * `/etc/${appname}rc` - * `/etc/${appname}/config` - * the defaults object you passed in. - -All configuration sources that were found will be flattened into one object, -so that sources **earlier** in this list override later ones. - - -## Configuration File Formats - -Configuration files (e.g. `.appnamerc`) may be in either [json](http://json.org/example) or [ini](http://en.wikipedia.org/wiki/INI_file) format. **No** file extension (`.json` or `.ini`) should be used. The example configurations below are equivalent: - - -#### Formatted as `ini` - -``` -; You can include comments in `ini` format if you want. - -dependsOn=0.10.0 - - -; `rc` has built-in support for ini sections, see? - -[commands] - www = ./commands/www - console = ./commands/repl - - -; You can even do nested sections - -[generators.options] - engine = ejs - -[generators.modules] - new = generate-new - engine = generate-backend - -``` - -#### Formatted as `json` - -```javascript -{ - // You can even comment your JSON, if you want - "dependsOn": "0.10.0", - "commands": { - "www": "./commands/www", - "console": "./commands/repl" - }, - "generators": { - "options": { - "engine": "ejs" - }, - "modules": { - "new": "generate-new", - "backend": "generate-backend" - } - } -} -``` - -Comments are stripped from JSON config via [strip-json-comments](https://github.com/sindresorhus/strip-json-comments). - -> Since ini, and env variables do not have a standard for types, your application needs be prepared for strings. - -To ensure that string representations of booleans and numbers are always converted into their proper types (especially useful if you intend to do strict `===` comparisons), consider using a module such as [parse-strings-in-object](https://github.com/anselanza/parse-strings-in-object) to wrap the config object returned from rc. - - -## Simple example demonstrating precedence -Assume you have an application like this (notice the hard-coded defaults passed to rc): -``` -const conf = require('rc')('myapp', { - port: 12345, - mode: 'test' -}); - -console.log(JSON.stringify(conf, null, 2)); -``` -You also have a file `config.json`, with these contents: -``` -{ - "port": 9000, - "foo": "from config json", - "something": "else" -} -``` -And a file `.myapprc` in the same folder, with these contents: -``` -{ - "port": "3001", - "foo": "bar" -} -``` -Here is the expected output from various commands: - -`node .` -``` -{ - "port": "3001", - "mode": "test", - "foo": "bar", - "_": [], - "configs": [ - "/Users/stephen/repos/conftest/.myapprc" - ], - "config": "/Users/stephen/repos/conftest/.myapprc" -} -``` -*Default `mode` from hard-coded object is retained, but port is overridden by `.myapprc` file (automatically found based on appname match), and `foo` is added.* - - -`node . --foo baz` -``` -{ - "port": "3001", - "mode": "test", - "foo": "baz", - "_": [], - "configs": [ - "/Users/stephen/repos/conftest/.myapprc" - ], - "config": "/Users/stephen/repos/conftest/.myapprc" -} -``` -*Same result as above but `foo` is overridden because command-line arguments take precedence over `.myapprc` file.* - -`node . --foo barbar --config config.json` -``` -{ - "port": 9000, - "mode": "test", - "foo": "barbar", - "something": "else", - "_": [], - "config": "config.json", - "configs": [ - "/Users/stephen/repos/conftest/.myapprc", - "config.json" - ] -} -``` -*Now the `port` comes from the `config.json` file specified (overriding the value from `.myapprc`), and `foo` value is overriden by command-line despite also being specified in the `config.json` file.* - - - -## Advanced Usage - -#### Pass in your own `argv` - -You may pass in your own `argv` as the third argument to `rc`. This is in case you want to [use your own command-line opts parser](https://github.com/dominictarr/rc/pull/12). - -```javascript -require('rc')(appname, defaults, customArgvParser); -``` - -## Pass in your own parser - -If you have a special need to use a non-standard parser, -you can do so by passing in the parser as the 4th argument. -(leave the 3rd as null to get the default args parser) - -```javascript -require('rc')(appname, defaults, null, parser); -``` - -This may also be used to force a more strict format, -such as strict, valid JSON only. - -## Note on Performance - -`rc` is running `fs.statSync`-- so make sure you don't use it in a hot code path (e.g. a request handler) - - -## License - -Multi-licensed under the two-clause BSD License, MIT License, or Apache License, version 2.0 -- cgit