Commit graph

139 commits

Author SHA1 Message Date
Martin Heidegger
c8b6c98c7a Adding helpful information in case parsing failed.
I stumbled over 2 slight problems of broken configuration files:

1) It said that a error in my JSON file existed (even though it was a yaml file, parsed by libyaml)
2) It didn't tell me which error occured.

both should be fixed with this PR
2014-03-09 21:40:10 +09:00
Christopher Jeffrey
8105c761ad [fix] only reverse keys for "get" action to be safe. 2014-02-12 12:32:34 -06:00
Christopher Jeffrey
2241a36789 [fix] have latter stores precede the former stores again. 2014-02-12 12:26:38 -06:00
Christopher Jeffrey
0bb89ee2b4 [fix] have latter stores precede the former stores. 2014-02-11 12:40:41 -06:00
joaoafrmartins
120f5f0a4b added documentation 2014-01-10 00:26:07 +00:00
joaoafrmartins
681fd2f6b4 added regexp filtering to nconf env store 2014-01-10 00:17:52 +00:00
midknight41
6c1eb5e917 fixed white spacing and added (embarrassing absent) variable declarations 2013-10-26 20:40:12 +01:00
midknight41
29f1ca281b added support for BOM in load() and loadSync() 2013-10-03 09:17:36 +01:00
Marcin Floryan
0135d95a06 Additional error information when JSON config file cannot be read 2013-04-29 16:34:48 +01:00
José F. Romaniello
039057c730 allow different separator for memorystore 2013-04-05 15:07:33 -03:00
Johnny Domino
b73b0e1a37 attach help and showHelp arguments to the argv store 2013-02-23 12:33:23 -05:00
Johnny Domino
4894c8fcf7 resolves #64 passing usage string to optimist 2013-02-23 12:32:42 -05:00
Charlie Robbins
818526ca62 Merge pull request #63 from SchoonologyRRL/patch-1
Updated Memory.merge to handle null values
2012-12-20 22:56:54 -08:00
Michael Hart
bb57c497d3 Prefer this fix for #65 to 6045618 2012-12-20 18:12:42 -05:00
indexzero
60456186d7 [fix] Fix for #65 2012-12-20 18:03:37 -05:00
Michael Schoonmaker
ed41c51850 Updated Memory.merge to handle null values
Previously, if the Memory store was merged with an object containing a null value, the following Error occurred:

TypeError: Object.keys called on non-object
    at Function.keys (native)
    at Memory.merge (/.../node_modules/nconf/lib/nconf/stores/memory.js:199:17)
    at Memory.merge (/.../node_modules/nconf/lib/nconf/stores/memory.js:200:17)
    at Array.every (native)
    at Memory.merge (/.../node_modules/nconf/lib/nconf/stores/memory.js:199:29)
    at common.merge (/.../node_modules/nconf/lib/nconf/common.js:99:13)
    at Array.forEach (native)
    at common.merge (/.../node_modules/nconf/lib/nconf/common.js:98:22)
    at Array.forEach (native)
    at Object.common.merge (/.../node_modules/nconf/lib/nconf/common.js:97:8)

This commit prevents that.
2012-09-27 11:26:56 -07:00
Christian Tellnes
8e987b8d3d make it possible to use other formats than json in common.loadFiles and common.loadFilesSync 2012-09-16 17:45:00 +02:00
Bradley Meck
da39d3cac3 [fix] null values should merge properly instead of throwing errors 2012-09-08 20:10:58 -05:00
Bradley Meck
683f78918c [fix] #59 root get/set should work via null/undefined as key 2012-09-07 09:29:30 -05:00
indexzero
d96d2544bc [fix] Fix regression introduced by 36e061c4bd 2012-07-10 03:16:54 -04:00
indexzero
30734301e7 [api test doc] Make options to Provider.prototype.file take more flexible options 2012-07-10 01:50:18 -04:00
indexzero
7515f66572 [fix] Ensure that all options are passed to Provider.prototype.add in Provider.prototype.file. Fixes #51
[doc] Update README.md and method documentation
[dist] Remove vim comments
2012-07-10 01:27:28 -04:00
Michael Hart
9aaafc5a22 Ugh, fixed whitespace 2012-06-21 18:05:52 +10:00
Michael Hart
3c08fad1c9 Changed to as it's more accurate 2012-06-21 18:04:37 +10:00
Michael Hart
e15f787940 Updated README and allowed a simpley syntax 2012-06-21 17:18:22 +10:00
Michael Hart
8921d0502e Added support for nested configs via env 2012-06-21 16:46:10 +10:00
Michael Hart
6cbc323005 Add reset to the list of destructive commands 2012-06-14 19:40:28 +05:30
Michael Hart
26d81e8dca Merge objects if necessary when traversing stores on get() 2012-06-13 18:28:54 +05:30
Christian Tellnes
83440f9956 fix spelling in error message 2012-05-24 07:27:19 +02:00
Maciej Małecki
87b0dd01c9 [minor] Use fs.exists when available
`path.exists*` was moved to `fs` module in
joyent/node@e10ed097cb.
2012-05-15 11:02:46 +02:00
Jonathan Stewmon
6353d028f7 api and doc change for flatiron/nconf#28 (.file may now take a string instead of an object)
Conflicts:

	lib/nconf/provider.js
