mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
Object.defineProperty(exports, "__esModule", { value: true });
 | 
						|
exports.MongoDBStorage = void 0;
 | 
						|
function isMongoDBCollectionOptions(arg) {
 | 
						|
    return Boolean(arg.collection);
 | 
						|
}
 | 
						|
class MongoDBStorage {
 | 
						|
    constructor(options) {
 | 
						|
        var _a, _b;
 | 
						|
        if (!options || (!options.collection && !options.connection)) {
 | 
						|
            throw new Error('MongoDB Connection or Collection required');
 | 
						|
        }
 | 
						|
        this.collection = isMongoDBCollectionOptions(options)
 | 
						|
            ? options.collection
 | 
						|
            : options.connection.collection((_a = options.collectionName) !== null && _a !== void 0 ? _a : 'migrations');
 | 
						|
        this.connection = options.connection; // TODO remove this
 | 
						|
        this.collectionName = (_b = options.collectionName) !== null && _b !== void 0 ? _b : 'migrations'; // TODO remove this
 | 
						|
    }
 | 
						|
    async logMigration({ name: migrationName }) {
 | 
						|
        await this.collection.insertOne({ migrationName });
 | 
						|
    }
 | 
						|
    async unlogMigration({ name: migrationName }) {
 | 
						|
        await this.collection.deleteOne({ migrationName });
 | 
						|
    }
 | 
						|
    async executed() {
 | 
						|
        const records = await this.collection.find({}).sort({ migrationName: 1 }).toArray();
 | 
						|
        return records.map(r => r.migrationName);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.MongoDBStorage = MongoDBStorage;
 | 
						|
//# sourceMappingURL=mongodb.js.map
 |