diff --git a/src/types.ts b/src/types.ts index 9870c07..07499f2 100644 --- a/src/types.ts +++ b/src/types.ts @@ -73,10 +73,14 @@ export interface LLMOptions< export type ChatMessage = openai.ChatMessage export type ChatMessageRole = openai.ChatMessageRole +export type ChatMessageContent = + | string + | ((input: TInput | any) => string) + export type ChatMessageInput = | ChatMessage | { - content: (input: TInput | any) => string + content: ChatMessageContent } export interface ChatModelOptions< diff --git a/src/utils.ts b/src/utils.ts index 18c74c7..3b4cec0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -215,3 +215,7 @@ export function throttleKy( export function isFunction(value: any): value is Function { return typeof value === 'function' } + +export function isString(value: any): value is string { + return typeof value === 'string' +} diff --git a/test/utils.test.ts b/test/utils.test.ts index 59079f3..d664000 100644 --- a/test/utils.test.ts +++ b/test/utils.test.ts @@ -35,7 +35,8 @@ test('sleep should delay execution', async (t) => { const start = Date.now() await sleep(1000) // for example, 1000ms / 1sec const end = Date.now() - t.true(end - start >= 1000) + const duration = end - start + t.true(duration >= 1000 - 10) }) test('defaultIDGeneratorFn should generate URL-safe string', (t) => {