UNPKG

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
'use strict'; 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; };