UNPKG

@deno/kv

Version:

A Deno KV client library optimized for Node.js.

50 lines (49 loc) 1.39 kB
"use strict"; // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. // This module is browser compatible. Object.defineProperty(exports, "__esModule", { value: true }); exports.concat = void 0; function concat(...buf) { /** * @todo(iuioiua): Revert to the old implementation upon removal of the * spread signatures. * * @see {@link https://github.com/denoland/deno_std/blob/e6c61ba64d547b60076422bbc1f6ad33184cc10a/bytes/concat.ts} */ // No need to concatenate if there is only one element in array or sub-array if (buf.length === 1) { if (!Array.isArray(buf[0])) { return buf[0]; } else if (buf[0].length === 1) { return buf[0][0]; } } let length = 0; for (const b of buf) { if (Array.isArray(b)) { for (const b1 of b) { length += b1.length; } } else { length += b.length; } } const output = new Uint8Array(length); let index = 0; for (const b of buf) { if (Array.isArray(b)) { for (const b1 of b) { output.set(b1, index); index += b1.length; } } else { output.set(b, index); index += b.length; } } return output; } exports.concat = concat;