Commit graph

74 commits

Author SHA1 Message Date
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