2011-06-05 05:39:39 +00:00
<!DOCTYPE html> < html > < head > < title > file.js< / title > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" > < link rel = "stylesheet" media = "all" href = "../../docco.css" / > < / head > < body > < div id = "container" > < div id = "background" > < / div > < div id = "jump_to" > Jump To … < div id = "jump_wrapper" > < div id = "jump_page" > < a class = "source" href = "../..//nconf/provider.html" > nconf/provider.html < / a > < a class = "source" href = "../..//nconf/stores/file.html" > nconf/stores/file.html < / a > < a class = "source" href = "../..//nconf/stores/memory.html" > nconf/stores/memory.html < / a > < a class = "source" href = "../..//nconf/stores/redis.html" > nconf/stores/redis.html < / a > < a class = "source" href = "../..//nconf/stores.html" > nconf/stores.html < / a > < a class = "source" href = "../..//nconf.html" > nconf.html < / a > < / div > < / div > < / div > < table cellpadding = "0" cellspacing = "0" > < thead > < tr > < th class = "docs" > < h1 > file.js < / h1 > < / th > < th class = "code" > < / th > < / tr > < / thead > < tbody > < tr id = "section-1" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-1" > ¶ < / a > < / div > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "cm" > /*< / span >
2011-04-02 08:42:26 +00:00
< span class = "cm" > * file.js: Simple file storage engine for nconf files< / span >
< span class = "cm" > *< / span >
< span class = "cm" > * (C) 2011, Charlie Robbins< / span >
< span class = "cm" > *< / span >
< span class = "cm" > */< / span >
< span class = "kd" > var< / span > < span class = "nx" > fs< / span > < span class = "o" > =< / span > < span class = "nx" > require< / span > < span class = "p" > (< / span > < span class = "s1" > ' fs' < / span > < span class = "p" > ),< / span >
< span class = "nx" > util< / span > < span class = "o" > =< / span > < span class = "nx" > require< / span > < span class = "p" > (< / span > < span class = "s1" > ' util' < / span > < span class = "p" > ),< / span >
< span class = "nx" > Memory< / span > < span class = "o" > =< / span > < span class = "nx" > require< / span > < span class = "p" > (< / span > < span class = "s1" > ' ./memory' < / span > < span class = "p" > ).< / span > < span class = "nx" > Memory< / span > < span class = "p" > ;< / span >
< / pre > < / div > < / td > < / tr > < tr id = "section-2" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-2" > ¶ < / a > < / div > < h3 > function File (options)< / h3 >
< h4 > @options {Object} Options for this instance< / h4 >
< p > Constructor function for the File nconf store, a simple abstraction
around the Memory store that can persist configuration to disk.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "kd" > var< / span > < span class = "nx" > File< / span > < span class = "o" > =< / span > < span class = "nx" > exports< / span > < span class = "p" > .< / span > < span class = "nx" > File< / span > < span class = "o" > =< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > options< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "o" > !< / span > < span class = "nx" > options< / span > < span class = "p" > .< / span > < span class = "nx" > file< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > throw< / span > < span class = "k" > new< / span > < span class = "nb" > Error< / span > < span class = "p" > (< / span > < span class = "s1" > ' Missing required option `files`' < / span > < span class = "p" > );< / span >
< span class = "p" > }< / span >
< span class = "nx" > Memory< / span > < span class = "p" > .< / span > < span class = "nx" > call< / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > ,< / span > < span class = "nx" > options< / span > < span class = "p" > );< / span >
2011-04-19 21:34:27 +00:00
< span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > type< / span > < span class = "o" > =< / span > < span class = "s1" > ' file' < / span > < span class = "p" > ;< / span >
2011-04-02 08:42:26 +00:00
< span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > file< / span > < span class = "o" > =< / span > < span class = "nx" > options< / span > < span class = "p" > .< / span > < span class = "nx" > file< / span > < span class = "p" > ;< / span >
2011-04-19 21:34:27 +00:00
< span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > format< / span > < span class = "o" > =< / span > < span class = "nx" > options< / span > < span class = "p" > .< / span > < span class = "nx" > format< / span > < span class = "o" > ||< / span > < span class = "p" > {< / span >
< span class = "nx" > stringify< / span > < span class = "o" > :< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > obj< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > return< / span > < span class = "nx" > JSON< / span > < span class = "p" > .< / span > < span class = "nx" > stringify< / span > < span class = "p" > (< / span > < span class = "nx" > obj< / span > < span class = "p" > ,< / span > < span class = "kc" > null< / span > < span class = "p" > ,< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "p" > },< / span >
< span class = "nx" > parse< / span > < span class = "o" > :< / span > < span class = "nx" > JSON< / span > < span class = "p" > .< / span > < span class = "nx" > parse< / span >
< span class = "p" > };< / span >
2011-04-02 08:42:26 +00:00
< span class = "p" > };< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-3" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-3" > ¶ < / a > < / div > < p > Inherit from the Memory store< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nx" > util< / span > < span class = "p" > .< / span > < span class = "nx" > inherits< / span > < span class = "p" > (< / span > < span class = "nx" > File< / span > < span class = "p" > ,< / span > < span class = "nx" > Memory< / span > < span class = "p" > );< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-4" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-4" > ¶ < / a > < / div > < h3 > function save (value, callback)< / h3 >
< h4 > @value {Object} < em > Ignored< / em > Left here for consistency< / h4 >
< h4 > @callback {function} Continuation to respond to when complete.< / h4 >
< p > Saves the current configuration object to disk at < code > this.file< / code >
using the format specified by < code > this.format< / code > .< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nx" > File< / span > < span class = "p" > .< / span > < span class = "nx" > prototype< / span > < span class = "p" > .< / span > < span class = "nx" > save< / span > < span class = "o" > =< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "o" > !< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "nx" > callback< / span > < span class = "o" > =< / span > < span class = "nx" > value< / span > < span class = "p" > ;< / span >
< span class = "nx" > value< / span > < span class = "o" > =< / span > < span class = "kc" > null< / span > < span class = "p" > ;< / span >
< span class = "p" > }< / span >
< span class = "nx" > fs< / span > < span class = "p" > .< / span > < span class = "nx" > writeFile< / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > file< / span > < span class = "p" > ,< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > format< / span > < span class = "p" > .< / span > < span class = "nx" > stringify< / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > store< / span > < span class = "p" > ),< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > return< / span > < span class = "nx" > err< / span > < span class = "o" > ?< / span > < span class = "nx" > callback< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > )< / span > < span class = "o" > :< / span > < span class = "nx" > callback< / span > < span class = "p" > ();< / span >
< span class = "p" > });< / span >
2011-04-20 05:58:12 +00:00
< span class = "p" > };< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-5" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-5" > ¶ < / a > < / div > < h3 > function saveSync (value, callback)< / h3 >
< h4 > @value {Object} < em > Ignored< / em > Left here for consistency< / h4 >
< h4 > @callback {function} < strong > Optional< / strong > Continuation to respond to when complete.< / h4 >
< p > Saves the current configuration object to disk at < code > this.file< / code >
using the format specified by < code > this.format< / code > synchronously.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nx" > File< / span > < span class = "p" > .< / span > < span class = "nx" > prototype< / span > < span class = "p" > .< / span > < span class = "nx" > saveSync< / span > < span class = "o" > =< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > value< / span > < span class = "p" > ,< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "o" > !< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "nx" > callback< / span > < span class = "o" > =< / span > < span class = "nx" > value< / span > < span class = "p" > ;< / span >
< span class = "nx" > value< / span > < span class = "o" > =< / span > < span class = "kc" > null< / span > < span class = "p" > ;< / span >
< span class = "p" > }< / span >
< span class = "kd" > var< / span > < span class = "nx" > err< / span > < span class = "p" > ;< / span >
< span class = "k" > try< / span > < span class = "p" > {< / span >
< span class = "nx" > fs< / span > < span class = "p" > .< / span > < span class = "nx" > writeFileSync< / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > file< / span > < span class = "p" > ,< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > format< / span > < span class = "p" > .< / span > < span class = "nx" > stringify< / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > store< / span > < span class = "p" > ));< / span >
< span class = "p" > }< / span >
< span class = "k" > catch< / span > < span class = "p" > (< / span > < span class = "nx" > ex< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "nx" > err< / span > < span class = "o" > =< / span > < span class = "nx" > ex< / span > < span class = "p" > ;< / span >
< span class = "p" > }< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > return< / span > < span class = "nx" > callback< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > );< / span >
< span class = "p" > }< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > throw< / span > < span class = "nx" > err< / span > < span class = "p" > ;< / span >
< span class = "p" > }< / span >
< span class = "p" > };< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-6" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-6" > ¶ < / a > < / div > < h3 > function load (callback)< / h3 >
2011-04-02 08:42:26 +00:00
< h4 > @callback {function} Continuation to respond to when complete.< / h4 >
< p > Responds with an Object representing all keys associated in this instance.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nx" > File< / span > < span class = "p" > .< / span > < span class = "nx" > prototype< / span > < span class = "p" > .< / span > < span class = "nx" > load< / span > < span class = "o" > =< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "kd" > var< / span > < span class = "nx" > self< / span > < span class = "o" > =< / span > < span class = "k" > this< / span > < span class = "p" > ;< / span >
< span class = "nx" > fs< / span > < span class = "p" > .< / span > < span class = "nx" > readFile< / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > file< / span > < span class = "p" > ,< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > ,< / span > < span class = "nx" > data< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > return< / span > < span class = "nx" > callback< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > );< / span >
< span class = "p" > }< / span >
< span class = "nx" > data< / span > < span class = "o" > =< / span > < span class = "nx" > self< / span > < span class = "p" > .< / span > < span class = "nx" > format< / span > < span class = "p" > .< / span > < span class = "nx" > parse< / span > < span class = "p" > (< / span > < span class = "nx" > data< / span > < span class = "p" > .< / span > < span class = "nx" > toString< / span > < span class = "p" > ());< / span >
< span class = "nx" > self< / span > < span class = "p" > .< / span > < span class = "nx" > store< / span > < span class = "o" > =< / span > < span class = "nx" > data< / span > < span class = "p" > ;< / span >
< span class = "nx" > callback< / span > < span class = "p" > (< / span > < span class = "kc" > null< / span > < span class = "p" > ,< / span > < span class = "nx" > self< / span > < span class = "p" > .< / span > < span class = "nx" > store< / span > < span class = "p" > );< / span >
< span class = "p" > });< / span >
2011-04-20 05:58:12 +00:00
< span class = "p" > };< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-7" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-7" > ¶ < / a > < / div > < h3 > function load (callback)< / h3 >
< h4 > @callback {function} < strong > Optional< / strong > Continuation to respond to when complete.< / h4 >
< p > Attempts to load the data stored in < code > this.file< / code > synchronously and responds appropriately.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nx" > File< / span > < span class = "p" > .< / span > < span class = "nx" > prototype< / span > < span class = "p" > .< / span > < span class = "nx" > loadSync< / span > < span class = "o" > =< / span > < span class = "kd" > function< / span > < span class = "p" > (< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "kd" > var< / span > < span class = "nx" > err< / span > < span class = "p" > ,< / span > < span class = "nx" > data< / span > < span class = "p" > ;< / span >
< span class = "k" > try< / span > < span class = "p" > {< / span >
< span class = "nx" > data< / span > < span class = "o" > =< / span > < span class = "nx" > fs< / span > < span class = "p" > .< / span > < span class = "nx" > readFileSync< / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > file< / span > < span class = "p" > ,< / span > < span class = "s1" > ' utf8' < / span > < span class = "p" > );< / span >
< span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > store< / span > < span class = "o" > =< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > format< / span > < span class = "p" > .< / span > < span class = "nx" > parse< / span > < span class = "p" > (< / span > < span class = "nx" > data< / span > < span class = "p" > );< / span >
< span class = "p" > }< / span >
< span class = "k" > catch< / span > < span class = "p" > (< / span > < span class = "nx" > ex< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "nx" > err< / span > < span class = "o" > =< / span > < span class = "nx" > ex< / span > < span class = "p" > ;< / span >
< span class = "p" > }< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "nx" > callback< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< span class = "k" > return< / span > < span class = "nx" > callback< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > ,< / span > < span class = "nx" > data< / span > < span class = "p" > );< / span >
< span class = "p" > }< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span > < span class = "nx" > err< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
2011-06-05 05:39:39 +00:00
< span class = "nx" > err< / span > < span class = "p" > .< / span > < span class = "nx" > message< / span > < span class = "o" > =< / span > < span class = "s2" > " Error parsing your JSON configuration file." < / span >
2011-04-20 05:58:12 +00:00
< span class = "k" > throw< / span > < span class = "nx" > err< / span > < span class = "p" > ;< / span >
< span class = "p" > }< / span >
< span class = "k" > return< / span > < span class = "nx" > data< / span > < span class = "p" > ;< / span >
2011-04-02 08:42:26 +00:00
< span class = "p" > };< / span >
< / pre > < / div > < / td > < / tr > < / tbody > < / table > < / div > < / body > < / html >