|
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