From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- .../src/internal/scheduler/intervalProvider.ts | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 node_modules/rxjs/src/internal/scheduler/intervalProvider.ts (limited to 'node_modules/rxjs/src/internal/scheduler/intervalProvider.ts') diff --git a/node_modules/rxjs/src/internal/scheduler/intervalProvider.ts b/node_modules/rxjs/src/internal/scheduler/intervalProvider.ts new file mode 100644 index 0000000..032317d --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/intervalProvider.ts @@ -0,0 +1,31 @@ +import type { TimerHandle } from './timerHandle'; +type SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle; +type ClearIntervalFunction = (handle: TimerHandle) => void; + +interface IntervalProvider { + setInterval: SetIntervalFunction; + clearInterval: ClearIntervalFunction; + delegate: + | { + setInterval: SetIntervalFunction; + clearInterval: ClearIntervalFunction; + } + | undefined; +} + +export const intervalProvider: IntervalProvider = { + // When accessing the delegate, use the variable rather than `this` so that + // the functions can be called without being bound to the provider. + setInterval(handler: () => void, timeout?: number, ...args) { + const { delegate } = intervalProvider; + if (delegate?.setInterval) { + return delegate.setInterval(handler, timeout, ...args); + } + return setInterval(handler, timeout, ...args); + }, + clearInterval(handle) { + const { delegate } = intervalProvider; + return (delegate?.clearInterval || clearInterval)(handle as any); + }, + delegate: undefined, +}; -- cgit v1.2.3