diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts')
| -rw-r--r-- | node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts b/node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts new file mode 100644 index 0000000..205e016 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts @@ -0,0 +1,31 @@ +import type { TimerHandle } from './timerHandle'; +type SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle; +type ClearTimeoutFunction = (handle: TimerHandle) => void; + +interface TimeoutProvider { + setTimeout: SetTimeoutFunction; + clearTimeout: ClearTimeoutFunction; + delegate: + | { + setTimeout: SetTimeoutFunction; + clearTimeout: ClearTimeoutFunction; + } + | undefined; +} + +export const timeoutProvider: TimeoutProvider = { + // When accessing the delegate, use the variable rather than `this` so that + // the functions can be called without being bound to the provider. + setTimeout(handler: () => void, timeout?: number, ...args) { + const { delegate } = timeoutProvider; + if (delegate?.setTimeout) { + return delegate.setTimeout(handler, timeout, ...args); + } + return setTimeout(handler, timeout, ...args); + }, + clearTimeout(handle) { + const { delegate } = timeoutProvider; + return (delegate?.clearTimeout || clearTimeout)(handle as any); + }, + delegate: undefined, +}; |
