dld_backend/node_modules/mongodb/lib/operations/validate_collection.js
2025-10-30 12:13:02 +05:30

37 lines
1.6 KiB
JavaScript

"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