@hey-api/client-fetch
Version:
🚀 Fetch API client for `@hey-api/openapi-ts` codegen.
1 lines • 37.1 kB
Source Map (JSON)
{"version":3,"sources":["../../client-core/src/auth.ts","../../client-core/src/bodySerializer.ts","../../client-core/src/pathSerializer.ts","../src/utils.ts","../src/client.ts"],"names":["getAuthToken","auth","callback","token","serializeFormDataPair","data","key","value","serializeUrlSearchParamsPair","formDataBodySerializer","body","v","jsonBodySerializer","urlSearchParamsBodySerializer","separatorArrayExplode","style","separatorArrayNoExplode","separatorObjectExplode","serializeArrayParam","allowReserved","explode","name","joinedValues","separator","serializePrimitiveParam","serializeObjectParam","values","PATH_PARAM_RE","defaultPathSerializer","path","_url","url","matches","match","h","g","c","replaceValue","createQuerySerializer","array","object","queryParams","search","getParseAs","contentType","cleanContent","type","setAuthParams","security","options","x","buildUrl","getUrl","baseUrl","query","querySerializer","pathUrl","mergeConfigs","a","b","config","mergeHeaders","headers","mergedHeaders","header","iterator","Interceptors","fn","index","createInterceptors","defaultQuerySerializer","defaultHeaders","createConfig","override","z","createClient","_config","getConfig","setConfig","interceptors","request","opts","requestInit","_fetch","response","result","parseAs","error","finalError"],"mappings":"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","file":"index.js","sourcesContent":["export type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token =\n typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","import type {\n ArrayStyle,\n ObjectStyle,\n SerializerOptions,\n} from './pathSerializer';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: any) => any;\n\nexport interface QuerySerializerOptions {\n allowReserved?: boolean;\n array?: SerializerOptions<ArrayStyle>;\n object?: SerializerOptions<ObjectStyle>;\n}\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown) => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (\n data: URLSearchParams,\n key: string,\n value: unknown,\n) => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ) => {\n const data = new FormData();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: <T>(body: T) =>\n JSON.stringify(body, (key, value) =>\n typeof value === 'bigint' ? value.toString() : value,\n ),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ) => {\n const data = new URLSearchParams();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","interface SerializeOptions<T>\n extends SerializePrimitiveOptions,\n SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n}) => {\n if (value instanceof Date) {\n return `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [\n ...values,\n key,\n allowReserved ? (v as string) : encodeURIComponent(v as string),\n ];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n","import type {\n QuerySerializer,\n QuerySerializerOptions,\n} from '@hey-api/client-core';\nimport {\n getAuthToken,\n jsonBodySerializer,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '@hey-api/client-core';\n\nimport type { Client, ClientOptions, Config, RequestOptions } from './types';\n\ninterface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nconst PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\ntype ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\ntype ArraySeparatorStyle = ArrayStyle | MatrixStyle;\n\nconst defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(\n match,\n serializeArrayParam({ explode, name, style, value }),\n );\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const createQuerySerializer = <T = unknown>({\n allowReserved,\n array,\n object,\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n let search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n search = [\n ...search,\n serializeArrayParam({\n allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...array,\n }),\n ];\n continue;\n }\n\n if (typeof value === 'object') {\n search = [\n ...search,\n serializeObjectParam({\n allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...object,\n }),\n ];\n continue;\n }\n\n search = [\n ...search,\n serializePrimitiveParam({\n allowReserved,\n name,\n value: value as string,\n }),\n ];\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (\n contentType: string | null,\n): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (\n cleanContent.startsWith('application/json') ||\n cleanContent.endsWith('+json')\n ) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) =>\n cleanContent.startsWith(type),\n )\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n\n return;\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) => {\n const url = getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header || typeof header !== 'object') {\n continue;\n }\n\n const iterator =\n header instanceof Headers ? header.entries() : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n response: Res,\n request: Req,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (\n request: Req,\n options: Options,\n) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n _fns: Interceptor[];\n\n constructor() {\n this._fns = [];\n }\n\n clear() {\n this._fns = [];\n }\n\n exists(fn: Interceptor) {\n return this._fns.indexOf(fn) !== -1;\n }\n\n eject(fn: Interceptor) {\n const index = this._fns.indexOf(fn);\n if (index !== -1) {\n this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)];\n }\n }\n\n use(fn: Interceptor) {\n this._fns = [...this._fns, fn];\n }\n}\n\n// `createInterceptors()` response, meant for external use as it does not\n// expose internals\nexport interface Middleware<Req, Res, Err, Options> {\n error: Pick<\n Interceptors<ErrInterceptor<Err, Res, Req, Options>>,\n 'eject' | 'use'\n >;\n request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;\n response: Pick<\n Interceptors<ResInterceptor<Res, Req, Options>>,\n 'eject' | 'use'\n >;\n}\n\n// do not add `Middleware` as return type so we can use _fns internally\nexport const createInterceptors = <Req, Res, Err, Options>() => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","import type { Client, Config, RequestOptions } from './types';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<\n Request,\n Response,\n unknown,\n RequestOptions\n >();\n\n // @ts-expect-error\n const request: Client['request'] = async (options) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n };\n\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n\n if (opts.body && opts.bodySerializer) {\n opts.body = opts.bodySerializer(opts.body);\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.body === '') {\n opts.headers.delete('Content-Type');\n }\n\n const url = buildUrl(opts);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n };\n\n let request = new Request(url, requestInit);\n\n for (const fn of interceptors.request._fns) {\n request = await fn(request, opts);\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n let response = await _fetch(request);\n\n for (const fn of interceptors.response._fns) {\n response = await fn(response, request, opts);\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n if (\n response.status === 204 ||\n response.headers.get('Content-Length') === '0'\n ) {\n return {\n data: {},\n ...result,\n };\n }\n\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (parseAs === 'stream') {\n return {\n data: response.body,\n ...result,\n };\n }\n\n let data = await response[parseAs]();\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return {\n data,\n ...result,\n };\n }\n\n let error = await response.text();\n\n try {\n error = JSON.parse(error);\n } catch {\n // noop\n }\n\n let finalError = error;\n\n for (const fn of interceptors.error._fns) {\n finalError = (await fn(error, response, request, opts)) as string;\n }\n\n finalError = finalError || ({} as string);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n return {\n error: finalError,\n ...result,\n };\n };\n\n return {\n buildUrl,\n connect: (options) => request({ ...options, method: 'CONNECT' }),\n delete: (options) => request({ ...options, method: 'DELETE' }),\n get: (options) => request({ ...options, method: 'GET' }),\n getConfig,\n head: (options) => request({ ...options, method: 'HEAD' }),\n interceptors,\n options: (options) => request({ ...options, method: 'OPTIONS' }),\n patch: (options) => request({ ...options, method: 'PATCH' }),\n post: (options) => request({ ...options, method: 'POST' }),\n put: (options) => request({ ...options, method: 'PUT' }),\n request,\n setConfig,\n trace: (options) => request({ ...options, method: 'TRACE' }),\n };\n};\n"]}