mongo-milestone
Version:
*A life-saving little tool to work around the lack of ACID Transactions in MongoDB*
63 lines (43 loc) • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.registeredMethods = exports.wrapMethod = exports.spawn = exports.run = exports.bulkRegister = exports.unregister = exports.register = exports.isReady = exports.Action = exports.Milestone = exports.configure = undefined;
var _q = require('q');
var _q2 = _interopRequireDefault(_q);
var _moment = require('moment');
var _moment2 = _interopRequireDefault(_moment);
var _Milestone = require('./domain/Milestone');
var _Milestone2 = _interopRequireDefault(_Milestone);
var _Action = require('./domain/Action');
var _Action2 = _interopRequireDefault(_Action);
var _dispatcher = require('./dispatcher');
var _config = require('./config');
var _db = require('./db');
var _robot = require('./robot');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const deferred = _q2.default.defer();
const isReady = deferred.promise;
const configure = (mongoConnectionString, retryTimespan, jobsCollectionName) => {
(0, _config.setup)(mongoConnectionString, retryTimespan, jobsCollectionName);
_q2.default.spawn(function* () {
try {
const result = yield (0, _db.connect)();
deferred.resolve({ register: _dispatcher.register, unregister: _dispatcher.unregister, bulkRegister: _dispatcher.registerMethods, run: _robot.run, spawn: _robot.spawn, wrapMethod: _dispatcher.wrapMethod });
} catch (e) {
deferred.reject(e);
}
});
return isReady;
};
exports.configure = configure;
exports.Milestone = _Milestone2.default;
exports.Action = _Action2.default;
exports.isReady = isReady;
exports.register = _dispatcher.register;
exports.unregister = _dispatcher.unregister;
exports.bulkRegister = _dispatcher.registerMethods;
exports.run = _robot.run;
exports.spawn = _robot.spawn;
exports.wrapMethod = _dispatcher.wrapMethod;
exports.registeredMethods = _dispatcher.registeredMethods;