@ai-sdk/provider-utils
Version:
66 lines (65 loc) • 2.23 kB
JavaScript
//#region src/test/convert-array-to-async-iterable.ts
function convertArrayToAsyncIterable(values) {
return { async *[Symbol.asyncIterator]() {
for (const value of values) yield value;
} };
}
//#endregion
//#region src/test/convert-array-to-readable-stream.ts
function convertArrayToReadableStream(values) {
return new ReadableStream({ start(controller) {
try {
for (const value of values) controller.enqueue(value);
} finally {
controller.close();
}
} });
}
//#endregion
//#region src/test/convert-async-iterable-to-array.ts
async function convertAsyncIterableToArray(iterable) {
const result = [];
for await (const item of iterable) result.push(item);
return result;
}
//#endregion
//#region src/test/convert-readable-stream-to-array.ts
async function convertReadableStreamToArray(stream) {
const reader = stream.getReader();
const result = [];
while (true) {
const { done, value } = await reader.read();
if (done) break;
result.push(value);
}
return result;
}
//#endregion
//#region src/test/convert-response-stream-to-array.ts
async function convertResponseStreamToArray(response) {
return await convertReadableStreamToArray(response.body.pipeThrough(new TextDecoderStream()));
}
//#endregion
//#region src/test/is-node-version.ts
function getNodeVersionParts() {
return process.versions.node.split(".").map((version) => Number.parseInt(version, 10));
}
function isNodeVersion(version) {
const [nodeMajorVersion] = getNodeVersionParts();
return nodeMajorVersion === version;
}
function isNodeVersionAtLeast(major, minor = 0, patch = 0) {
const [nodeMajorVersion, nodeMinorVersion, nodePatchVersion] = getNodeVersionParts();
if (nodeMajorVersion !== major) return nodeMajorVersion > major;
if (nodeMinorVersion !== minor) return nodeMinorVersion > minor;
return nodePatchVersion >= patch;
}
//#endregion
//#region src/test/mock-id.ts
function mockId({ prefix = "id" } = {}) {
let counter = 0;
return () => `${prefix}-${counter++}`;
}
//#endregion
export { convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, isNodeVersion, isNodeVersionAtLeast, mockId };
//# sourceMappingURL=index.js.map