Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bilby91 why change this to never?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mrlubos The never is needed because of a type conflict that this PR introduces. Here's the full context:

What changed in SseFn (line 159 in each client's types.gen.ts):

  type SseFn = <TData = unknown, TError = unknown, ...>(
  -  options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
  +  options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
  ) => Promise<ServerSentEventsResult<TData, TError>>;

Only the options parameter changed. The return type still uses TData, so stream typing is unaffected.

Why it's needed: This PR adds TResponse to the SDK Options type for SSE endpoints. The generated code now looks like:

  export const eventSubscribe = <ThrowOnError extends boolean = false>(
    options?: Options<EventSubscribeData, ThrowOnError, EventSubscribeResponse>
    //                                                  ^^^^^^^^^^^^^^^^^^^^^^^^
    //                                                  TResponse = Event (unwrapped success type)
  ) => client.sse.get<EventSubscribeResponses, unknown, ThrowOnError>({
    //                ^^^^^^^^^^^^^^^^^^^^^^^^
    //                TData = { 200: Event } (status-code-keyed, for stream unwrapping)
    url: '/event', ...options
  });

Options<..., EventSubscribeResponse> resolves onSseEvent to StreamEvent (via RequestOptions). But client.sse.get expects StreamEvent<{ 200: Event }> (via RequestOptions). These are incompatible when spreading options.

Without never, npx tsgo --noEmit on the sdks package produces 6 errors:

  __snapshots__/opencode/grouped/sdk.gen.ts:804:234 - error TS2345:
    Types of property 'onSseEvent' are incompatible.
      Type '((event: StreamEvent<Event>) => void) | undefined' is not assignable to
           type '((event: StreamEvent<EventSubscribeResponses>) => void) | undefined'.
        Type 'StreamEvent<EventSubscribeResponses>' is not assignable to type 'StreamEvent<Event>'.
          Type 'EventSubscribeResponses' is not assignable to type 'Event'.

  __snapshots__/opencode/grouped/sdk.gen.ts:33:222 - error TS2345:
    Types of property 'onSseEvent' are incompatible.
      Type '((event: StreamEvent<GlobalEvent>) => void) | undefined' is not assignable to
           type '((event: StreamEvent<GlobalEventResponses>) => void) | undefined'.
        Type 'StreamEvent<GlobalEventResponses>' is not assignable to type 'StreamEvent<GlobalEvent>'.
          Type 'GlobalEventResponses' is missing the following properties from type 'GlobalEvent': directory, payload

  Found 6 errors in 3 files.

Using never in SseFn's options parameter resolves this: StreamEvent is assignable to any StreamEvent (since never is the bottom type), so the spread works. SseFn is only used internally as Client.sse.* — users never interac with it directly. The typing users see comes from:

  • SDK Options<..., TResponse> → types onSseEvent as StreamEvent
  • ServerSentEventsResult (return type, unchanged) → types stream as Event

Verification: I added a type-level test at packages/openapi-ts-tests/sdks/test/sse-typecheck.ts that exercises both paths against the opencode SDK snapshots:

  // 1. onSseEvent — event.data is correctly typed as Event
  eventSubscribe({
    onSseEvent: (event) => {
      event.data satisfies Event;
      if (event.data.type === 'session.created') {
        event.data.properties.info.id satisfies string;
      }
    },
  });

  // 2. stream — yields Event correctly
  const result = await eventSubscribe();
  for await (const event of result.stream) {
    event satisfies Event;
    if (event.type === 'pty.created') {
      event.properties.info.id satisfies string;
    }
  }

The cleaner long-term fix would be to split the TData generic in ServerSentEventsOptions into two — one for onSseEvent and one for stream — so both can be typed independently without never. But that's a larger client-core refactor. Happy to take it on if you'd prefer, but wanted to keep this PR scoped.

) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-angular-common/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-angular/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-angular/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-axios/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ type MethodFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean
) => RequestResult<TData, TError, ThrowOnError>;

type SseFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false>(
options: Omit<RequestOptions<TData, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false>(
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-axios/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-fastify/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-fastify/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-fetch/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-fetch/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-ky/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-ky/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-nestjs/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-nestjs/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-next/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ type MethodFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean
) => RequestResult<TData, TError, ThrowOnError>;

type SseFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false>(
options: Omit<RequestOptions<TData, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false>(
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-next/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-ofetch/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-ofetch/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-openai/src/client/client/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
2 changes: 1 addition & 1 deletion examples/openapi-ts-openai/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { type Client, formDataBodySerializer, type Options as Options2, type TDa
import { client } from './client.gen';
import type { ActivateOrganizationCertificatesData, ActivateOrganizationCertificatesResponses, ActivateProjectCertificatesData, ActivateProjectCertificatesResponses, AddUploadPartData, AddUploadPartResponses, AdminApiKeysCreateData, AdminApiKeysCreateResponses, AdminApiKeysDeleteData, AdminApiKeysDeleteResponses, AdminApiKeysGetData, AdminApiKeysGetResponses, AdminApiKeysListData, AdminApiKeysListResponses, ArchiveProjectData, ArchiveProjectResponses, CancelBatchData, CancelBatchResponses, CancelEvalRunData, CancelEvalRunResponses, CancelFineTuningJobData, CancelFineTuningJobResponses, CancelResponseData, CancelResponseErrors, CancelResponseResponses, CancelRunData, CancelRunResponses, CancelUploadData, CancelUploadResponses, CancelVectorStoreFileBatchData, CancelVectorStoreFileBatchResponses, CompleteUploadData, CompleteUploadResponses, CreateAssistantData, CreateAssistantResponses, CreateBatchData, CreateBatchResponses, CreateChatCompletionData, CreateChatCompletionResponses, CreateCompletionData, CreateCompletionResponses, CreateContainerData, CreateContainerFileData, CreateContainerFileResponses, CreateContainerResponses, CreateEmbeddingData, CreateEmbeddingResponses, CreateEvalData, CreateEvalResponses, CreateEvalRunData, CreateEvalRunErrors, CreateEvalRunResponses, CreateFileData, CreateFileResponses, CreateFineTuningCheckpointPermissionData, CreateFineTuningCheckpointPermissionResponses, CreateFineTuningJobData, CreateFineTuningJobResponses, CreateImageData, CreateImageEditData, CreateImageEditResponses, CreateImageResponses, CreateImageVariationData, CreateImageVariationResponses, CreateMessageData, CreateMessageResponses, CreateModerationData, CreateModerationResponses, CreateProjectData, CreateProjectResponses, CreateProjectServiceAccountData, CreateProjectServiceAccountErrors, CreateProjectServiceAccountResponses, CreateProjectUserData, CreateProjectUserErrors, CreateProjectUserResponses, CreateRealtimeSessionData, CreateRealtimeSessionResponses, CreateRealtimeTranscriptionSessionData, CreateRealtimeTranscriptionSessionResponses, CreateResponseData, CreateResponseResponses, CreateRunData, CreateRunResponses, CreateSpeechData, CreateSpeechResponses, CreateThreadAndRunData, CreateThreadAndRunResponses, CreateThreadData, CreateThreadResponses, CreateTranscriptionData, CreateTranscriptionResponses, CreateTranslationData, CreateTranslationResponses, CreateUploadData, CreateUploadResponses, CreateVectorStoreData, CreateVectorStoreFileBatchData, CreateVectorStoreFileBatchResponses, CreateVectorStoreFileData, CreateVectorStoreFileResponses, CreateVectorStoreResponses, DeactivateOrganizationCertificatesData, DeactivateOrganizationCertificatesResponses, DeactivateProjectCertificatesData, DeactivateProjectCertificatesResponses, DeleteAssistantData, DeleteAssistantResponses, DeleteCertificateData, DeleteCertificateResponses, DeleteChatCompletionData, DeleteChatCompletionResponses, DeleteContainerData, DeleteContainerFileData, DeleteContainerFileResponses, DeleteContainerResponses, DeleteEvalData, DeleteEvalErrors, DeleteEvalResponses, DeleteEvalRunData, DeleteEvalRunErrors, DeleteEvalRunResponses, DeleteFileData, DeleteFileResponses, DeleteFineTuningCheckpointPermissionData, DeleteFineTuningCheckpointPermissionResponses, DeleteInviteData, DeleteInviteResponses, DeleteMessageData, DeleteMessageResponses, DeleteModelData, DeleteModelResponses, DeleteProjectApiKeyData, DeleteProjectApiKeyErrors, DeleteProjectApiKeyResponses, DeleteProjectServiceAccountData, DeleteProjectServiceAccountResponses, DeleteProjectUserData, DeleteProjectUserErrors, DeleteProjectUserResponses, DeleteResponseData, DeleteResponseErrors, DeleteResponseResponses, DeleteThreadData, DeleteThreadResponses, DeleteUserData, DeleteUserResponses, DeleteVectorStoreData, DeleteVectorStoreFileData, DeleteVectorStoreFileResponses, DeleteVectorStoreResponses, DownloadFileData, DownloadFileResponses, GetAssistantData, GetAssistantResponses, GetCertificateData, GetCertificateResponses, GetChatCompletionData, GetChatCompletionMessagesData, GetChatCompletionMessagesResponses, GetChatCompletionResponses, GetEvalData, GetEvalResponses, GetEvalRunData, GetEvalRunOutputItemData, GetEvalRunOutputItemResponses, GetEvalRunOutputItemsData, GetEvalRunOutputItemsResponses, GetEvalRunResponses, GetEvalRunsData, GetEvalRunsResponses, GetMessageData, GetMessageResponses, GetResponseData, GetResponseResponses, GetRunData, GetRunResponses, GetRunStepData, GetRunStepResponses, GetThreadData, GetThreadResponses, GetVectorStoreData, GetVectorStoreFileBatchData, GetVectorStoreFileBatchResponses, GetVectorStoreFileData, GetVectorStoreFileResponses, GetVectorStoreResponses, InviteUserData, InviteUserResponses, ListAssistantsData, ListAssistantsResponses, ListAuditLogsData, ListAuditLogsResponses, ListBatchesData, ListBatchesResponses, ListChatCompletionsData, ListChatCompletionsResponses, ListContainerFilesData, ListContainerFilesResponses, ListContainersData, ListContainersResponses, ListEvalsData, ListEvalsResponses, ListFilesData, ListFilesInVectorStoreBatchData, ListFilesInVectorStoreBatchResponses, ListFilesResponses, ListFineTuningCheckpointPermissionsData, ListFineTuningCheckpointPermissionsResponses, ListFineTuningEventsData, ListFineTuningEventsResponses, ListFineTuningJobCheckpointsData, ListFineTuningJobCheckpointsResponses, ListInputItemsData, ListInputItemsResponses, ListInvitesData, ListInvitesResponses, ListMessagesData, ListMessagesResponses, ListModelsData, ListModelsResponses, ListOrganizationCertificatesData, ListOrganizationCertificatesResponses, ListPaginatedFineTuningJobsData, ListPaginatedFineTuningJobsResponses, ListProjectApiKeysData, ListProjectApiKeysResponses, ListProjectCertificatesData, ListProjectCertificatesResponses, ListProjectRateLimitsData, ListProjectRateLimitsResponses, ListProjectsData, ListProjectServiceAccountsData, ListProjectServiceAccountsErrors, ListProjectServiceAccountsResponses, ListProjectsResponses, ListProjectUsersData, ListProjectUsersErrors, ListProjectUsersResponses, ListRunsData, ListRunsResponses, ListRunStepsData, ListRunStepsResponses, ListUsersData, ListUsersResponses, ListVectorStoreFilesData, ListVectorStoreFilesResponses, ListVectorStoresData, ListVectorStoresResponses, ModifyAssistantData, ModifyAssistantResponses, ModifyCertificateData, ModifyCertificateResponses, ModifyMessageData, ModifyMessageResponses, ModifyProjectData, ModifyProjectErrors, ModifyProjectResponses, ModifyProjectUserData, ModifyProjectUserErrors, ModifyProjectUserResponses, ModifyRunData, ModifyRunResponses, ModifyThreadData, ModifyThreadResponses, ModifyUserData, ModifyUserResponses, ModifyVectorStoreData, ModifyVectorStoreResponses, PauseFineTuningJobData, PauseFineTuningJobResponses, ResumeFineTuningJobData, ResumeFineTuningJobResponses, RetrieveBatchData, RetrieveBatchResponses, RetrieveContainerData, RetrieveContainerFileContentData, RetrieveContainerFileContentResponses, RetrieveContainerFileData, RetrieveContainerFileResponses, RetrieveContainerResponses, RetrieveFileData, RetrieveFileResponses, RetrieveFineTuningJobData, RetrieveFineTuningJobResponses, RetrieveInviteData, RetrieveInviteResponses, RetrieveModelData, RetrieveModelResponses, RetrieveProjectApiKeyData, RetrieveProjectApiKeyResponses, RetrieveProjectData, RetrieveProjectResponses, RetrieveProjectServiceAccountData, RetrieveProjectServiceAccountResponses, RetrieveProjectUserData, RetrieveProjectUserResponses, RetrieveUserData, RetrieveUserResponses, RetrieveVectorStoreFileContentData, RetrieveVectorStoreFileContentResponses, RunGraderData, RunGraderResponses, SearchVectorStoreData, SearchVectorStoreResponses, SubmitToolOuputsToRunData, SubmitToolOuputsToRunResponses, UpdateChatCompletionData, UpdateChatCompletionResponses, UpdateEvalData, UpdateEvalResponses, UpdateProjectRateLimitsData, UpdateProjectRateLimitsErrors, UpdateProjectRateLimitsResponses, UpdateVectorStoreFileAttributesData, UpdateVectorStoreFileAttributesResponses, UploadCertificateData, UploadCertificateResponses, UsageAudioSpeechesData, UsageAudioSpeechesResponses, UsageAudioTranscriptionsData, UsageAudioTranscriptionsResponses, UsageCodeInterpreterSessionsData, UsageCodeInterpreterSessionsResponses, UsageCompletionsData, UsageCompletionsResponses, UsageCostsData, UsageCostsResponses, UsageEmbeddingsData, UsageEmbeddingsResponses, UsageImagesData, UsageImagesResponses, UsageModerationsData, UsageModerationsResponses, UsageVectorStoresData, UsageVectorStoresResponses, ValidateGraderData, ValidateGraderResponses } from './types.gen';

export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
3 changes: 2 additions & 1 deletion examples/openapi-ts-pinia-colada/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ type SseFn = <
ThrowOnError extends boolean = false,
TResponseStyle extends ResponseStyle = 'fields',
>(
options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>,
options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>,
) => Promise<ServerSentEventsResult<TData, TError>>;

type RequestFn = <
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ import type {
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean,
> = Options2<TData, ThrowOnError> & {
TResponse = unknown,
> = Options2<TData, ThrowOnError, TResponse> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
Expand Down
Loading
Loading