37 lines
836 B
TypeScript
37 lines
836 B
TypeScript
function IsNumericArray(a: unknown): a is Array<number> {
|
|
return Array.isArray(a) && a.every((c) => typeof c === "number");
|
|
}
|
|
|
|
export function ToBuffer(chunk: unknown, encoding?: BufferEncoding) {
|
|
if (Buffer.isBuffer(chunk)) {
|
|
return chunk;
|
|
}
|
|
|
|
if (IsNumericArray(chunk)) {
|
|
return Buffer.from(chunk);
|
|
}
|
|
|
|
if (typeof chunk === "string") {
|
|
return Buffer.from(chunk, encoding);
|
|
}
|
|
|
|
throw new Error("Cannot transform into a buffer");
|
|
}
|
|
|
|
export function ChunkLength(chunk: unknown, encoding?: BufferEncoding) {
|
|
if (Buffer.isBuffer(chunk)) {
|
|
return chunk.length;
|
|
}
|
|
|
|
// eslint-disable-next-line cadence/no-instanceof
|
|
if (chunk instanceof DataView) {
|
|
return Buffer.byteLength(chunk);
|
|
}
|
|
|
|
if (typeof chunk === "string") {
|
|
return Buffer.byteLength(chunk, encoding);
|
|
}
|
|
|
|
throw new Error("Cannot transform into a buffer");
|
|
}
|