serverless-spy
Version:
CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.
31 lines (24 loc) • 790 B
text/typescript
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { SourceData } from "@aws-sdk/types";
import { fromUtf8 as fromUtf8Browser } from "@smithy/util-utf8";
// Quick polyfill
const fromUtf8 =
typeof Buffer !== "undefined" && Buffer.from
? (input: string) => Buffer.from(input, "utf8")
: fromUtf8Browser;
export function convertToBuffer(data: SourceData): Uint8Array {
// Already a Uint8, do nothing
if (data instanceof Uint8Array) return 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);
}