[api fix] Dont eagerly create config files in .load() and .loadSync()

This commit is contained in:
indexzero 2011-11-23 16:40:18 -05:00
parent 021850a14d
commit bbcb2712f1

View file

@ -81,49 +81,38 @@ File.prototype.load = function (callback) {
path.exists(self.file, function (exists) { path.exists(self.file, function (exists) {
if (!exists) { if (!exists) {
// return callback(null, {});
// If the path we are attempting to load doesn't exist, create it
//
self.save({}, function (err) {
self.store = {};
return callback(err, self.store);
});
} }
else {
//
// Else, the path exists, read it from disk
//
fs.readFile(self.file, function (err, data) {
if (err) {
return callback(err);
}
try { //
self.store = self.format.parse(data.toString()); // Else, the path exists, read it from disk
} //
catch (ex) { fs.readFile(self.file, function (err, data) {
return callback(new Error("Error parsing your JSON configuration file.")); if (err) {
} return callback(err);
}
callback(null, self.store); try {
}); self.store = self.format.parse(data.toString());
} }
catch (ex) {
return callback(new Error("Error parsing your JSON configuration file."));
}
callback(null, self.store);
});
}); });
}; };
// //
// ### function load (callback) // ### function loadSync (callback)
// #### @callback {function} **Optional** Continuation to respond to when complete. // Attempts to load the data stored in `this.file` synchronously
// Attempts to load the data stored in `this.file` synchronously and responds appropriately. // and responds appropriately.
// //
File.prototype.loadSync = function () { File.prototype.loadSync = function () {
var data, self = this; var data, self = this;
if (!path.existsSync(self.file)) { if (!path.existsSync(self.file)) {
//
// If the path we are attempting to load doesn't exist, create it
//
self.saveSync({});
self.store = {}; self.store = {};
data = {}; data = {};
} }