import {createWriteStream} from 'node:fs'; import * as http from 'node:http'; import * as https from 'node:https'; import {URL, urlToHttpOptions} from 'node:url';
const request = httpRequest(url, 'GET', response => { if (response.statusCode !== 200) { const error = new Error(
`Download failed: server returned code ${response.statusCode}. URL: ${url}`,
); // consume response data to free up memory
response.resume();
reject(error); return;
} const file = createWriteStream(destinationPath);
file.on('close', () => { // The 'close' event is emitted when the stream and any of its // underlying resources (a file descriptor, for example) have been // closed. The event indicates that no more events will be emitted, and // no further computation will occur. return resolve();
});
file.on('error', error => { // The 'error' event may be emitted by a Readable implementation at any // time. Typically, this may occur if the underlying stream is unable to // generate data due to an underlying internal failure, or when a stream // implementation attempts to push an invalid chunk of data. return reject(error);
});
response.pipe(file);
totalBytes = parseInt(response.headers['content-length']!, 10); if (progressCallback) {
response.on('data', onData);
}
});
request.on('error', error => { return reject(error);
});
});
}
export async function getJSON(url: URL): Promise<unknown> { const text = await getText(url); try { return JSON.parse(text);
} catch { thrownew Error('Could not parse JSON from ' + url.toString());
}
}
export function getText(url: URL): Promise<string> { returnnew Promise((resolve, reject) => { const request = httpRequest(
url, 'GET',
response => {
let data = ''; if (response.statusCode && response.statusCode >= 400) { return reject(new Error(`Got status code ${response.statusCode}`));
}
response.on('data', chunk => {
data += chunk;
});
response.on('end', () => { try { return resolve(String(data));
} catch { return reject(new Error('Chrome version not found'));
}
});
}, false,
);
request.on('error', err => {
reject(err);
});
});
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet am 2026-10-06)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.