From e618cbc4470bf66cf7f905053d1a5bf368aefd3a Mon Sep 17 00:00:00 2001 From: opencode Date: Wed, 17 Sep 2025 07:14:33 +0000 Subject: release: v0.9.8 --- packages/sdk/js/src/gen/client/client.gen.ts | 98 +++++++++------------------- packages/sdk/js/src/gen/client/types.gen.ts | 12 ++-- packages/sdk/js/src/gen/client/utils.gen.ts | 12 +--- 3 files changed, 40 insertions(+), 82 deletions(-) (limited to 'packages/sdk/js/src/gen/client') diff --git a/packages/sdk/js/src/gen/client/client.gen.ts b/packages/sdk/js/src/gen/client/client.gen.ts index aab8586ee..34a8d0bec 100644 --- a/packages/sdk/js/src/gen/client/client.gen.ts +++ b/packages/sdk/js/src/gen/client/client.gen.ts @@ -1,8 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts import { createSseClient } from "../core/serverSentEvents.gen.js" -import type { HttpMethod } from "../core/types.gen.js" -import { getValidRequestBody } from "../core/utils.gen.js" import type { Client, Config, RequestOptions, ResolvedRequestOptions } from "./types.gen.js" import { buildUrl, @@ -51,12 +49,12 @@ export const createClient = (config: Config = {}): Client => { await opts.requestValidator(opts) } - if (opts.body !== undefined && opts.bodySerializer) { + if (opts.body && opts.bodySerializer) { opts.serializedBody = opts.bodySerializer(opts.body) } // remove Content-Type header if body is empty to avoid sending invalid requests - if (opts.body === undefined || opts.serializedBody === "") { + if (opts.serializedBody === undefined || opts.serializedBody === "") { opts.headers.delete("Content-Type") } @@ -71,7 +69,7 @@ export const createClient = (config: Config = {}): Client => { const requestInit: ReqInit = { redirect: "follow", ...opts, - body: getValidRequestBody(opts), + body: opts.serializedBody, } let request = new Request(url, requestInit) @@ -99,36 +97,18 @@ export const createClient = (config: Config = {}): Client => { } if (response.ok) { - const parseAs = - (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json" - if (response.status === 204 || response.headers.get("Content-Length") === "0") { - let emptyData: any - switch (parseAs) { - case "arrayBuffer": - case "blob": - case "text": - emptyData = await response[parseAs]() - break - case "formData": - emptyData = new FormData() - break - case "stream": - emptyData = response.body - break - case "json": - default: - emptyData = {} - break - } return opts.responseStyle === "data" - ? emptyData + ? {} : { - data: emptyData, + data: {}, ...result, } } + const parseAs = + (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json" + let data: any switch (parseAs) { case "arrayBuffer": @@ -198,53 +178,35 @@ export const createClient = (config: Config = {}): Client => { } } - const makeMethodFn = (method: Uppercase) => (options: RequestOptions) => request({ ...options, method }) - - const makeSseFn = (method: Uppercase) => async (options: RequestOptions) => { - const { opts, url } = await beforeRequest(options) - return createSseClient({ - ...opts, - body: opts.body as BodyInit | null | undefined, - headers: opts.headers as unknown as Record, - method, - onRequest: async (url, init) => { - let request = new Request(url, init) - for (const fn of interceptors.request._fns) { - if (fn) { - request = await fn(request, opts) - } - } - return request - }, - url, - }) + const makeMethod = (method: Required["method"]) => { + const fn = (options: RequestOptions) => request({ ...options, method }) + fn.sse = async (options: RequestOptions) => { + const { opts, url } = await beforeRequest(options) + return createSseClient({ + ...opts, + body: opts.body as BodyInit | null | undefined, + headers: opts.headers as unknown as Record, + method, + url, + }) + } + return fn } return { buildUrl, - connect: makeMethodFn("CONNECT"), - delete: makeMethodFn("DELETE"), - get: makeMethodFn("GET"), + connect: makeMethod("CONNECT"), + delete: makeMethod("DELETE"), + get: makeMethod("GET"), getConfig, - head: makeMethodFn("HEAD"), + head: makeMethod("HEAD"), interceptors, - options: makeMethodFn("OPTIONS"), - patch: makeMethodFn("PATCH"), - post: makeMethodFn("POST"), - put: makeMethodFn("PUT"), + options: makeMethod("OPTIONS"), + patch: makeMethod("PATCH"), + post: makeMethod("POST"), + put: makeMethod("PUT"), request, setConfig, - sse: { - connect: makeSseFn("CONNECT"), - delete: makeSseFn("DELETE"), - get: makeSseFn("GET"), - head: makeSseFn("HEAD"), - options: makeSseFn("OPTIONS"), - patch: makeSseFn("PATCH"), - post: makeSseFn("POST"), - put: makeSseFn("PUT"), - trace: makeSseFn("TRACE"), - }, - trace: makeMethodFn("TRACE"), + trace: makeMethod("TRACE"), } as Client } diff --git a/packages/sdk/js/src/gen/client/types.gen.ts b/packages/sdk/js/src/gen/client/types.gen.ts index f16d2cd57..db8e544cf 100644 --- a/packages/sdk/js/src/gen/client/types.gen.ts +++ b/packages/sdk/js/src/gen/client/types.gen.ts @@ -20,7 +20,7 @@ export interface Config * * @default globalThis.fetch */ - fetch?: typeof fetch + fetch?: (request: Request) => ReturnType /** * Please don't use the Fetch client for Next.js applications. The `next` * options won't have any effect. @@ -128,7 +128,7 @@ export interface ClientOptions { throwOnError?: boolean } -type MethodFn = < +type MethodFnBase = < TData = unknown, TError = unknown, ThrowOnError extends boolean = false, @@ -137,7 +137,7 @@ type MethodFn = < options: Omit, "method">, ) => RequestResult -type SseFn = < +type MethodFnServerSentEvents = < TData = unknown, TError = unknown, ThrowOnError extends boolean = false, @@ -146,6 +146,10 @@ type SseFn = < options: Omit, "method">, ) => Promise> +type MethodFn = MethodFnBase & { + sse: MethodFnServerSentEvents +} + type RequestFn = < TData = unknown, TError = unknown, @@ -167,7 +171,7 @@ type BuildUrlFn = < options: Pick & Options, ) => string -export type Client = CoreClient & { +export type Client = CoreClient & { interceptors: Middleware } diff --git a/packages/sdk/js/src/gen/client/utils.gen.ts b/packages/sdk/js/src/gen/client/utils.gen.ts index 71d52f776..209bfbe8e 100644 --- a/packages/sdk/js/src/gen/client/utils.gen.ts +++ b/packages/sdk/js/src/gen/client/utils.gen.ts @@ -162,22 +162,14 @@ export const mergeConfigs = (a: Config, b: Config): Config => { return config } -const headersEntries = (headers: Headers): Array<[string, string]> => { - const entries: Array<[string, string]> = [] - headers.forEach((value, key) => { - entries.push([key, value]) - }) - return entries -} - export const mergeHeaders = (...headers: Array["headers"] | undefined>): Headers => { const mergedHeaders = new Headers() for (const header of headers) { - if (!header) { + if (!header || typeof header !== "object") { continue } - const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header) + const iterator = header instanceof Headers ? header.entries() : Object.entries(header) for (const [key, value] of iterator) { if (value === null) { -- cgit v1.2.3