You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
1 year ago
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.StreamDescription = void 0;
|
||
|
const common_1 = require("../sdam/common");
|
||
|
const server_description_1 = require("../sdam/server_description");
|
||
|
const RESPONSE_FIELDS = [
|
||
|
'minWireVersion',
|
||
|
'maxWireVersion',
|
||
|
'maxBsonObjectSize',
|
||
|
'maxMessageSizeBytes',
|
||
|
'maxWriteBatchSize',
|
||
|
'logicalSessionTimeoutMinutes'
|
||
|
];
|
||
|
/** @public */
|
||
|
class StreamDescription {
|
||
|
constructor(address, options) {
|
||
|
this.address = address;
|
||
|
this.type = common_1.ServerType.Unknown;
|
||
|
this.minWireVersion = undefined;
|
||
|
this.maxWireVersion = undefined;
|
||
|
this.maxBsonObjectSize = 16777216;
|
||
|
this.maxMessageSizeBytes = 48000000;
|
||
|
this.maxWriteBatchSize = 100000;
|
||
|
this.logicalSessionTimeoutMinutes = options?.logicalSessionTimeoutMinutes;
|
||
|
this.loadBalanced = !!options?.loadBalanced;
|
||
|
this.compressors =
|
||
|
options && options.compressors && Array.isArray(options.compressors)
|
||
|
? options.compressors
|
||
|
: [];
|
||
|
}
|
||
|
receiveResponse(response) {
|
||
|
if (response == null) {
|
||
|
return;
|
||
|
}
|
||
|
this.type = (0, server_description_1.parseServerType)(response);
|
||
|
for (const field of RESPONSE_FIELDS) {
|
||
|
if (response[field] != null) {
|
||
|
this[field] = response[field];
|
||
|
}
|
||
|
// testing case
|
||
|
if ('__nodejs_mock_server__' in response) {
|
||
|
this.__nodejs_mock_server__ = response['__nodejs_mock_server__'];
|
||
|
}
|
||
|
}
|
||
|
if (response.compression) {
|
||
|
this.compressor = this.compressors.filter(c => response.compression?.includes(c))[0];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
exports.StreamDescription = StreamDescription;
|
||
|
//# sourceMappingURL=stream_description.js.map
|