12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ReadConcern = exports.ReadConcernLevel = void 0;
- /** @public */
- exports.ReadConcernLevel = Object.freeze({
- local: 'local',
- majority: 'majority',
- linearizable: 'linearizable',
- available: 'available',
- snapshot: 'snapshot'
- });
- /**
- * The MongoDB ReadConcern, which allows for control of the consistency and isolation properties
- * of the data read from replica sets and replica set shards.
- * @public
- *
- * @see https://docs.mongodb.com/manual/reference/read-concern/index.html
- */
- class ReadConcern {
- /** Constructs a ReadConcern from the read concern level.*/
- constructor(level) {
- var _a;
- /**
- * A spec test exists that allows level to be any string.
- * "invalid readConcern with out stage"
- * @see ./test/spec/crud/v2/aggregate-out-readConcern.json
- * @see https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst#unknown-levels-and-additional-options-for-string-based-readconcerns
- */
- this.level = (_a = exports.ReadConcernLevel[level]) !== null && _a !== void 0 ? _a : level;
- }
- /**
- * Construct a ReadConcern given an options object.
- *
- * @param options - The options object from which to extract the write concern.
- */
- static fromOptions(options) {
- if (options == null) {
- return;
- }
- if (options.readConcern) {
- const { readConcern } = options;
- if (readConcern instanceof ReadConcern) {
- return readConcern;
- }
- else if (typeof readConcern === 'string') {
- return new ReadConcern(readConcern);
- }
- else if ('level' in readConcern && readConcern.level) {
- return new ReadConcern(readConcern.level);
- }
- }
- if (options.level) {
- return new ReadConcern(options.level);
- }
- }
- static get MAJORITY() {
- return exports.ReadConcernLevel.majority;
- }
- static get AVAILABLE() {
- return exports.ReadConcernLevel.available;
- }
- static get LINEARIZABLE() {
- return exports.ReadConcernLevel.linearizable;
- }
- static get SNAPSHOT() {
- return exports.ReadConcernLevel.snapshot;
- }
- toJSON() {
- return { level: this.level };
- }
- }
- exports.ReadConcern = ReadConcern;
- //# sourceMappingURL=read_concern.js.map
|