base-repository
Version:
[](https://travis-ci.org/joehua87/base-repository)
136 lines (108 loc) • 3.54 kB
JavaScript
;
var _mongodb = require('mongodb');
var _validator = require('validator');
var _validator2 = _interopRequireDefault(_validator);
var _co = require('co');
var _co2 = _interopRequireDefault(_co);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getDraftDbNames() {
return new Promise(function (resolve, reject) {
var connection = new _mongodb.Db('test', new _mongodb.Server('localhost', 27017));
connection.open(function (err, db) {
if (err) reject(err);
var adminDb = db.admin();
adminDb.listDatabases(function (childErr, dbs) {
if (childErr) reject(childErr);
var draftDbs = dbs.databases.filter(function (_ref) {
var name = _ref.name;
return _validator2.default.isUUID(name);
}).map(function (_ref2) {
var name = _ref2.name;
return name;
});
db.close();
connection.close();
resolve(draftDbs);
});
});
});
}
function dropDatabase(name) {
return new Promise(function (resolve, reject) {
var connection = new _mongodb.Db(name, new _mongodb.Server('localhost', 27017));
connection.open(function (err, db) {
if (err) reject(err);
db.dropDatabase(function (childErr, result) {
if (childErr) reject(childErr);
db.close();
connection.close();
resolve(result);
});
});
});
}
(0, _co2.default)(regeneratorRuntime.mark(function _callee() {
var names, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, name, result;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return getDraftDbNames();
case 2:
names = _context.sent;
console.log('There has ' + names.length + ' draft database');
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context.prev = 7;
_iterator = names[Symbol.iterator]();
case 9:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context.next = 18;
break;
}
name = _step.value;
_context.next = 13;
return dropDatabase(name);
case 13:
result = _context.sent;
console.log('Remove ' + name + ' complete with result ' + result);
case 15:
_iteratorNormalCompletion = true;
_context.next = 9;
break;
case 18:
_context.next = 24;
break;
case 20:
_context.prev = 20;
_context.t0 = _context['catch'](7);
_didIteratorError = true;
_iteratorError = _context.t0;
case 24:
_context.prev = 24;
_context.prev = 25;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 27:
_context.prev = 27;
if (!_didIteratorError) {
_context.next = 30;
break;
}
throw _iteratorError;
case 30:
return _context.finish(27);
case 31:
return _context.finish(24);
case 32:
case 'end':
return _context.stop();
}
}
}, _callee, this, [[7, 20, 24, 32], [25,, 27, 31]]);
})).catch(function (err) {
console.log(err);
});