Server IP : 162.213.251.212 / Your IP : 3.138.36.125 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/home/allssztx/needapair.com/node_modules/mongodb/src/ |
Upload File : |
import { clearTimeout, setTimeout } from 'timers'; import { MongoInvalidArgumentError } from './error'; import { noop } from './utils'; /** @internal */ export class TimeoutError extends Error { override get name(): 'TimeoutError' { return 'TimeoutError'; } constructor(message: string, options?: { cause?: Error }) { super(message, options); } static is(error: unknown): error is TimeoutError { return ( error != null && typeof error === 'object' && 'name' in error && error.name === 'TimeoutError' ); } } type Executor = ConstructorParameters<typeof Promise<never>>[0]; type Reject = Parameters<ConstructorParameters<typeof Promise<never>>[0]>[1]; /** * @internal * This class is an abstraction over timeouts * The Timeout class can only be in the pending or rejected states. It is guaranteed not to resolve * if interacted with exclusively through its public API * */ export class Timeout extends Promise<never> { get [Symbol.toStringTag](): 'MongoDBTimeout' { return 'MongoDBTimeout'; } private id?: NodeJS.Timeout; public readonly start: number; public ended: number | null = null; public duration: number; public timedOut = false; /** Create a new timeout that expires in `duration` ms */ private constructor(executor: Executor = () => null, duration: number, unref = false) { let reject!: Reject; if (duration < 0) { throw new MongoInvalidArgumentError('Cannot create a Timeout with a negative duration'); } super((_, promiseReject) => { reject = promiseReject; executor(noop, promiseReject); }); this.duration = duration; this.start = Math.trunc(performance.now()); if (this.duration > 0) { this.id = setTimeout(() => { this.ended = Math.trunc(performance.now()); this.timedOut = true; reject(new TimeoutError(`Expired after ${duration}ms`)); }, this.duration); if (typeof this.id.unref === 'function' && unref) { // Ensure we do not keep the Node.js event loop running this.id.unref(); } } } /** * Clears the underlying timeout. This method is idempotent */ clear(): void { clearTimeout(this.id); this.id = undefined; } public static expires(durationMS: number, unref?: boolean): Timeout { return new Timeout(undefined, durationMS, unref); } static is(timeout: unknown): timeout is Timeout { return ( typeof timeout === 'object' && timeout != null && Symbol.toStringTag in timeout && timeout[Symbol.toStringTag] === 'MongoDBTimeout' && 'then' in timeout && typeof timeout.then === 'function' ); } }