mongo works
This commit is contained in:
parent
ae6ccd559f
commit
125107da50
937 changed files with 205033 additions and 2 deletions
58
parts/3/followAlong/node_modules/mongodb/lib/resource_management.js
generated
vendored
Normal file
58
parts/3/followAlong/node_modules/mongodb/lib/resource_management.js
generated
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.configureResourceManagement = configureResourceManagement;
|
||||
exports.configureExplicitResourceManagement = configureExplicitResourceManagement;
|
||||
/** @internal */
|
||||
function configureResourceManagement(target) {
|
||||
Symbol.asyncDispose &&
|
||||
Object.defineProperty(target, Symbol.asyncDispose, {
|
||||
value: async function asyncDispose() {
|
||||
await this.asyncDispose();
|
||||
},
|
||||
enumerable: false,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @beta
|
||||
* @experimental
|
||||
*
|
||||
* Attaches `Symbol.asyncDispose` methods to the MongoClient, Cursors, sessions and change streams
|
||||
* if Symbol.asyncDispose is defined.
|
||||
*
|
||||
* It's usually not necessary to call this method - the driver attempts to attach these methods
|
||||
* itself when its loaded. However, sometimes the driver may be loaded before `Symbol.asyncDispose`
|
||||
* is defined, in which case it is necessary to call this method directly. This can happen if the
|
||||
* application is polyfilling `Symbol.asyncDispose`.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```typescript
|
||||
* import { configureExplicitResourceManagement, MongoClient } from 'mongodb/lib/beta';
|
||||
*
|
||||
* Symbol.asyncDispose ??= Symbol('dispose');
|
||||
* load();
|
||||
*
|
||||
* await using client = new MongoClient(...);
|
||||
* ```
|
||||
*/
|
||||
function configureExplicitResourceManagement() {
|
||||
// We must import lazily here, because there's a circular dependency between the resource management
|
||||
// file and each resources' file. We could move `configureResourceManagement` to a separate
|
||||
// function, but keeping all resource-management related code together seemed preferable and I chose
|
||||
// lazy requiring of resources instead.
|
||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||
const { MongoClient } = require('./mongo_client');
|
||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||
const { ClientSession } = require('./sessions');
|
||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||
const { AbstractCursor } = require('./cursor/abstract_cursor');
|
||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||
const { ChangeStream } = require('./change_stream');
|
||||
configureResourceManagement(MongoClient.prototype);
|
||||
configureResourceManagement(ClientSession.prototype);
|
||||
configureResourceManagement(AbstractCursor.prototype);
|
||||
configureResourceManagement(ChangeStream.prototype);
|
||||
}
|
||||
//# sourceMappingURL=resource_management.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue