system.js | |
---|---|
/*
* system.js: Simple memory-based store for process environment variables and
* command-line arguments.
*
* (C) 2011, Charlie Robbins
*
*/
var util = require('util'),
Memory = require('./memory').Memory;
| |
function System (options)@options {Object} Options for this instance.Constructor function for the System nconf store, a simple abstraction around the Memory store that can read process environment variables and command-line arguments. | var System = exports.System = function (options) {
options = options || {};
Memory.call(this, options);
this.type = 'system';
this.overrides = options.overrides || null;
this.env = options.env || false;
this.argv = options.argv || false;
}; |
Inherit from the Memory store | util.inherits(System, Memory); |
function loadSync ()Loads the data passed in from | System.prototype.loadSync = function () {
if (this.env) {
this.loadEnv();
}
if (this.argv) {
this.loadArgv();
}
if (this.overrides) {
this.loadOverrides();
}
return this.store;
}; |
function loadOverrides ()Loads any overrides set on this instance into
the underlying managed | System.prototype.loadOverrides = function () {
if (!this.overrides) {
return;
}
var self = this,
keys = Object.keys(this.overrides);
keys.forEach(function (key) {
self.set(key, self.overrides[key]);
});
return this.store;
}; |
function loadArgv ()Loads the data passed in from the command-line arguments into this instance. | System.prototype.loadArgv = function () {
var self = this,
argv;
if (typeof this.argv === 'object') {
argv = require('optimist').options(this.argv).argv;
}
else if (this.argv) {
argv = require('optimist').argv;
}
if (!argv) {
return;
}
Object.keys(argv).forEach(function (key) {
self.set(key, argv[key]);
});
return this.store;
}; |
function loadEnv ()Loads the data passed in from | System.prototype.loadEnv = function () {
var self = this;
if (!this.env) {
return;
}
Object.keys(process.env).filter(function (key) {
return !self.env.length || self.env.indexOf(key) !== -1;
}).forEach(function (key) {
self.set(key, process.env[key]);
});
return this.store;
};
|