From 642f0b8b66afd08722ae22c4fb555b3c49a38416 Mon Sep 17 00:00:00 2001 From: Daniel Rochetti Date: Wed, 13 Nov 2024 12:42:07 -0800 Subject: [PATCH] fix(client): queue client type safety (#103) * fix(client): queue client type safety * chore: update reference docs --- docs/reference/classes/ApiError.html | 4 ++-- docs/reference/classes/FalStream.html | 12 +++++----- docs/reference/classes/ValidationError.html | 4 ++-- docs/reference/functions/createFalClient.html | 4 ++-- .../functions/isCompletedQueueStatus.html | 2 +- docs/reference/functions/isQueueStatus.html | 2 +- docs/reference/functions/parseEndpointId.html | 2 +- docs/reference/functions/withMiddleware.html | 4 ++-- docs/reference/functions/withProxy.html | 2 +- docs/reference/hierarchy.html | 2 +- docs/reference/index.html | 4 ++-- .../interfaces/CompletedQueueStatus.html | 4 ++-- docs/reference/interfaces/FalClient.html | 18 +++++++------- .../interfaces/InProgressQueueStatus.html | 4 ++-- .../interfaces/InQueueQueueStatus.html | 4 ++-- docs/reference/interfaces/QueueClient.html | 24 +++++++++---------- docs/reference/interfaces/RealtimeClient.html | 4 ++-- docs/reference/interfaces/StorageClient.html | 8 +++---- .../reference/interfaces/StreamingClient.html | 6 ++--- docs/reference/types/Metrics.html | 2 +- docs/reference/types/QueueStatus.html | 2 +- docs/reference/types/RequestLog.html | 2 +- docs/reference/types/RequestMiddleware.html | 2 +- docs/reference/types/ResponseHandler.html | 2 +- docs/reference/types/Result.html | 4 ++-- docs/reference/types/RunOptions.html | 4 ++-- docs/reference/types/UrlOptions.html | 4 ++-- docs/reference/types/ValidationErrorInfo.html | 2 +- docs/reference/types/WebHookResponse.html | 4 ++-- docs/reference/variables/fal.html | 4 ++-- libs/client/package.json | 2 +- libs/client/src/queue.ts | 13 +++++----- 32 files changed, 81 insertions(+), 80 deletions(-) diff --git a/docs/reference/classes/ApiError.html b/docs/reference/classes/ApiError.html index 46aadab..9e450a7 100644 --- a/docs/reference/classes/ApiError.html +++ b/docs/reference/classes/ApiError.html @@ -1,4 +1,4 @@ -ApiError | @fal-ai/client - v1.1.0

Class ApiError<Body>

Type Parameters

  • Body

Hierarchy (view full)

Constructors

constructor +ApiError | @fal-ai/client - v1.1.1

Class ApiError<Body>

Type Parameters

  • Body

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

body: Body
status: number
+

Constructors

Properties

body: Body
status: number
diff --git a/docs/reference/classes/FalStream.html b/docs/reference/classes/FalStream.html index c6100c2..6988cb4 100644 --- a/docs/reference/classes/FalStream.html +++ b/docs/reference/classes/FalStream.html @@ -1,5 +1,5 @@ -FalStream | @fal-ai/client - v1.1.0

Class FalStream<Input, Output>

The class representing a streaming response. With t

-

Type Parameters

  • Input
  • Output

Constructors

constructor +FalStream | @fal-ai/client - v1.1.1

Class FalStream<Input, Output>

The class representing a streaming response. With t

+

Type Parameters

  • Input
  • Output

Constructors

Properties

config endpointId options @@ -9,16 +9,16 @@ abort done on -

Constructors

Properties

config: Required<Config>
endpointId: string
options: StreamOptions<Input>
url: string

Accessors

  • get signal(): AbortSignal
  • Gets the AbortSignal instance that can be used to listen for abort events.

    +

Constructors

Properties

config: Required<Config>
endpointId: string
options: StreamOptions<Input>
url: string

Accessors

Methods

Methods

  • Aborts the streaming request.

    Note: This method is noop in case the request is already done.

    Parameters

    • Optionalreason: string | Error

      optional cause for aborting the request.

      -

    Returns void

  • Gets a reference to the Promise that indicates whether the streaming +

Returns void

  • Gets a reference to the Promise that indicates whether the streaming is done or not. Developers should always call this in their apps to ensure the request is over.

    An alternative to this, is to use on('done') in case your application architecture works best with event listeners.

    Returns Promise<Output>

    the promise that resolves when the request is done.

    -
  • Parameters

    • type: FalStreamEventType
    • listener: EventHandler<any>

    Returns void

+
diff --git a/docs/reference/classes/ValidationError.html b/docs/reference/classes/ValidationError.html index 864f5fd..2e73090 100644 --- a/docs/reference/classes/ValidationError.html +++ b/docs/reference/classes/ValidationError.html @@ -1,6 +1,6 @@ -ValidationError | @fal-ai/client - v1.1.0

Class ValidationError

Hierarchy (view full)

  • ApiError<ValidationErrorBody>
    • ValidationError

Constructors

constructor +ValidationError | @fal-ai/client - v1.1.1

Class ValidationError

Hierarchy (view full)

  • ApiError<ValidationErrorBody>
    • ValidationError

Constructors

Properties

Accessors

Methods

Constructors

Properties

body: ValidationErrorBody
status: number

Accessors

Methods

+

Constructors

Properties

body: ValidationErrorBody
status: number

Accessors

Methods

diff --git a/docs/reference/functions/createFalClient.html b/docs/reference/functions/createFalClient.html index 5d163c2..2180871 100644 --- a/docs/reference/functions/createFalClient.html +++ b/docs/reference/functions/createFalClient.html @@ -1,4 +1,4 @@ -createFalClient | @fal-ai/client - v1.1.0

Function createFalClient

  • Creates a new reference of the FalClient.

    +createFalClient | @fal-ai/client - v1.1.1

    Function createFalClient

    • Creates a new reference of the FalClient.

      Parameters

      • userConfig: Config = {}

        Optional configuration to override the default settings.

      Returns FalClient

      a new instance of the FalClient.

      -
    +
diff --git a/docs/reference/functions/isCompletedQueueStatus.html b/docs/reference/functions/isCompletedQueueStatus.html index 82cb4d9..83bb7d4 100644 --- a/docs/reference/functions/isCompletedQueueStatus.html +++ b/docs/reference/functions/isCompletedQueueStatus.html @@ -1 +1 @@ -isCompletedQueueStatus | @fal-ai/client - v1.1.0

Function isCompletedQueueStatus

+isCompletedQueueStatus | @fal-ai/client - v1.1.1

Function isCompletedQueueStatus

diff --git a/docs/reference/functions/isQueueStatus.html b/docs/reference/functions/isQueueStatus.html index 1c50ee7..2e806ee 100644 --- a/docs/reference/functions/isQueueStatus.html +++ b/docs/reference/functions/isQueueStatus.html @@ -1 +1 @@ -isQueueStatus | @fal-ai/client - v1.1.0

Function isQueueStatus

+isQueueStatus | @fal-ai/client - v1.1.1

Function isQueueStatus

diff --git a/docs/reference/functions/parseEndpointId.html b/docs/reference/functions/parseEndpointId.html index 39b23a0..0e43bb6 100644 --- a/docs/reference/functions/parseEndpointId.html +++ b/docs/reference/functions/parseEndpointId.html @@ -1 +1 @@ -parseEndpointId | @fal-ai/client - v1.1.0

Function parseEndpointId

  • Parameters

    • id: string

    Returns EndpointId

+parseEndpointId | @fal-ai/client - v1.1.1

Function parseEndpointId

  • Parameters

    • id: string

    Returns EndpointId

diff --git a/docs/reference/functions/withMiddleware.html b/docs/reference/functions/withMiddleware.html index 8be19b3..f04be33 100644 --- a/docs/reference/functions/withMiddleware.html +++ b/docs/reference/functions/withMiddleware.html @@ -1,4 +1,4 @@ -withMiddleware | @fal-ai/client - v1.1.0

Function withMiddleware

  • Setup a execution chain of middleware functions.

    +withMiddleware | @fal-ai/client - v1.1.1

    Function withMiddleware

    +
diff --git a/docs/reference/functions/withProxy.html b/docs/reference/functions/withProxy.html index c4cfa4a..1894a44 100644 --- a/docs/reference/functions/withProxy.html +++ b/docs/reference/functions/withProxy.html @@ -1 +1 @@ -withProxy | @fal-ai/client - v1.1.0

Function withProxy

+withProxy | @fal-ai/client - v1.1.1

Function withProxy

diff --git a/docs/reference/hierarchy.html b/docs/reference/hierarchy.html index cff7b0c..cba8738 100644 --- a/docs/reference/hierarchy.html +++ b/docs/reference/hierarchy.html @@ -1 +1 @@ -@fal-ai/client - v1.1.0

@fal-ai/client - v1.1.0

Class Hierarchy

+@fal-ai/client - v1.1.1

@fal-ai/client - v1.1.1

Class Hierarchy

diff --git a/docs/reference/index.html b/docs/reference/index.html index 176bb3f..d96bed8 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -1,4 +1,4 @@ -@fal-ai/client - v1.1.0

@fal-ai/client - v1.1.0

Index

Classes

ApiError +@fal-ai/client - v1.1.1

@fal-ai/client - v1.1.1

Index

Classes

Interfaces

+
diff --git a/docs/reference/interfaces/CompletedQueueStatus.html b/docs/reference/interfaces/CompletedQueueStatus.html index 885bd17..6dfb27f 100644 --- a/docs/reference/interfaces/CompletedQueueStatus.html +++ b/docs/reference/interfaces/CompletedQueueStatus.html @@ -1,6 +1,6 @@ -CompletedQueueStatus | @fal-ai/client - v1.1.0

Interface CompletedQueueStatus

interface CompletedQueueStatus {
    logs: RequestLog[];
    metrics?: Metrics;
    request_id: string;
    response_url: string;
    status: "COMPLETED";
}

Hierarchy

  • BaseQueueStatus
    • CompletedQueueStatus

Properties

logs +CompletedQueueStatus | @fal-ai/client - v1.1.1

Interface CompletedQueueStatus

interface CompletedQueueStatus {
    logs: RequestLog[];
    metrics?: Metrics;
    request_id: string;
    response_url: string;
    status: "COMPLETED";
}

Hierarchy

  • BaseQueueStatus
    • CompletedQueueStatus

Properties

logs: RequestLog[]
metrics?: Metrics
request_id: string
response_url: string
status: "COMPLETED"
+

Properties

logs: RequestLog[]
metrics?: Metrics
request_id: string
response_url: string
status: "COMPLETED"
diff --git a/docs/reference/interfaces/FalClient.html b/docs/reference/interfaces/FalClient.html index 7de76c6..eedfe92 100644 --- a/docs/reference/interfaces/FalClient.html +++ b/docs/reference/interfaces/FalClient.html @@ -1,7 +1,7 @@ -FalClient | @fal-ai/client - v1.1.0

Interface FalClient

The main client type, it provides access to simple API model usage, +FalClient | @fal-ai/client - v1.1.1

Interface FalClient

The main client type, it provides access to simple API model usage, as well as access to the queue and storage APIs.

createFalClient

-
interface FalClient {
    queue: QueueClient;
    realtime: RealtimeClient;
    storage: StorageClient;
    stream: (<Id>(endpointId: Id, options: StreamOptions<InputType<Id>>) => Promise<FalStream<InputType<Id>, OutputType<Id>>>);
    streaming: StreamingClient;
    run<Id>(endpointId: Id, options: RunOptions<InputType<Id>>): Promise<Result<OutputType<Id>>>;
    subscribe<Id>(endpointId: Id, options: RunOptions<InputType<Id>> & QueueSubscribeOptions): Promise<Result<OutputType<Id>>>;
}

Properties

interface FalClient {
    queue: QueueClient;
    realtime: RealtimeClient;
    storage: StorageClient;
    stream: (<Id>(endpointId: Id, options: StreamOptions<InputType<Id>>) => Promise<FalStream<InputType<Id>, OutputType<Id>>>);
    streaming: StreamingClient;
    run<Id>(endpointId: Id, options: RunOptions<InputType<Id>>): Promise<Result<OutputType<Id>>>;
    subscribe<Id>(endpointId: Id, options: RunOptions<InputType<Id>> & QueueSubscribeOptions): Promise<Result<OutputType<Id>>>;
}

Properties

queue realtime storage stream @@ -9,14 +9,14 @@ as well as access to the queue and storage APIs.

Methods

Properties

The queue client to interact with the queue API.

-
realtime: RealtimeClient

The realtime client to interact with the realtime API +

realtime: RealtimeClient

The realtime client to interact with the realtime API and receive updates in real-time.

  • #RealtimeClient
  • #RealtimeClient.connect
-
storage: StorageClient

The storage client to interact with the storage API.

-
stream: (<Id>(endpointId: Id, options: StreamOptions<InputType<Id>>) => Promise<FalStream<InputType<Id>, OutputType<Id>>>)

Calls a fal app that supports streaming and provides a streaming-capable +

storage: StorageClient

The storage client to interact with the storage API.

+
stream: (<Id>(endpointId: Id, options: StreamOptions<InputType<Id>>) => Promise<FalStream<InputType<Id>, OutputType<Id>>>)

Calls a fal app that supports streaming and provides a streaming-capable object as a result, that can be used to get partial results through either AsyncIterator or through an event listener.

Type declaration

    • <Id>(endpointId, options): Promise<FalStream<InputType<Id>, OutputType<Id>>>
    • Calls a fal app that supports streaming and provides a streaming-capable @@ -28,13 +28,13 @@ object as a result, that can be used to get partial results through either

the endpoint id, e.g. fal-ai/llavav15-13b.

the request options, including the input payload.

the FalStream instance.

-
streaming: StreamingClient

The streaming client to interact with the streaming API.

+
streaming: StreamingClient

The streaming client to interact with the streaming API.

#stream

-

Methods

Methods

  • Runs a fal endpoints identified by its endpointId.

    Type Parameters

    • Id extends EndpointType

    Parameters

    • endpointId: Id

      the registered function revision id or alias.

    • options: RunOptions<InputType<Id>>

    Returns Promise<Result<OutputType<Id>>>

    the remote function output

    -
  • Subscribes to updates for a specific request in the queue.

    +
  • Subscribes to updates for a specific request in the queue.

    Type Parameters

    • Id extends EndpointType

    Parameters

    • endpointId: Id

      The ID of the API endpoint.

    • options: RunOptions<InputType<Id>> & QueueSubscribeOptions

      Options to configure how the request is run and how updates are received.

    Returns Promise<Result<OutputType<Id>>>

    A promise that resolves to the result of the request once it's completed.

    -
+
diff --git a/docs/reference/interfaces/InProgressQueueStatus.html b/docs/reference/interfaces/InProgressQueueStatus.html index f7ec17f..fd427da 100644 --- a/docs/reference/interfaces/InProgressQueueStatus.html +++ b/docs/reference/interfaces/InProgressQueueStatus.html @@ -1,5 +1,5 @@ -InProgressQueueStatus | @fal-ai/client - v1.1.0

Interface InProgressQueueStatus

interface InProgressQueueStatus {
    logs: RequestLog[];
    request_id: string;
    response_url: string;
    status: "IN_PROGRESS";
}

Hierarchy

  • BaseQueueStatus
    • InProgressQueueStatus

Properties

logs +InProgressQueueStatus | @fal-ai/client - v1.1.1

Interface InProgressQueueStatus

interface InProgressQueueStatus {
    logs: RequestLog[];
    request_id: string;
    response_url: string;
    status: "IN_PROGRESS";
}

Hierarchy

  • BaseQueueStatus
    • InProgressQueueStatus

Properties

logs: RequestLog[]
request_id: string
response_url: string
status: "IN_PROGRESS"
+

Properties

logs: RequestLog[]
request_id: string
response_url: string
status: "IN_PROGRESS"
diff --git a/docs/reference/interfaces/InQueueQueueStatus.html b/docs/reference/interfaces/InQueueQueueStatus.html index 5b9eb02..475e571 100644 --- a/docs/reference/interfaces/InQueueQueueStatus.html +++ b/docs/reference/interfaces/InQueueQueueStatus.html @@ -1,5 +1,5 @@ -InQueueQueueStatus | @fal-ai/client - v1.1.0

Interface InQueueQueueStatus

interface InQueueQueueStatus {
    queue_position: number;
    request_id: string;
    response_url: string;
    status: "IN_QUEUE";
}

Hierarchy

  • BaseQueueStatus
    • InQueueQueueStatus

Properties

queue_position +InQueueQueueStatus | @fal-ai/client - v1.1.1

Interface InQueueQueueStatus

interface InQueueQueueStatus {
    queue_position: number;
    request_id: string;
    response_url: string;
    status: "IN_QUEUE";
}

Hierarchy

  • BaseQueueStatus
    • InQueueQueueStatus

Properties

queue_position: number
request_id: string
response_url: string
status: "IN_QUEUE"
+

Properties

queue_position: number
request_id: string
response_url: string
status: "IN_QUEUE"
diff --git a/docs/reference/interfaces/QueueClient.html b/docs/reference/interfaces/QueueClient.html index 100978e..8948ff7 100644 --- a/docs/reference/interfaces/QueueClient.html +++ b/docs/reference/interfaces/QueueClient.html @@ -1,6 +1,6 @@ -QueueClient | @fal-ai/client - v1.1.0

Interface QueueClient

Represents a request queue with methods for submitting requests, +QueueClient | @fal-ai/client - v1.1.1

Interface QueueClient

Represents a request queue with methods for submitting requests, checking their status, retrieving results, and subscribing to updates.

-
interface QueueClient {
    cancel(endpointId: string, options: BaseQueueOptions): Promise<void>;
    result<Output>(endpointId: string, options: BaseQueueOptions): Promise<Result<Output>>;
    status(endpointId: string, options: QueueStatusOptions): Promise<QueueStatus>;
    streamStatus(endpointId: string, options: QueueStatusStreamOptions): Promise<FalStream<unknown, QueueStatus>>;
    submit<Input>(endpointId: string, options: SubmitOptions<Input>): Promise<InQueueQueueStatus>;
    subscribeToStatus(endpointId: string, options: QueueStatusSubscriptionOptions): Promise<CompletedQueueStatus>;
}

Methods

interface QueueClient {
    cancel(endpointId: string, options: BaseQueueOptions): Promise<void>;
    result<Id>(endpointId: Id, options: BaseQueueOptions): Promise<Result<any>>;
    status(endpointId: string, options: QueueStatusOptions): Promise<QueueStatus>;
    streamStatus(endpointId: string, options: QueueStatusStreamOptions): Promise<FalStream<unknown, QueueStatus>>;
    submit<Id>(endpointId: Id, options: SubmitOptions<InputType<Id>>): Promise<InQueueQueueStatus>;
    subscribeToStatus(endpointId: string, options: QueueStatusSubscriptionOptions): Promise<CompletedQueueStatus>;
}

Methods

cancel result status streamStatus @@ -12,25 +12,25 @@ checking their status, retrieving results, and subscribing to updates.

is run and how updates are received.

Returns Promise<void>

A promise that resolves once the request is cancelled.

If the request cannot be cancelled.

-
  • Retrieves the result of a specific request from the queue.

    -

    Type Parameters

    • Output

    Parameters

    • endpointId: string

      The ID of the function web endpoint.

      +
  • Retrieves the result of a specific request from the queue.

    +

    Type Parameters

    • Id extends EndpointType

    Parameters

    • endpointId: Id

      The ID of the function web endpoint.

    • options: BaseQueueOptions

      Options to configure how the request is run.

      -

    Returns Promise<Result<Output>>

    A promise that resolves to the result of the request.

    -
  • Retrieves the status of a specific request in the queue.

    +

Returns Promise<Result<any>>

A promise that resolves to the result of the request.

+
  • Retrieves the status of a specific request in the queue.

    Parameters

    • endpointId: string

      The ID of the function web endpoint.

    • options: QueueStatusOptions

      Options to configure how the request is run.

    Returns Promise<QueueStatus>

    A promise that resolves to the status of the request.

    -
  • Subscribes to updates for a specific request in the queue using HTTP streaming events.

    Parameters

    • endpointId: string

      The ID of the function web endpoint.

    • options: QueueStatusStreamOptions

      Options to configure how the request is run and how updates are received.

    Returns Promise<FalStream<unknown, QueueStatus>>

    The streaming object that can be used to listen for updates.

    -
  • Submits a request to the queue.

    -

    Type Parameters

    • Input

    Parameters

    • endpointId: string

      The ID of the function web endpoint.

      -
    • options: SubmitOptions<Input>

      Options to configure how the request is run.

      +
  • Submits a request to the queue.

    +

    Type Parameters

    • Id extends EndpointType

    Parameters

    • endpointId: Id

      The ID of the function web endpoint.

      +
    • options: SubmitOptions<InputType<Id>>

      Options to configure how the request is run.

    Returns Promise<InQueueQueueStatus>

    A promise that resolves to the result of enqueuing the request.

    -
  • Subscribes to updates for a specific request in the queue using polling or streaming. See options.mode for more details.

    Parameters

    • endpointId: string

      The ID of the function web endpoint.

    • options: QueueStatusSubscriptionOptions

      Options to configure how the request is run and how updates are received.

    Returns Promise<CompletedQueueStatus>

    A promise that resolves to the final status of the request.

    -
+
diff --git a/docs/reference/interfaces/RealtimeClient.html b/docs/reference/interfaces/RealtimeClient.html index f518fcf..ab8fbcd 100644 --- a/docs/reference/interfaces/RealtimeClient.html +++ b/docs/reference/interfaces/RealtimeClient.html @@ -1,6 +1,6 @@ -RealtimeClient | @fal-ai/client - v1.1.0

Interface RealtimeClient

interface RealtimeClient {
    connect<Input, Output>(app: string, handler: RealtimeConnectionHandler<Output>): RealtimeConnection<Input>;
}

Methods

connect +RealtimeClient | @fal-ai/client - v1.1.1

Interface RealtimeClient

interface RealtimeClient {
    connect<Input, Output>(app: string, handler: RealtimeConnectionHandler<Output>): RealtimeConnection<Input>;
}

Methods

Methods

  • Connect to the realtime endpoint. The default implementation uses WebSockets to connect to fal function endpoints that support WSS.

    Type Parameters

    • Input = any
    • Output = any

    Parameters

    • app: string

      the app alias or identifier.

    • handler: RealtimeConnectionHandler<Output>

      the connection handler.

      -

    Returns RealtimeConnection<Input>

+

Returns RealtimeConnection<Input>

diff --git a/docs/reference/interfaces/StorageClient.html b/docs/reference/interfaces/StorageClient.html index 4ad638c..c2facfa 100644 --- a/docs/reference/interfaces/StorageClient.html +++ b/docs/reference/interfaces/StorageClient.html @@ -1,14 +1,14 @@ -StorageClient | @fal-ai/client - v1.1.0

Interface StorageClient

File support for the client. This interface establishes the contract for +StorageClient | @fal-ai/client - v1.1.1

Interface StorageClient

File support for the client. This interface establishes the contract for uploading files to the server and transforming the input to replace file objects with URLs.

-
interface StorageClient {
    transformInput: ((input: Record<string, any>) => Promise<Record<string, any>>);
    upload: ((file: Blob) => Promise<string>);
}

Properties

interface StorageClient {
    transformInput: ((input: Record<string, any>) => Promise<Record<string, any>>);
    upload: ((file: Blob) => Promise<string>);
}

Properties

transformInput: ((input: Record<string, any>) => Promise<Record<string, any>>)

Transform the input to replace file objects with URLs. This is used to transform the input before sending it to the server and ensures that the server receives URLs instead of file objects.

Type declaration

upload: ((file: Blob) => Promise<string>)

Upload a file to the server. Returns the URL of the uploaded file.

+
upload: ((file: Blob) => Promise<string>)

Upload a file to the server. Returns the URL of the uploaded file.

Type declaration

    • (file): Promise<string>
    • Parameters

      • file: Blob

        the file to upload

      Returns Promise<string>

      the URL of the uploaded file

      -
+
diff --git a/docs/reference/interfaces/StreamingClient.html b/docs/reference/interfaces/StreamingClient.html index 163f18e..c3910e2 100644 --- a/docs/reference/interfaces/StreamingClient.html +++ b/docs/reference/interfaces/StreamingClient.html @@ -1,9 +1,9 @@ -StreamingClient | @fal-ai/client - v1.1.0

Interface StreamingClient

The streaming client interface.

-
interface StreamingClient {
    stream<Id>(endpointId: Id, options: StreamOptions<InputType<Id>>): Promise<FalStream<InputType<Id>, OutputType<Id>>>;
}

Methods

stream +StreamingClient | @fal-ai/client - v1.1.1

Interface StreamingClient

The streaming client interface.

+
interface StreamingClient {
    stream<Id>(endpointId: Id, options: StreamOptions<InputType<Id>>): Promise<FalStream<InputType<Id>, OutputType<Id>>>;
}

Methods

Methods

  • Calls a fal app that supports streaming and provides a streaming-capable object as a result, that can be used to get partial results through either AsyncIterator or through an event listener.

    Type Parameters

    • Id extends EndpointType

    Parameters

    • endpointId: Id

      the endpoint id, e.g. fal-ai/llavav15-13b.

    • options: StreamOptions<InputType<Id>>

      the request options, including the input payload.

    Returns Promise<FalStream<InputType<Id>, OutputType<Id>>>

    the FalStream instance.

    -
+
diff --git a/docs/reference/types/Metrics.html b/docs/reference/types/Metrics.html index ed4ac32..5ba4aca 100644 --- a/docs/reference/types/Metrics.html +++ b/docs/reference/types/Metrics.html @@ -1 +1 @@ -Metrics | @fal-ai/client - v1.1.0

Type Alias Metrics

Metrics: {
    inference_time: number | null;
}
+Metrics | @fal-ai/client - v1.1.1

Type Alias Metrics

Metrics: {
    inference_time: number | null;
}
diff --git a/docs/reference/types/QueueStatus.html b/docs/reference/types/QueueStatus.html index c8c9181..88af3f0 100644 --- a/docs/reference/types/QueueStatus.html +++ b/docs/reference/types/QueueStatus.html @@ -1 +1 @@ -QueueStatus | @fal-ai/client - v1.1.0
+QueueStatus | @fal-ai/client - v1.1.1
diff --git a/docs/reference/types/RequestLog.html b/docs/reference/types/RequestLog.html index f90840f..35f9ae6 100644 --- a/docs/reference/types/RequestLog.html +++ b/docs/reference/types/RequestLog.html @@ -1 +1 @@ -RequestLog | @fal-ai/client - v1.1.0

Type Alias RequestLog

RequestLog: {
    level:
        | "STDERR"
        | "STDOUT"
        | "ERROR"
        | "INFO"
        | "WARN"
        | "DEBUG";
    message: string;
    source: "USER";
    timestamp: string;
}
+RequestLog | @fal-ai/client - v1.1.1

Type Alias RequestLog

RequestLog: {
    level:
        | "STDERR"
        | "STDOUT"
        | "ERROR"
        | "INFO"
        | "WARN"
        | "DEBUG";
    message: string;
    source: "USER";
    timestamp: string;
}
diff --git a/docs/reference/types/RequestMiddleware.html b/docs/reference/types/RequestMiddleware.html index be94b39..5a742e0 100644 --- a/docs/reference/types/RequestMiddleware.html +++ b/docs/reference/types/RequestMiddleware.html @@ -1 +1 @@ -RequestMiddleware | @fal-ai/client - v1.1.0

Type Alias RequestMiddleware

RequestMiddleware: ((request: RequestConfig) => Promise<RequestConfig>)
+RequestMiddleware | @fal-ai/client - v1.1.1

Type Alias RequestMiddleware

RequestMiddleware: ((request: RequestConfig) => Promise<RequestConfig>)
diff --git a/docs/reference/types/ResponseHandler.html b/docs/reference/types/ResponseHandler.html index 2b5471f..fcb5539 100644 --- a/docs/reference/types/ResponseHandler.html +++ b/docs/reference/types/ResponseHandler.html @@ -1 +1 @@ -ResponseHandler | @fal-ai/client - v1.1.0

Type Alias ResponseHandler<Output>

ResponseHandler<Output>: ((response: Response) => Promise<Output>)

Type Parameters

  • Output
+ResponseHandler | @fal-ai/client - v1.1.1

Type Alias ResponseHandler<Output>

ResponseHandler<Output>: ((response: Response) => Promise<Output>)

Type Parameters

  • Output
diff --git a/docs/reference/types/Result.html b/docs/reference/types/Result.html index d45c2ea..03ec374 100644 --- a/docs/reference/types/Result.html +++ b/docs/reference/types/Result.html @@ -1,3 +1,3 @@ -Result | @fal-ai/client - v1.1.0

Type Alias Result<T>

Result<T>: {
    data: T;
    requestId: string;
}

Represents an API result, containing the data, +Result | @fal-ai/client - v1.1.1

Type Alias Result<T>

Result<T>: {
    data: T;
    requestId: string;
}

Represents an API result, containing the data, the request ID and any other relevant information.

-

Type Parameters

  • T
+

Type Parameters

  • T
diff --git a/docs/reference/types/RunOptions.html b/docs/reference/types/RunOptions.html index 21bd01a..46ee8c1 100644 --- a/docs/reference/types/RunOptions.html +++ b/docs/reference/types/RunOptions.html @@ -1,6 +1,6 @@ -RunOptions | @fal-ai/client - v1.1.0

Type Alias RunOptions<Input>

RunOptions<Input>: {
    input?: Input;
    method?:
        | "get"
        | "post"
        | "put"
        | "delete"
        | string;
}

The function input and other configuration when running +RunOptions | @fal-ai/client - v1.1.1

Type Alias RunOptions<Input>

RunOptions<Input>: {
    input?: Input;
    method?:
        | "get"
        | "post"
        | "put"
        | "delete"
        | string;
}

The function input and other configuration when running the function, such as the HTTP method to use.

Type Parameters

  • Input

Type declaration

  • Optional Readonlyinput?: Input

    The function input. It will be submitted either as query params or the body payload, depending on the method.

  • Optional Readonlymethod?:
        | "get"
        | "post"
        | "put"
        | "delete"
        | string

    The HTTP method, defaults to post;

    -
+
diff --git a/docs/reference/types/UrlOptions.html b/docs/reference/types/UrlOptions.html index 111f914..9937753 100644 --- a/docs/reference/types/UrlOptions.html +++ b/docs/reference/types/UrlOptions.html @@ -1,6 +1,6 @@ -UrlOptions | @fal-ai/client - v1.1.0

Type Alias UrlOptions

UrlOptions: {
    path?: string;
    query?: Record<string, string>;
    subdomain?: string;
}

Type declaration

  • Optionalpath?: string

    The path to append to the function URL.

    +UrlOptions | @fal-ai/client - v1.1.1

    Type Alias UrlOptions

    UrlOptions: {
        path?: string;
        query?: Record<string, string>;
        subdomain?: string;
    }

    Type declaration

    • Optionalpath?: string

      The path to append to the function URL.

    • Optional Readonlyquery?: Record<string, string>

      The query parameters to include in the URL.

    • Optional Readonlysubdomain?: string

      If true, the function will use the queue to run the function asynchronously and return the result in a separate call. This influences how the URL is built.

      -
    +
diff --git a/docs/reference/types/ValidationErrorInfo.html b/docs/reference/types/ValidationErrorInfo.html index c92f12d..3bff8f6 100644 --- a/docs/reference/types/ValidationErrorInfo.html +++ b/docs/reference/types/ValidationErrorInfo.html @@ -1 +1 @@ -ValidationErrorInfo | @fal-ai/client - v1.1.0

Type Alias ValidationErrorInfo

ValidationErrorInfo: {
    loc: (string | number)[];
    msg: string;
    type: string;
}
+ValidationErrorInfo | @fal-ai/client - v1.1.1

Type Alias ValidationErrorInfo

ValidationErrorInfo: {
    loc: (string | number)[];
    msg: string;
    type: string;
}
diff --git a/docs/reference/types/WebHookResponse.html b/docs/reference/types/WebHookResponse.html index b10ffea..98ef24b 100644 --- a/docs/reference/types/WebHookResponse.html +++ b/docs/reference/types/WebHookResponse.html @@ -1,4 +1,4 @@ -WebHookResponse | @fal-ai/client - v1.1.0

Type Alias WebHookResponse<Payload>

WebHookResponse<Payload>: {
    error: never;
    payload: Payload;
    request_id: string;
    status: "OK";
} | {
    error: string;
    payload: Payload;
    request_id: string;
    status: "ERROR";
}

Represents the response from a WebHook request. +WebHookResponse | @fal-ai/client - v1.1.1

Type Alias WebHookResponse<Payload>

WebHookResponse<Payload>: {
    error: never;
    payload: Payload;
    request_id: string;
    status: "OK";
} | {
    error: string;
    payload: Payload;
    request_id: string;
    status: "ERROR";
}

Represents the response from a WebHook request. This is a union type that varies based on the status property.

Type Parameters

  • Payload = any

    The type of the payload in the response. It defaults to any, allowing for flexibility in specifying the structure of the payload.

    @@ -10,4 +10,4 @@ allowing for flexibility in specifying the structure of the payload.

  • payload: Payload

    The payload of the response, structure determined by the Payload type.

  • request_id: string

    The unique identifier for the request.

  • status: "ERROR"

    Indicates an unsuccessful response.

    -
+
diff --git a/docs/reference/variables/fal.html b/docs/reference/variables/fal.html index 9d6b341..ad41c35 100644 --- a/docs/reference/variables/fal.html +++ b/docs/reference/variables/fal.html @@ -1,3 +1,3 @@ -fal | @fal-ai/client - v1.1.0

Variable falConst

fal: SingletonFalClient = ...

Creates a singleton instance of the client. This is useful as a compatibility +fal | @fal-ai/client - v1.1.1

Variable falConst

fal: SingletonFalClient = ...

Creates a singleton instance of the client. This is useful as a compatibility layer for existing code that uses the clients version prior to 1.0.0.

-
+
diff --git a/libs/client/package.json b/libs/client/package.json index c342849..306350c 100644 --- a/libs/client/package.json +++ b/libs/client/package.json @@ -1,7 +1,7 @@ { "name": "@fal-ai/client", "description": "The fal.ai client for JavaScript and TypeScript", - "version": "1.1.0", + "version": "1.1.1", "license": "MIT", "repository": { "type": "git", diff --git a/libs/client/src/queue.ts b/libs/client/src/queue.ts index 922f2ed..a663b70 100644 --- a/libs/client/src/queue.ts +++ b/libs/client/src/queue.ts @@ -3,6 +3,7 @@ import { buildUrl, dispatchRequest } from "./request"; import { resultResponseHandler } from "./response"; import { StorageClient } from "./storage"; import { FalStream, StreamingConnectionMode } from "./streaming"; +import { EndpointType, InputType, OutputType } from "./types/client"; import { CompletedQueueStatus, InQueueQueueStatus, @@ -152,9 +153,9 @@ export interface QueueClient { * @param options - Options to configure how the request is run. * @returns A promise that resolves to the result of enqueuing the request. */ - submit( - endpointId: string, - options: SubmitOptions, + submit( + endpointId: Id, + options: SubmitOptions>, ): Promise; /** @@ -198,10 +199,10 @@ export interface QueueClient { * @param options - Options to configure how the request is run. * @returns A promise that resolves to the result of the request. */ - result( - endpointId: string, + result( + endpointId: Id, options: BaseQueueOptions, - ): Promise>; + ): Promise>>; /** * Cancels a request in the queue.