mongo-milestone
Version:
*A life-saving little tool to work around the lack of ACID Transactions in MongoDB*
55 lines (37 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.close = exports.connect = exports.milestones = undefined;
var _q = require('q');
var _q2 = _interopRequireDefault(_q);
var _mongodb = require('mongodb');
var _config = require('./config');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let db;
let milestones = null;
exports.milestones = milestones;
const connect = exports.connect = () => {
var deferred = _q2.default.defer();
_q2.default.spawn(function* () {
try {
if (db) {
return deferred.resolve(db);
}
db = yield _mongodb.MongoClient.connect((0, _config.getConfig)(_config.MONGO_CONNECTION_STRING));
exports.milestones = milestones = db.collection((0, _config.getConfig)(_config.JOBS_COLLECTION_NAME));
deferred.resolve(milestones);
} catch (e) {
deferred.reject(e);
}
});
return deferred.promise;
};
const close = exports.close = () => {
if (!db) {
return;
}
db.close();
db = undefined;
exports.milestones = milestones = null;
};