call back with errors instead of throwing within the Storage module

This commit is contained in:
ansuz 2020-03-24 13:31:03 -04:00
parent 1240f4a2a5
commit e128683ffb
7 changed files with 30 additions and 12 deletions

View File

@ -15,7 +15,8 @@ const init = function (config, cb) {
return void cb('E_INVALID_CONFIG'); return void cb('E_INVALID_CONFIG');
} }
Store.create(config, function (_store) { Store.create(config, function (err, _store) {
if (err) { return void cb(err); }
store = _store; store = _store;
cb(); cb();
}); });

View File

@ -215,12 +215,14 @@ module.exports.create = function (config, cb) {
// create a pin store // create a pin store
Store.create({ Store.create({
filePath: pinPath, filePath: pinPath,
}, w(function (s) { }, w(function (err, s) {
if (err) { throw err; }
Env.pinStore = s; Env.pinStore = s;
})); }));
// create a channel store // create a channel store
Store.create(config, w(function (_store) { Store.create(config, w(function (err, _store) {
if (err) { throw err; }
config.store = _store; config.store = _store;
Env.msgStore = _store; // API used by rpc Env.msgStore = _store; // API used by rpc
Env.store = _store; // API used by historyKeeper Env.store = _store; // API used by historyKeeper

View File

@ -101,7 +101,10 @@ Logger.create = function (config, cb) {
Store.create({ Store.create({
filePath: config.logPath, filePath: config.logPath,
}, function (store) { }, function (err, store) {
if (err) {
throw err;
}
ctx.store = store; ctx.store = store;
var logger = createMethods(ctx); var logger = createMethods(ctx);
logger.shutdown = function () { logger.shutdown = function () {

View File

@ -951,7 +951,9 @@ var trimChannel = function (env, channelName, hash, _cb) {
}); });
}; };
module.exports.create = function (conf, cb) { module.exports.create = function (conf, _cb) {
var cb = Util.once(Util.mkAsync(_cb));
var env = { var env = {
root: conf.filePath || './datastore', root: conf.filePath || './datastore',
archiveRoot: conf.archivePath || './data/archive', archiveRoot: conf.archivePath || './data/archive',
@ -984,18 +986,19 @@ module.exports.create = function (conf, cb) {
// make sure the store's directory exists // make sure the store's directory exists
Fse.mkdirp(env.root, PERMISSIVE, w(function (err) { Fse.mkdirp(env.root, PERMISSIVE, w(function (err) {
if (err && err.code !== 'EEXIST') { if (err && err.code !== 'EEXIST') {
throw err; // XXX w.abort();
return void cb(err);
} }
})); }));
// make sure the cold storage directory exists // make sure the cold storage directory exists
Fse.mkdirp(env.archiveRoot, PERMISSIVE, w(function (err) { Fse.mkdirp(env.archiveRoot, PERMISSIVE, w(function (err) {
if (err && err.code !== 'EEXIST') { if (err && err.code !== 'EEXIST') {
throw err; // XXX w.abort();
return void cb(err);
} }
})); }));
}).nThen(function () { }).nThen(function () {
// XXX leave a place for an error cb(void 0, {
cb({
// OLDER METHODS // OLDER METHODS
// write a new message to a log // write a new message to a log
message: function (channelName, content, cb) { message: function (channelName, content, cb) {

View File

@ -8,7 +8,11 @@ var Log;
nThen(function (w) { nThen(function (w) {
// load the store which will be used for iterating over channels // load the store which will be used for iterating over channels
// and performing operations like archival and deletion // and performing operations like archival and deletion
Store.create(config, w(function (_) { Store.create(config, w(function (err, _) {
if (err) {
w.abort();
throw err;
}
store = _; store = _;
})); }));

View File

@ -34,7 +34,11 @@ var msSinceStart = function () {
nThen(function (w) { nThen(function (w) {
// load the store which will be used for iterating over channels // load the store which will be used for iterating over channels
// and performing operations like archival and deletion // and performing operations like archival and deletion
Store.create(config, w(function (_) { Store.create(config, w(function (err, _) {
if (err) {
w.abort();
throw err;
}
store = _; store = _;
})); // load the list of pinned files so you know which files })); // load the list of pinned files so you know which files
// should not be archived or deleted // should not be archived or deleted

View File

@ -8,7 +8,8 @@ var Log;
nThen(function (w) { nThen(function (w) {
// load the store which will be used for iterating over channels // load the store which will be used for iterating over channels
// and performing operations like archival and deletion // and performing operations like archival and deletion
Store.create(config, w(function (_) { Store.create(config, w(function (err, _) {
if (err) { throw err; }
store = _; store = _;
})); }));