cdk-s3-vectors
Version:
A CDK construct library for Amazon S3 Vectors. This construct simplifies the creation of vector buckets, vector indexes with full configuration options, and Amazon Bedrock knowledge bases using S3 Vectors as the underlying vector store.
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);
}