33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var utilBufferFrom = require('@smithy/util-buffer-from');
|
|
|
|
const fromUtf8 = (input) => {
|
|
const buf = utilBufferFrom.fromString(input, "utf8");
|
|
return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);
|
|
};
|
|
|
|
const toUint8Array = (data) => {
|
|
if (typeof data === "string") {
|
|
return fromUtf8(data);
|
|
}
|
|
if (ArrayBuffer.isView(data)) {
|
|
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);
|
|
}
|
|
return new Uint8Array(data);
|
|
};
|
|
|
|
const toUtf8 = (input) => {
|
|
if (typeof input === "string") {
|
|
return input;
|
|
}
|
|
if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") {
|
|
throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");
|
|
}
|
|
return utilBufferFrom.fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString("utf8");
|
|
};
|
|
|
|
exports.fromUtf8 = fromUtf8;
|
|
exports.toUint8Array = toUint8Array;
|
|
exports.toUtf8 = toUtf8;
|