| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _Storage = _interopRequireDefault(require("./Storage"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- /**
- * @class MongoDBStorage
- */
- class MongoDBStorage extends _Storage.default {
- /**
- * Constructs MongoDB collection storage.
- *
- * @param {Object} [options]
- * Required either connection and collectionName OR collection
- * @param {String} [options.connection] - a connection to target database established with MongoDB Driver
- * @param {String} [options.collectionName] - name of migration collection in MongoDB
- * @param {String} [options.collection] - reference to a MongoDB Driver collection
- */
- constructor({
- connection,
- collectionName,
- collection
- }) {
- super();
- this.connection = connection;
- this.collection = collection;
- this.collectionName = collectionName || 'migrations';
- if (!this.connection && !this.collection) {
- throw new Error('MongoDB Connection or Collection required');
- }
- if (!this.collection) {
- this.collection = this.connection.collection(this.collectionName);
- }
- }
- /**
- * Logs migration to be considered as executed.
- *
- * @param {String} migrationName - Name of the migration to be logged.
- * @returns {Promise}
- */
- logMigration(migrationName) {
- return this.collection.insertOne({
- migrationName
- });
- }
- /**
- * Unlogs migration to be considered as pending.
- *
- * @param {String} migrationName - Name of the migration to be unlogged.
- * @returns {Promise}
- */
- unlogMigration(migrationName) {
- return this.collection.removeOne({
- migrationName
- });
- }
- /**
- * Gets list of executed migrations.
- *
- * @returns {Promise.<String[]>}
- */
- executed() {
- return this.collection.find({}).sort({
- migrationName: 1
- }).toArray().then(records => records.map(r => r.migrationName));
- }
- }
- exports.default = MongoDBStorage;
|