Skip to content

Commit

Permalink
feat (provider-utils): move delay to provider-utils from ai (#4528)
Browse files Browse the repository at this point in the history
  • Loading branch information
shaper authored Jan 26, 2025
1 parent 6977e7b commit 066206e
Show file tree
Hide file tree
Showing 14 changed files with 19 additions and 17 deletions.
7 changes: 7 additions & 0 deletions .changeset/modern-pets-repeat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@ai-sdk/provider-utils': patch
'@ai-sdk/luma': patch
'ai': patch
---

feat (provider-utils): move delay to provider-utils from ai
2 changes: 1 addition & 1 deletion packages/ai/core/data-stream/create-data-stream.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { delay } from '@ai-sdk/provider-utils';
import { convertReadableStreamToArray } from '@ai-sdk/provider-utils/test';
import { formatDataStreamPart } from '@ai-sdk/ui-utils';
import { expect, it } from 'vitest';
import { delay } from '../../util/delay';
import { DelayedPromise } from '../../util/delayed-promise';
import { createDataStream } from './create-data-stream';
import { DataStreamWriter } from './data-stream-writer';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { LanguageModelV1StreamPart } from '@ai-sdk/provider';
import { delay } from '@ai-sdk/provider-utils';
import {
convertArrayToReadableStream,
convertReadableStreamToArray,
} from '@ai-sdk/provider-utils/test';
import { z } from 'zod';
import { NoSuchToolError } from '../../errors';
import { delay } from '../../util/delay';
import { MockTracer } from '../test/mock-tracer';
import { runToolsTransformation } from './run-tools-transformation';

Expand Down
2 changes: 1 addition & 1 deletion packages/ai/core/generate-text/smooth-stream.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { InvalidArgumentError } from '@ai-sdk/provider';
import { delay as originalDelay } from '../../util/delay';
import { delay as originalDelay } from '@ai-sdk/provider-utils';
import { CoreTool } from '../tool/tool';
import { TextStreamPart } from './stream-text-result';

Expand Down
2 changes: 1 addition & 1 deletion packages/ai/core/generate-text/stream-text.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
LanguageModelV1CallWarning,
LanguageModelV1StreamPart,
} from '@ai-sdk/provider';
import { delay } from '@ai-sdk/provider-utils';
import {
convertArrayToReadableStream,
convertAsyncIterableToArray,
Expand All @@ -15,7 +16,6 @@ import assert from 'node:assert';
import { z } from 'zod';
import { ToolExecutionError } from '../../errors/tool-execution-error';
import { StreamData } from '../../streams/stream-data';
import { delay } from '../../util/delay';
import { createDataStream } from '../data-stream/create-data-stream';
import { mockId } from '../test/mock-id';
import { MockLanguageModelV1 } from '../test/mock-language-model-v1';
Expand Down
2 changes: 1 addition & 1 deletion packages/ai/core/util/simulate-readable-stream.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { delay as delayFunction } from '../../util/delay';
import { delay as delayFunction } from '@ai-sdk/provider-utils';

/**
* Creates a ReadableStream that emits the provided values with an optional delay between each value.
Expand Down
2 changes: 1 addition & 1 deletion packages/ai/rsc/stream-ui/stream-ui.ui.test.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { delay } from '@ai-sdk/provider-utils';
import { convertArrayToReadableStream } from '@ai-sdk/provider-utils/test';
import { MockLanguageModelV1 } from '../../core/test/mock-language-model-v1';
import { streamUI } from './stream-ui';
import { z } from 'zod';
import { delay } from '../../util/delay';

async function recursiveResolve(val: any): Promise<any> {
if (val && typeof val === 'object' && typeof val.then === 'function') {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { delay } from '../../util/delay';
import { delay } from '@ai-sdk/provider-utils';
import { createStreamableUI } from './create-streamable-ui';

// This is a workaround to render the Flight response in a test environment.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { delay } from '@ai-sdk/provider-utils';
import { convertArrayToReadableStream } from '@ai-sdk/provider-utils/test';
import { delay } from '../../util/delay';
import { createStreamableValue } from './create-streamable-value';
import { STREAMABLE_VALUE_TYPE, StreamableValue } from './streamable-value';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { delay } from '../../util/delay';
import { delay } from '@ai-sdk/provider-utils';
import { createStreamableValue } from './create-streamable-value';
import { readStreamableValue } from './read-streamable-value';

Expand Down
3 changes: 1 addition & 2 deletions packages/ai/util/retry-with-exponential-backoff.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { APICallError } from '@ai-sdk/provider';
import { getErrorMessage, isAbortError } from '@ai-sdk/provider-utils';
import { delay } from './delay';
import { delay, getErrorMessage, isAbortError } from '@ai-sdk/provider-utils';
import { RetryError } from './retry-error';

export type RetryFunction = <OUTPUT>(
Expand Down
7 changes: 1 addition & 6 deletions packages/luma/src/luma-image-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {
createJsonResponseHandler,
createJsonErrorResponseHandler,
createStatusCodeErrorResponseHandler,
delay,
getFromApi,
postJsonToApi,
} from '@ai-sdk/provider-utils';
Expand All @@ -29,12 +30,6 @@ interface LumaImageModelConfig {
};
}

async function delay(delayInMs?: number | null): Promise<void> {
return delayInMs == null
? Promise.resolve()
: new Promise(resolve => setTimeout(resolve, delayInMs));
}

export class LumaImageModel implements ImageModelV1 {
readonly specificationVersion = 'v1';

Expand Down
File renamed without changes.
1 change: 1 addition & 0 deletions packages/provider-utils/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export * from './combine-headers';
export { convertAsyncIteratorToReadableStream } from './convert-async-iterator-to-readable-stream';
export * from './delay';
export * from './extract-response-headers';
export * from './fetch-function';
export { createIdGenerator, generateId } from './generate-id';
Expand Down

0 comments on commit 066206e

Please sign in to comment.