UNPKG

base-repository

Version:

[![Build Status](https://travis-ci.org/joehua87/base-repository.svg?branch=master)](https://travis-ci.org/joehua87/base-repository)

136 lines (108 loc) 3.54 kB
'use strict'; 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); });