for await()

in source/lambda/calculateTreehash/lib/treehash.js [51:91]


    for await (const chunk of readStream) {

        let newMark = watermark + chunk.length

        if (newMark < ONE_MB) {
            buffer += chunk.toString('binary')
            watermark = newMark;
            continue;
        }

        if (newMark === ONE_MB) {
            buffer += chunk.toString('binary')

            const hash = crypto.createHash('sha256');
            hash.update(Buffer.from(buffer, 'binary'), input_encoding = 'binary');

            const hashValue = hash.digest('hex')
            leafHashes.push(hashValue);

            watermark = 0
            buffer = ""
            continue
        }

        if (newMark > ONE_MB) {
            let remainder = ONE_MB - watermark;
            let newWatermark = (chunk.length - remainder);

            let this_buffer = buffer + chunk.slice(0, remainder).toString('binary')
            let next_buffer = chunk.slice(remainder, remainder + newWatermark).toString('binary')

            const hash = crypto.createHash('sha256');
            hash.update(Buffer.from(this_buffer, 'binary'), input_encoding = 'binary');
            const hashValue = hash.digest('hex')
            leafHashes.push(hashValue);

            buffer = next_buffer
            watermark = newWatermark;
            continue
        }
    }