diff --git a/package.json b/package.json index 042f76ca35..037e42b7c8 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "@types/tar": "^6.1.1", "@types/underscore": "^1.8.9", "@types/ws": "^8.5.4", - "byline": "^5.0.0", "form-data": "^4.0.0", "isomorphic-ws": "^5.0.0", "js-yaml": "^4.1.0", @@ -78,7 +77,6 @@ "ws": "^8.13.0" }, "devDependencies": { - "@types/byline": "^4.2.31", "@types/chai": "^4.3.0", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^10.0.1", diff --git a/src/watch.ts b/src/watch.ts index 5b1837e3d6..dc95564ca9 100644 --- a/src/watch.ts +++ b/src/watch.ts @@ -1,5 +1,4 @@ -import byline = require('byline'); -import { RequestOptions } from 'https'; +import { createInterface } from 'node:readline'; import fetch from 'node-fetch'; import { AbortSignal } from 'node-fetch/externals'; import { URL } from 'url'; @@ -52,18 +51,6 @@ export class Watch { done(err); } }; - const stream = byline.createStream(); - stream.on('error', doneCallOnce); - stream.on('close', () => doneCallOnce(null)); - stream.on('finish', () => doneCallOnce(null)); - stream.on('data', (line) => { - try { - const data = JSON.parse(line.toString()); - callback(data.type, data.object, data); - } catch (ignore) { - // ignore parse errors - } - }); await fetch(watchURL, requestInit) .then((response) => { @@ -71,7 +58,19 @@ export class Watch { response.body.on('error', doneCallOnce); response.body.on('close', () => doneCallOnce(null)); response.body.on('finish', () => doneCallOnce(null)); - response.body.pipe(stream); + + const lines = createInterface(response.body); + lines.on('error', doneCallOnce); + lines.on('close', () => doneCallOnce(null)); + lines.on('finish', () => doneCallOnce(null)); + lines.on('line', (line) => { + try { + const data = JSON.parse(line.toString()); + callback(data.type, data.object, data); + } catch (ignore) { + // ignore parse errors + } + }); } else { const error = new Error(response.statusText) as Error & { statusCode: number | undefined;