From 6ae11a009eff6a8ece827f85d30ee248d8d28a92 Mon Sep 17 00:00:00 2001 From: Khafra Date: Mon, 29 Jan 2024 15:46:59 -0500 Subject: [PATCH 1/2] remove timers/promises import Fixes https://github.com/nodejs/undici/issues/2664 --- lib/eventsource/eventsource.js | 4 ++-- lib/eventsource/util.js | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/eventsource/eventsource.js b/lib/eventsource/eventsource.js index d940f236f93..ee61cfde880 100644 --- a/lib/eventsource/eventsource.js +++ b/lib/eventsource/eventsource.js @@ -1,6 +1,5 @@ 'use strict' -const { setTimeout } = require('node:timers/promises') const { pipeline } = require('node:stream') const { fetching } = require('../fetch') const { makeRequest } = require('../fetch/request') @@ -11,6 +10,7 @@ const { parseMIMEType } = require('../fetch/dataURL') const { MessageEvent } = require('../websocket/events') const { isNetworkError } = require('../fetch/response') const { getGlobalDispatcher } = require('../global') +const { delay } = require('./util') let experimentalWarned = false @@ -344,7 +344,7 @@ class EventSource extends EventTarget { this.dispatchEvent(new Event('error')) // 2. Wait a delay equal to the reconnection time of the event source. - await setTimeout(this.#settings.reconnectionTime, { ref: false }) + await delay(this.#settings.reconnectionTime) // 5. Queue a task to run the following steps: diff --git a/lib/eventsource/util.js b/lib/eventsource/util.js index a87cc834eca..128e18ac2e8 100644 --- a/lib/eventsource/util.js +++ b/lib/eventsource/util.js @@ -23,7 +23,15 @@ function isASCIINumber (value) { return true } +// https://github.com/nodejs/undici/issues/2664 +function delay (delay) { + return new Promise((resolve) => { + setTimeout(resolve, delay).unref() + }) +} + module.exports = { isValidLastEventId, - isASCIINumber + isASCIINumber, + delay } From 6d32837a45a2ce0c00483ca941ec689a70cc2254 Mon Sep 17 00:00:00 2001 From: Khafra Date: Mon, 29 Jan 2024 15:48:56 -0500 Subject: [PATCH 2/2] fixup --- lib/eventsource/util.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/eventsource/util.js b/lib/eventsource/util.js index 128e18ac2e8..727d8660e5f 100644 --- a/lib/eventsource/util.js +++ b/lib/eventsource/util.js @@ -24,9 +24,9 @@ function isASCIINumber (value) { } // https://github.com/nodejs/undici/issues/2664 -function delay (delay) { +function delay (ms) { return new Promise((resolve) => { - setTimeout(resolve, delay).unref() + setTimeout(resolve, ms).unref() }) }