|
1 | | -import byline = require('byline'); |
2 | | -import { RequestOptions } from 'https'; |
| 1 | +import { createInterface } from 'node:readline'; |
3 | 2 | import fetch from 'node-fetch'; |
4 | 3 | import { AbortSignal } from 'node-fetch/externals'; |
5 | 4 | import { URL } from 'url'; |
@@ -52,26 +51,26 @@ export class Watch { |
52 | 51 | done(err); |
53 | 52 | } |
54 | 53 | }; |
55 | | - const stream = byline.createStream(); |
56 | | - stream.on('error', doneCallOnce); |
57 | | - stream.on('close', () => doneCallOnce(null)); |
58 | | - stream.on('finish', () => doneCallOnce(null)); |
59 | | - stream.on('data', (line) => { |
60 | | - try { |
61 | | - const data = JSON.parse(line.toString()); |
62 | | - callback(data.type, data.object, data); |
63 | | - } catch (ignore) { |
64 | | - // ignore parse errors |
65 | | - } |
66 | | - }); |
67 | 54 |
|
68 | 55 | await fetch(watchURL, requestInit) |
69 | 56 | .then((response) => { |
70 | 57 | if (response.status === 200) { |
71 | 58 | response.body.on('error', doneCallOnce); |
72 | 59 | response.body.on('close', () => doneCallOnce(null)); |
73 | 60 | response.body.on('finish', () => doneCallOnce(null)); |
74 | | - response.body.pipe(stream); |
| 61 | + |
| 62 | + const lines = createInterface(response.body); |
| 63 | + lines.on('error', doneCallOnce); |
| 64 | + lines.on('close', () => doneCallOnce(null)); |
| 65 | + lines.on('finish', () => doneCallOnce(null)); |
| 66 | + lines.on('line', (line) => { |
| 67 | + try { |
| 68 | + const data = JSON.parse(line.toString()); |
| 69 | + callback(data.type, data.object, data); |
| 70 | + } catch (ignore) { |
| 71 | + // ignore parse errors |
| 72 | + } |
| 73 | + }); |
75 | 74 | } else { |
76 | 75 | const error = new Error(response.statusText) as Error & { |
77 | 76 | statusCode: number | undefined; |
|
0 commit comments