diff options
| author | Dax Raad <[email protected]> | 2025-08-23 12:21:58 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-08-23 12:21:58 -0400 |
| commit | 732b67f8ce65ca8154574088abfbce06dd5054bb (patch) | |
| tree | 7015c72112c26424f8213555172f2206ea4c1928 /packages/sdk/js/src/gen/client | |
| parent | d47bb967849ff4a38c8926ef2450ffa883ff477f (diff) | |
| download | opencode-732b67f8ce65ca8154574088abfbce06dd5054bb.tar.gz opencode-732b67f8ce65ca8154574088abfbce06dd5054bb.zip | |
ci: stuff
Diffstat (limited to 'packages/sdk/js/src/gen/client')
| -rw-r--r-- | packages/sdk/js/src/gen/client/client.ts (renamed from packages/sdk/js/src/gen/client/client.gen.ts) | 59 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/client/index.ts | 21 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/client/types.ts (renamed from packages/sdk/js/src/gen/client/types.gen.ts) | 67 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/client/utils.ts (renamed from packages/sdk/js/src/gen/client/utils.gen.ts) | 142 |
4 files changed, 155 insertions, 134 deletions
diff --git a/packages/sdk/js/src/gen/client/client.gen.ts b/packages/sdk/js/src/gen/client/client.ts index 34a8d0bec..46a62694c 100644 --- a/packages/sdk/js/src/gen/client/client.gen.ts +++ b/packages/sdk/js/src/gen/client/client.ts @@ -1,7 +1,4 @@ -// This file is auto-generated by @hey-api/openapi-ts - -import { createSseClient } from "../core/serverSentEvents.gen.js" -import type { Client, Config, RequestOptions, ResolvedRequestOptions } from "./types.gen.js" +import type { Client, Config, RequestOptions } from "./types.js" import { buildUrl, createConfig, @@ -10,7 +7,7 @@ import { mergeConfigs, mergeHeaders, setAuthParams, -} from "./utils.gen.js" +} from "./utils.js" type ReqInit = Omit<RequestInit, "body" | "headers"> & { body?: any @@ -27,15 +24,14 @@ export const createClient = (config: Config = {}): Client => { return getConfig() } - const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>() + const interceptors = createInterceptors<Request, Response, unknown, RequestOptions>() - const beforeRequest = async (options: RequestOptions) => { + const request: Client["request"] = async (options) => { const opts = { ..._config, ...options, fetch: options.fetch ?? _config.fetch ?? globalThis.fetch, headers: mergeHeaders(_config.headers, options.headers), - serializedBody: undefined, } if (opts.security) { @@ -50,26 +46,18 @@ export const createClient = (config: Config = {}): Client => { } if (opts.body && opts.bodySerializer) { - opts.serializedBody = opts.bodySerializer(opts.body) + opts.body = opts.bodySerializer(opts.body) } // remove Content-Type header if body is empty to avoid sending invalid requests - if (opts.serializedBody === undefined || opts.serializedBody === "") { + if (opts.body === undefined || opts.body === "") { opts.headers.delete("Content-Type") } const url = buildUrl(opts) - - return { opts, url } - } - - const request: Client["request"] = async (options) => { - // @ts-expect-error - const { opts, url } = await beforeRequest(options) const requestInit: ReqInit = { redirect: "follow", ...opts, - body: opts.serializedBody, } let request = new Request(url, requestInit) @@ -178,35 +166,20 @@ export const createClient = (config: Config = {}): Client => { } } - const makeMethod = (method: Required<Config>["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<string, string>, - method, - url, - }) - } - return fn - } - return { buildUrl, - connect: makeMethod("CONNECT"), - delete: makeMethod("DELETE"), - get: makeMethod("GET"), + connect: (options) => request({ ...options, method: "CONNECT" }), + delete: (options) => request({ ...options, method: "DELETE" }), + get: (options) => request({ ...options, method: "GET" }), getConfig, - head: makeMethod("HEAD"), + head: (options) => request({ ...options, method: "HEAD" }), interceptors, - options: makeMethod("OPTIONS"), - patch: makeMethod("PATCH"), - post: makeMethod("POST"), - put: makeMethod("PUT"), + options: (options) => request({ ...options, method: "OPTIONS" }), + patch: (options) => request({ ...options, method: "PATCH" }), + post: (options) => request({ ...options, method: "POST" }), + put: (options) => request({ ...options, method: "PUT" }), request, setConfig, - trace: makeMethod("TRACE"), - } as Client + trace: (options) => request({ ...options, method: "TRACE" }), + } } diff --git a/packages/sdk/js/src/gen/client/index.ts b/packages/sdk/js/src/gen/client/index.ts index 06f21e3d8..ce89a34cc 100644 --- a/packages/sdk/js/src/gen/client/index.ts +++ b/packages/sdk/js/src/gen/client/index.ts @@ -1,14 +1,8 @@ -// This file is auto-generated by @hey-api/openapi-ts - -export type { Auth } from "../core/auth.gen.js" -export type { QuerySerializerOptions } from "../core/bodySerializer.gen.js" -export { - formDataBodySerializer, - jsonBodySerializer, - urlSearchParamsBodySerializer, -} from "../core/bodySerializer.gen.js" -export { buildClientParams } from "../core/params.gen.js" -export { createClient } from "./client.gen.js" +export type { Auth } from "../core/auth.js" +export type { QuerySerializerOptions } from "../core/bodySerializer.js" +export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer } from "../core/bodySerializer.js" +export { buildClientParams } from "../core/params.js" +export { createClient } from "./client.js" export type { Client, ClientOptions, @@ -18,8 +12,7 @@ export type { OptionsLegacyParser, RequestOptions, RequestResult, - ResolvedRequestOptions, ResponseStyle, TDataShape, -} from "./types.gen.js" -export { createConfig, mergeHeaders } from "./utils.gen.js" +} from "./types.js" +export { createConfig, mergeHeaders } from "./utils.js" diff --git a/packages/sdk/js/src/gen/client/types.gen.ts b/packages/sdk/js/src/gen/client/types.ts index db8e544cf..f3b116bae 100644 --- a/packages/sdk/js/src/gen/client/types.gen.ts +++ b/packages/sdk/js/src/gen/client/types.ts @@ -1,9 +1,6 @@ -// This file is auto-generated by @hey-api/openapi-ts - -import type { Auth } from "../core/auth.gen.js" -import type { ServerSentEventsOptions, ServerSentEventsResult } from "../core/serverSentEvents.gen.js" -import type { Client as CoreClient, Config as CoreConfig } from "../core/types.gen.js" -import type { Middleware } from "./utils.gen.js" +import type { Auth } from "../core/auth.js" +import type { Client as CoreClient, Config as CoreConfig } from "../core/types.js" +import type { Middleware } from "./utils.js" export type ResponseStyle = "data" | "fields" @@ -52,18 +49,13 @@ export interface Config<T extends ClientOptions = ClientOptions> } export interface RequestOptions< - TData = unknown, TResponseStyle extends ResponseStyle = "fields", ThrowOnError extends boolean = boolean, Url extends string = string, > extends Config<{ - responseStyle: TResponseStyle - throwOnError: ThrowOnError - }>, - Pick< - ServerSentEventsOptions<TData>, - "onSseError" | "onSseEvent" | "sseDefaultRetryDelay" | "sseMaxRetryAttempts" | "sseMaxRetryDelay" - > { + responseStyle: TResponseStyle + throwOnError: ThrowOnError + }> { /** * Any body that you want to add to your request. * @@ -79,14 +71,6 @@ export interface RequestOptions< url: Url } -export interface ResolvedRequestOptions< - TResponseStyle extends ResponseStyle = "fields", - ThrowOnError extends boolean = boolean, - Url extends string = string, -> extends RequestOptions<unknown, TResponseStyle, ThrowOnError, Url> { - serializedBody?: string -} - export type RequestResult< TData = unknown, TError = unknown, @@ -128,36 +112,23 @@ export interface ClientOptions { throwOnError?: boolean } -type MethodFnBase = < +type MethodFn = < TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = "fields", >( - options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, "method">, + options: Omit<RequestOptions<TResponseStyle, ThrowOnError>, "method">, ) => RequestResult<TData, TError, ThrowOnError, TResponseStyle> -type MethodFnServerSentEvents = < - TData = unknown, - TError = unknown, - ThrowOnError extends boolean = false, - TResponseStyle extends ResponseStyle = "fields", ->( - options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, "method">, -) => Promise<ServerSentEventsResult<TData, TError>> - -type MethodFn = MethodFnBase & { - sse: MethodFnServerSentEvents -} - type RequestFn = < TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = "fields", >( - options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, "method"> & - Pick<Required<RequestOptions<TData, TResponseStyle, ThrowOnError>>, "method">, + options: Omit<RequestOptions<TResponseStyle, ThrowOnError>, "method"> & + Pick<Required<RequestOptions<TResponseStyle, ThrowOnError>>, "method">, ) => RequestResult<TData, TError, ThrowOnError, TResponseStyle> type BuildUrlFn = < @@ -172,7 +143,7 @@ type BuildUrlFn = < ) => string export type Client = CoreClient<RequestFn, Config, MethodFn, BuildUrlFn> & { - interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions> + interceptors: Middleware<Request, Response, unknown, RequestOptions> } /** @@ -200,10 +171,8 @@ type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>> export type Options< TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, - TResponse = unknown, TResponseStyle extends ResponseStyle = "fields", -> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, "body" | "path" | "query" | "url"> & - Omit<TData, "url"> +> = OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "body" | "path" | "query" | "url"> & Omit<TData, "url"> export type OptionsLegacyParser< TData = unknown, @@ -211,12 +180,12 @@ export type OptionsLegacyParser< TResponseStyle extends ResponseStyle = "fields", > = TData extends { body?: any } ? TData extends { headers?: any } - ? OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "body" | "headers" | "url"> & TData - : OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "body" | "url"> & + ? OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "body" | "headers" | "url"> & TData + : OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "body" | "url"> & TData & - Pick<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "headers"> + Pick<RequestOptions<TResponseStyle, ThrowOnError>, "headers"> : TData extends { headers?: any } - ? OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "headers" | "url"> & + ? OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "headers" | "url"> & TData & - Pick<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "body"> - : OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "url"> & TData + Pick<RequestOptions<TResponseStyle, ThrowOnError>, "body"> + : OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "url"> & TData diff --git a/packages/sdk/js/src/gen/client/utils.gen.ts b/packages/sdk/js/src/gen/client/utils.ts index 209bfbe8e..84648c855 100644 --- a/packages/sdk/js/src/gen/client/utils.gen.ts +++ b/packages/sdk/js/src/gen/client/utils.ts @@ -1,11 +1,84 @@ -// This file is auto-generated by @hey-api/openapi-ts +import { getAuthToken } from "../core/auth.js" +import type { QuerySerializer, QuerySerializerOptions } from "../core/bodySerializer.js" +import { jsonBodySerializer } from "../core/bodySerializer.js" +import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from "../core/pathSerializer.js" +import type { Client, ClientOptions, Config, RequestOptions } from "./types.js" + +interface PathSerializer { + path: Record<string, unknown> + url: string +} + +const PATH_PARAM_RE = /\{[^{}]+\}/g + +type ArrayStyle = "form" | "spaceDelimited" | "pipeDelimited" +type MatrixStyle = "label" | "matrix" | "simple" +type ArraySeparatorStyle = ArrayStyle | MatrixStyle -import { getAuthToken } from "../core/auth.gen.js" -import type { QuerySerializerOptions } from "../core/bodySerializer.gen.js" -import { jsonBodySerializer } from "../core/bodySerializer.gen.js" -import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from "../core/pathSerializer.gen.js" -import { getUrl } from "../core/utils.gen.js" -import type { Client, ClientOptions, Config, RequestOptions } from "./types.gen.js" +const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => { + let url = _url + const matches = _url.match(PATH_PARAM_RE) + if (matches) { + for (const match of matches) { + let explode = false + let name = match.substring(1, match.length - 1) + let style: ArraySeparatorStyle = "simple" + + if (name.endsWith("*")) { + explode = true + name = name.substring(0, name.length - 1) + } + + if (name.startsWith(".")) { + name = name.substring(1) + style = "label" + } else if (name.startsWith(";")) { + name = name.substring(1) + style = "matrix" + } + + const value = path[name] + + if (value === undefined || value === null) { + continue + } + + if (Array.isArray(value)) { + url = url.replace(match, serializeArrayParam({ explode, name, style, value })) + continue + } + + if (typeof value === "object") { + url = url.replace( + match, + serializeObjectParam({ + explode, + name, + style, + value: value as Record<string, unknown>, + valueOnly: true, + }), + ) + continue + } + + if (style === "matrix") { + url = url.replace( + match, + `;${serializePrimitiveParam({ + name, + value: value as string, + })}`, + ) + continue + } + + const replaceValue = encodeURIComponent(style === "label" ? `.${value as string}` : (value as string)) + url = url.replace(match, replaceValue) + } + } + return url +} export const createQuerySerializer = <T = unknown>({ allowReserved, array, object }: QuerySerializerOptions = {}) => { const querySerializer = (queryParams: T) => { @@ -88,21 +161,6 @@ export const getParseAs = (contentType: string | null): Exclude<Config["parseAs" return } -const checkForExistence = ( - options: Pick<RequestOptions, "auth" | "query"> & { - headers: Headers - }, - name?: string, -): boolean => { - if (!name) { - return false - } - if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) { - return true - } - return false -} - export const setAuthParams = async ({ security, ...options @@ -111,10 +169,6 @@ export const setAuthParams = async ({ headers: Headers }) => { for (const auth of security) { - if (checkForExistence(options, auth.name)) { - continue - } - const token = await getAuthToken(auth, options.auth) if (!token) { @@ -138,11 +192,13 @@ export const setAuthParams = async ({ options.headers.set(name, token) break } + + return } } -export const buildUrl: Client["buildUrl"] = (options) => - getUrl({ +export const buildUrl: Client["buildUrl"] = (options) => { + const url = getUrl({ baseUrl: options.baseUrl as string, path: options.path, query: options.query, @@ -152,6 +208,36 @@ export const buildUrl: Client["buildUrl"] = (options) => : createQuerySerializer(options.querySerializer), url: options.url, }) + return url +} + +export const getUrl = ({ + baseUrl, + path, + query, + querySerializer, + url: _url, +}: { + baseUrl?: string + path?: Record<string, unknown> + query?: Record<string, unknown> + querySerializer: QuerySerializer + url: string +}) => { + const pathUrl = _url.startsWith("/") ? _url : `/${_url}` + let url = (baseUrl ?? "") + pathUrl + if (path) { + url = defaultPathSerializer({ path, url }) + } + let search = query ? querySerializer(query) : "" + if (search.startsWith("?")) { + search = search.substring(1) + } + if (search) { + url += `?${search}` + } + return url +} export const mergeConfigs = (a: Config, b: Config): Config => { const config = { ...a, ...b } |
