aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@vitest/utils/dist/timers.js
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/@vitest/utils/dist/timers.js')
-rw-r--r--vanilla/node_modules/@vitest/utils/dist/timers.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/vanilla/node_modules/@vitest/utils/dist/timers.js b/vanilla/node_modules/@vitest/utils/dist/timers.js
new file mode 100644
index 0000000..29229e5
--- /dev/null
+++ b/vanilla/node_modules/@vitest/utils/dist/timers.js
@@ -0,0 +1,49 @@
+const SAFE_TIMERS_SYMBOL = Symbol("vitest:SAFE_TIMERS");
+function getSafeTimers() {
+ const { setTimeout: safeSetTimeout, setInterval: safeSetInterval, clearInterval: safeClearInterval, clearTimeout: safeClearTimeout, setImmediate: safeSetImmediate, clearImmediate: safeClearImmediate, queueMicrotask: safeQueueMicrotask } = globalThis[SAFE_TIMERS_SYMBOL] || globalThis;
+ const { nextTick: safeNextTick } = globalThis[SAFE_TIMERS_SYMBOL] || globalThis.process || {};
+ return {
+ nextTick: safeNextTick,
+ setTimeout: safeSetTimeout,
+ setInterval: safeSetInterval,
+ clearInterval: safeClearInterval,
+ clearTimeout: safeClearTimeout,
+ setImmediate: safeSetImmediate,
+ clearImmediate: safeClearImmediate,
+ queueMicrotask: safeQueueMicrotask
+ };
+}
+function setSafeTimers() {
+ const { setTimeout: safeSetTimeout, setInterval: safeSetInterval, clearInterval: safeClearInterval, clearTimeout: safeClearTimeout, setImmediate: safeSetImmediate, clearImmediate: safeClearImmediate, queueMicrotask: safeQueueMicrotask } = globalThis;
+ const { nextTick: safeNextTick } = globalThis.process || {};
+ const timers = {
+ nextTick: safeNextTick,
+ setTimeout: safeSetTimeout,
+ setInterval: safeSetInterval,
+ clearInterval: safeClearInterval,
+ clearTimeout: safeClearTimeout,
+ setImmediate: safeSetImmediate,
+ clearImmediate: safeClearImmediate,
+ queueMicrotask: safeQueueMicrotask
+ };
+ globalThis[SAFE_TIMERS_SYMBOL] = timers;
+}
+/**
+* Returns a promise that resolves after the specified duration.
+*
+* @param timeout - Delay in milliseconds
+* @param scheduler - Timer function to use, defaults to `setTimeout`. Useful for mocked timers.
+*
+* @example
+* await delay(100)
+*
+* @example
+* // With mocked timers
+* const { setTimeout } = getSafeTimers()
+* await delay(100, setTimeout)
+*/
+function delay(timeout, scheduler = setTimeout) {
+ return new Promise((resolve) => scheduler(resolve, timeout));
+}
+
+export { delay, getSafeTimers, setSafeTimers };