2012-05-03 17:10:19 -07:00
Russell Frank
36e061c4bd Fixes to Provider.save() and tests.
Fixed `Provider.save()` to properly ignore stores which do not provide
a saveSync method.  Also, fixed `save()` to properly save asynchronously
when an async `save()` method on a store is provided.

Removed the tests from `nconf-test.js` which expected `save()` to throw
or return an error when a store without `save()` methods was
encountered. Also removed a `console.log` from `provider-test.js`.
2012-05-01 22:44:15 -04:00
Pavan Kumar Sunkara
29eb5f905d [minor] Fix whitespaces 2012-04-15 00:58:55 +05:30
Jordan Harband
6ce0b7aef3 Surfacing additional JSON.stringify arguments in formats.json.stringify, and adding the json_spacing option to the File constructor. 2012-04-13 13:22:42 -07:00
Maciej Małecki
b3699314cf [minor] Use fs.existsSync when available
`path.exists*` was moved to `fs` module in
joyent/node@e10ed097cb.
2012-03-29 13:13:16 +02:00
indexzero
6242caafda [api minor] Add .loadSync() to Memory store. Fixes #24 2012-01-02 17:20:06 -05:00
indexzero
9e9e37bb84 [minor] Update whitespace 2012-01-02 17:14:03 -05:00
Jonathan Stewmon
a216336290 updated Provider.load to respect sources hierarchy 2012-01-02 17:11:51 -05:00
Jonathan Stewmon
5c43d546d1 fixed merge issue in Provider.load by reversing store keys in getStores 2012-01-02 17:11:31 -05:00
Jonathan Stewmon
2804b1fb37 fixed issue caused by using same name for defaults and overrides 2012-01-02 17:11:24 -05:00
Maciej Małecki
963387cfd4 [api] File.saveSync() should return store content
Fixes #27.
2011-12-25 15:30:48 +01:00
indexzero
6c720ee109 [dist] Update Copyright and Author to Nodejitsu Inc. 2011-11-24 00:33:08 -05:00
indexzero
53d854a789 [api] Default to options if options.store is not available in nconf.Literal 2011-11-24 00:30:27 -05:00
indexzero
f4f1fdf464 [fix test] Update to respected .sources option correctly 2011-11-24 00:30:14 -05:00
indexzero
bbcb2712f1 [api fix] Dont eagerly create config files in .load() and .loadSync() 2011-11-24 00:30:11 -05:00
indexzero
16a18bffe6 [refactor] Expose all store prototypes on nconf.*. Expose store instances on Provider.stores and Provider.sources 2011-11-24 00:29:43 -05:00
indexzero
c3cebe7cb4 [refactor] Rename .sources to ._stores and bring back ._sources 2011-11-24 00:29:39 -05:00
indexzero
78ce55602f [minor] Dont allow .set() calls to change values in readOnly stores: argv, env, and literal 2011-11-24 00:29:35 -05:00
indexzero
c3c315d648 [refactor] Refactor to make using nconf more fluent. 2011-11-24 00:29:15 -05:00
Maciej Małecki
1b258bf5b3 [fix] Fix option parsing
See nodejitsu/forever#165.
2011-11-22 02:06:09 +01:00
Maciej Małecki
bbc5885fc1 [api] Reparse argv arguments on system.loadArgv()
It allows manipulating `process.argv` on the fly while still being able
to use nconf `System` store.
2011-11-19 01:58:08 +01:00
indexzero
2e33082f0b [api] Automatically search for a file if options.search is true in File store 2011-10-22 02:36:45 -04:00
indexzero
a2464d244b [api] Load sources into the default system store so they are permenantly cached 2011-09-25 00:46:28 -04:00
indexzero
d0aee0d451 [api test] Added .sources option for nconf.Provider for readonly configuration data 2011-09-25 00:01:44 -04:00
indexzero
0234e17804 [fix] Update bad variable reference 2011-09-24 23:40:57 -04:00
indexzero
a490c7729b [fix] Match case in require statements 2011-09-19 13:51:17 -07:00
indexzero
1ef5797e83 [api test] Finished API and tests for hierarchical configuration storage. 2011-09-18 21:37:01 -04:00
indexzero
da2da7aea8 [api test breaking refactor] Significant refactor to how nconf works. Now a fully hierarchical configuration storage mechanism capable of multiple levels of stores of the same type. 2011-09-16 06:49:47 -04:00
indexzero
2bda7b6216 [api] Added nconf.stores.System 2011-09-13 07:38:41 -04:00
indexzero
e631d239d5 [fix] Lazy-load any CLI arguments from optimist 2011-08-29 15:19:55 -04:00
indexzero
fb392ddc51 [api test] Updated test/provider-test.js and associated merge implementation 2011-08-28 08:50:26 -04:00
indexzero
a6533aa7bf [dist api test] Finished integrating features from reconf and updating associated tests 2011-08-23 06:38:51 -04:00
indexzero
add8922c04 [api dist] Begin to integrate features from reconf 2011-08-22 20:17:28 -04:00
indexzero
8620e6ba91 [api test] Remove Redis store in preparation for nconf-redis 2011-07-08 15:33:33 -04:00
indexzero
7e4623ec46 [api test] Update nconf.Provider to create a new instance of the store if the options are different 2011-06-25 00:34:07 -04:00
indexzero
d8b5a80280 [minor] Small style updates to the File store 2011-06-24 03:31:26 -04:00
Marak Squires
c43685160d [refactor]: Cleaned up error handling on File.loadSync and File.load
[refactor]: Using path module to determine if file exists instead of throwing error
[api]: File.load and File.loadSync will now automatically create the requested JSON file path if no file is found.
2011-06-23 18:06:26 -07:00
Dominic Tarr
6c6887a850 move callback outside of try / catch
it's dangerous to callback inside try, because you may catch unexpected throws in callback.
2011-06-12 15:45:02 -07:00
indexzero
76db254740 [fix test] Update nconf.stores.File to respond with an error when loading malformed JSON async 2011-06-08 00:06:58 -04:00
indexzero
c9e60d96b5 [doc] Update code docs 2011-06-05 01:35:54 -04:00
indexzero
4459ba54a1 [api] Added .merge() to stores.Memory and stores.Redis 2011-06-05 01:29:14 -04:00
indexzero
c21ab02f44 Merge branch 'master' of https://github.com/samsonjs/nconf 2011-05-23 16:58:12 -04:00
Sami Samhuri
6acc1fc533 allow storing null in redis 2011-05-22 12:40:57 -07:00
Sami Samhuri
faa8ab9486 correctly retrieve falsy values from memory (hence file) 2011-05-22 12:40:57 -07:00
avian
e7c216e970 [minor] Clarified error message returned when a config file contains invalid JSON. 2011-05-20 01:16:22 -07:00
indexzero
87351caac8 [fix] Use the memory engine by default 2011-05-16 22:44:46 -04:00
indexzero
9da37dff2a [dist api test] Refactor pluggable nconf-level logic into nconf.Provider. Update .gitignore for npm 1.0. Update pathing in source and tests to be more require.paths future-proof 2011-05-14 01:47:26 -04:00
indexzero
d65922dc7a [api] Add .saveSync() and .loadSync() methods to File store 2011-04-20 01:57:56 -04:00
indexzero
067d58a99d [minor test] Add tests for File store save(). Improve default file format to pretty print the JSON output 2011-04-19 17:32:13 -04:00
indexzero
d99ab32cc5 [fix] Dont allow async.forEach to be called on undefined or null arrays 2011-04-13 18:49:38 -04:00
indexzero
04a59e93d6 [fix] Supress errors from Redis 2011-04-05 03:53:17 -04:00
indexzero
4094125b30 [api] Add support for Redis auth and optional callbacks. 2011-04-05 00:09:46 -04:00
indexzero
b850ae2dd0 [fix] Update path to require statement in Redis store 2011-04-03 14:19:02 -04:00
indexzero
752bb980ac [api] Improve the .use() method. Use the memory engine by default 2011-04-02 19:17:04 -04:00
indexzero
ac888dc5a2 [dist] Version bump. 0.1.0 2011-04-02 05:13:34 -04:00
indexzero
09b8c75383 [api test doc] Internal fixes from testing. More tests and docs 2011-04-02 04:31:20 -04:00
indexzero
73bf78339f [api doc test] Finalize API. Add more test coverage 2011-04-02 03:03:16 -04:00
indexzero
4c8e7a5b7f [api] More work on Redis store 2011-03-31 04:11:11 -04:00
indexzero
67b5c8ab2a [api test] First pass at implementation 2011-03-31 02:32:47 -04:00