Skip to content

Instantly share code, notes, and snippets.

@thekarel
Created March 2, 2020 12:48

Revisions

  1. thekarel created this gist Mar 2, 2020.
    21 changes: 21 additions & 0 deletions fetchOnceAndSaveToDiskWithBuffer.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    async function fetchOnceAndSaveToDiskWithBuffer(url, filename) {
    return new Promise(resolve => {
    if (fs.existsSync(filename)) {
    resolve(readFile(filename));

    return;
    }

    const file = fs.createWriteStream(filename);

    console.log(` * Downloading from: ${url}`);

    https.get(url, (response) => {
    const unzip = zlib.createGunzip();
    response.pipe(unzip).pipe(file);
    unzip.on('end', () => {
    resolve(readFile(filename));
    });
    });
    });
    }