You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							46 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							46 lines
						
					
					
						
							1.8 KiB
						
					
					
				| "use strict";
 | |
| Object.defineProperty(exports, "__esModule", { value: true });
 | |
| exports.RenameOperation = void 0;
 | |
| const collection_1 = require("../collection");
 | |
| const error_1 = require("../error");
 | |
| const utils_1 = require("../utils");
 | |
| const operation_1 = require("./operation");
 | |
| const run_command_1 = require("./run_command");
 | |
| /** @internal */
 | |
| class RenameOperation extends run_command_1.RunAdminCommandOperation {
 | |
|     constructor(collection, newName, options) {
 | |
|         // Check the collection name
 | |
|         (0, utils_1.checkCollectionName)(newName);
 | |
|         // Build the command
 | |
|         const renameCollection = collection.namespace;
 | |
|         const toCollection = collection.s.namespace.withCollection(newName).toString();
 | |
|         const dropTarget = typeof options.dropTarget === 'boolean' ? options.dropTarget : false;
 | |
|         const cmd = { renameCollection: renameCollection, to: toCollection, dropTarget: dropTarget };
 | |
|         super(collection, cmd, options);
 | |
|         this.options = options;
 | |
|         this.collection = collection;
 | |
|         this.newName = newName;
 | |
|     }
 | |
|     execute(server, session, callback) {
 | |
|         const coll = this.collection;
 | |
|         super.execute(server, session, (err, doc) => {
 | |
|             if (err)
 | |
|                 return callback(err);
 | |
|             // We have an error
 | |
|             if (doc?.errmsg) {
 | |
|                 return callback(new error_1.MongoServerError(doc));
 | |
|             }
 | |
|             let newColl;
 | |
|             try {
 | |
|                 newColl = new collection_1.Collection(coll.s.db, this.newName, coll.s.options);
 | |
|             }
 | |
|             catch (err) {
 | |
|                 return callback(err);
 | |
|             }
 | |
|             return callback(undefined, newColl);
 | |
|         });
 | |
|     }
 | |
| }
 | |
| exports.RenameOperation = RenameOperation;
 | |
| (0, operation_1.defineAspects)(RenameOperation, [operation_1.Aspect.WRITE_OPERATION]);
 | |
| //# sourceMappingURL=rename.js.map
 |