51 lines
No EOL
1.8 KiB
JavaScript
51 lines
No EOL
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.PromiseProvider = void 0;
|
|
const error_1 = require("./error");
|
|
/** @internal */
|
|
const kPromise = Symbol('promise');
|
|
const store = {
|
|
[kPromise]: null
|
|
};
|
|
/**
|
|
* Global promise store allowing user-provided promises
|
|
* @deprecated Setting a custom promise library is deprecated the next major version will use the global Promise constructor only.
|
|
* @public
|
|
*/
|
|
class PromiseProvider {
|
|
/**
|
|
* Validates the passed in promise library
|
|
* @deprecated Setting a custom promise library is deprecated the next major version will use the global Promise constructor only.
|
|
*/
|
|
static validate(lib) {
|
|
if (typeof lib !== 'function')
|
|
throw new error_1.MongoInvalidArgumentError(`Promise must be a function, got ${lib}`);
|
|
return !!lib;
|
|
}
|
|
/**
|
|
* Sets the promise library
|
|
* @deprecated Setting a custom promise library is deprecated the next major version will use the global Promise constructor only.
|
|
*/
|
|
static set(lib) {
|
|
// eslint-disable-next-line no-restricted-syntax
|
|
if (lib === null) {
|
|
// Check explicitly against null since `.set()` (no args) should fall through to validate
|
|
store[kPromise] = null;
|
|
return;
|
|
}
|
|
if (!PromiseProvider.validate(lib)) {
|
|
// validate
|
|
return;
|
|
}
|
|
store[kPromise] = lib;
|
|
}
|
|
/**
|
|
* Get the stored promise library, or resolves passed in
|
|
* @deprecated Setting a custom promise library is deprecated the next major version will use the global Promise constructor only.
|
|
*/
|
|
static get() {
|
|
return store[kPromise];
|
|
}
|
|
}
|
|
exports.PromiseProvider = PromiseProvider;
|
|
//# sourceMappingURL=promise_provider.js.map
|