| 12345678910111213141516171819202122232425262728293031323334353637 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ValidateCollectionOperation = void 0;
- const responses_1 = require("../cmap/wire_protocol/responses");
- const error_1 = require("../error");
- const command_1 = require("./command");
- /** @internal */
- class ValidateCollectionOperation extends command_1.CommandOperation {
- constructor(admin, collectionName, options) {
- super(admin.s.db, options);
- this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
- this.options = options;
- this.collectionName = collectionName;
- }
- get commandName() {
- return 'validate';
- }
- buildCommandDocument(_connection, _session) {
- // Decorate command with extra options
- return {
- validate: this.collectionName,
- ...Object.fromEntries(Object.entries(this.options).filter(entry => entry[0] !== 'session'))
- };
- }
- handleOk(response) {
- const result = super.handleOk(response);
- if (result.result != null && typeof result.result !== 'string')
- throw new error_1.MongoUnexpectedServerResponseError('Error with validation data');
- if (result.result != null && result.result.match(/exception|corrupt/) != null)
- throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${this.collectionName}`);
- if (result.valid != null && !result.valid)
- throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${this.collectionName}`);
- return response;
- }
- }
- exports.ValidateCollectionOperation = ValidateCollectionOperation;
- //# sourceMappingURL=validate_collection.js.map
|