File size: 1,051 Bytes
391a73c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { isBufferSource, toUint8Array, toView } from "./buffer-source.js";
export function concatToUint8Array(buffers) {
    const views = [];
    let length = 0;
    for (const buffer of buffers) {
        const view = toUint8Array(buffer);
        views.push(view);
        length += view.byteLength;
    }
    const result = new Uint8Array(length);
    let offset = 0;
    for (const view of views) {
        result.set(view, offset);
        offset += view.byteLength;
    }
    return result;
}
export function concat(first, second, ...rest) {
    let buffers;
    let type;
    if (typeof second === "function") {
        buffers = Array.from(first);
        type = second;
    }
    else if (isBufferSource(first)) {
        buffers = [first, second, ...rest].filter(isBufferSource);
    }
    else {
        buffers = Array.from(first);
        if (second) {
            buffers.push(second);
        }
        buffers.push(...rest);
    }
    const bytes = concatToUint8Array(buffers);
    return type ? toView(bytes, type) : bytes.buffer;
}