@zayne-labs/callapi 1.6.16 → 1.6.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{error-BokQ-iQX.d.cts → error-D4EzEII0.d.cts} +85 -83
- package/dist/cjs/index.cjs +5 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +6 -114
- package/dist/cjs/utils/index.cjs.map +1 -1
- package/dist/cjs/utils/index.d.cts +2 -2
- package/dist/esm/{chunk-JG2BPHMX.js → chunk-XF6F72SX.js} +2 -2
- package/dist/esm/chunk-XF6F72SX.js.map +1 -0
- package/dist/esm/{error-BokQ-iQX.d.ts → error-D4EzEII0.d.ts} +85 -83
- package/dist/esm/index.d.ts +6 -114
- package/dist/esm/index.js +7 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -2
- package/dist/esm/utils/index.js +1 -1
- package/package.json +1 -1
- package/dist/esm/chunk-JG2BPHMX.js.map +0 -1
|
@@ -102,7 +102,7 @@ interface CallApiSchemas {
|
|
|
102
102
|
*/
|
|
103
103
|
query?: StandardSchemaV1<Query>;
|
|
104
104
|
}
|
|
105
|
-
interface CallApiValidators<TData =
|
|
105
|
+
interface CallApiValidators<TData = never, TErrorData = never> {
|
|
106
106
|
/**
|
|
107
107
|
* Custom function to validate the response data.
|
|
108
108
|
*/
|
|
@@ -115,75 +115,23 @@ interface CallApiValidators<TData = unknown, TErrorData = unknown> {
|
|
|
115
115
|
}
|
|
116
116
|
type InferSchemaResult<TSchema, TData> = TSchema extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<TSchema> : TData;
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
type JsonPrimitive = boolean | number | string | null | undefined;
|
|
123
|
-
type SerializableObject = Record<keyof object, unknown>;
|
|
124
|
-
type SerializableArray = Array<JsonPrimitive | SerializableArray | SerializableObject> | ReadonlyArray<JsonPrimitive | SerializableArray | SerializableObject>;
|
|
125
|
-
type Body = UnmaskType<RequestInit["body"] | SerializableArray | SerializableObject>;
|
|
126
|
-
type BodyOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["body"], {
|
|
118
|
+
type Params = UnmaskType<Record<string, boolean | number | string> | Array<boolean | number | string>>;
|
|
119
|
+
type Query = UnmaskType<Record<string, boolean | number | string>>;
|
|
120
|
+
type InitURL = UnmaskType<string | URL>;
|
|
121
|
+
interface UrlOptions<TSchemas extends CallApiSchemas> {
|
|
127
122
|
/**
|
|
128
|
-
*
|
|
123
|
+
* URL to be used in the request.
|
|
129
124
|
*/
|
|
130
|
-
|
|
131
|
-
}>;
|
|
132
|
-
type Method = UnmaskType<"CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE" | AnyString>;
|
|
133
|
-
type MethodOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["method"], {
|
|
125
|
+
readonly initURL?: string;
|
|
134
126
|
/**
|
|
135
|
-
*
|
|
136
|
-
* @default "GET"
|
|
127
|
+
* Parameters to be appended to the URL (i.e: /:id)
|
|
137
128
|
*/
|
|
138
|
-
|
|
139
|
-
}>;
|
|
140
|
-
type Headers = UnmaskType<Record<"Authorization", CommonAuthorizationHeaders> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | RequestInit["headers"]>;
|
|
141
|
-
type HeadersOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["headers"], {
|
|
129
|
+
params?: InferSchemaResult<TSchemas["params"], Params>;
|
|
142
130
|
/**
|
|
143
|
-
*
|
|
131
|
+
* Query parameters to append to the URL.
|
|
144
132
|
*/
|
|
145
|
-
|
|
146
|
-
}>;
|
|
147
|
-
interface Register {
|
|
133
|
+
query?: InferSchemaResult<TSchemas["query"], Query>;
|
|
148
134
|
}
|
|
149
|
-
type GlobalMeta = Register extends {
|
|
150
|
-
meta?: infer TMeta extends Record<string, unknown>;
|
|
151
|
-
} ? TMeta : never;
|
|
152
|
-
type MetaOption<TSchemas extends CallApiSchemas> = {
|
|
153
|
-
/**
|
|
154
|
-
* - An optional field you can fill with additional information,
|
|
155
|
-
* to associate with the request, typically used for logging or tracing.
|
|
156
|
-
*
|
|
157
|
-
* - A good use case for this, would be to use the info to handle specific cases in any of the shared interceptors.
|
|
158
|
-
*
|
|
159
|
-
* @example
|
|
160
|
-
* ```ts
|
|
161
|
-
* const callMainApi = callApi.create({
|
|
162
|
-
* baseURL: "https://main-api.com",
|
|
163
|
-
* onResponseError: ({ response, options }) => {
|
|
164
|
-
* if (options.meta?.userId) {
|
|
165
|
-
* console.error(`User ${options.meta.userId} made an error`);
|
|
166
|
-
* }
|
|
167
|
-
* },
|
|
168
|
-
* });
|
|
169
|
-
*
|
|
170
|
-
* const response = await callMainApi({
|
|
171
|
-
* url: "https://example.com/api/data",
|
|
172
|
-
* meta: { userId: "123" },
|
|
173
|
-
* });
|
|
174
|
-
* ```
|
|
175
|
-
*/
|
|
176
|
-
meta?: InferSchemaResult<TSchemas["meta"], GlobalMeta>;
|
|
177
|
-
};
|
|
178
|
-
type ResultModeOption<TErrorData, TResultMode extends ResultModeUnion> = TErrorData extends false ? {
|
|
179
|
-
resultMode: "onlySuccessWithException";
|
|
180
|
-
} : TErrorData extends false | undefined ? {
|
|
181
|
-
resultMode?: "onlySuccessWithException";
|
|
182
|
-
} : undefined extends TResultMode ? {
|
|
183
|
-
resultMode?: TResultMode;
|
|
184
|
-
} : {
|
|
185
|
-
resultMode: TResultMode;
|
|
186
|
-
};
|
|
187
135
|
|
|
188
136
|
type RetryCondition<TErrorData> = (context: ErrorContext<TErrorData>) => boolean | Promise<boolean>;
|
|
189
137
|
interface RetryOptions<TErrorData> {
|
|
@@ -299,6 +247,76 @@ declare const fetchSpecificKeys: ("body" | "cache" | "credentials" | "headers" |
|
|
|
299
247
|
declare const defaultRetryMethods: ("GET" | "POST")[];
|
|
300
248
|
declare const defaultRetryStatusCodes: Required<BaseCallApiExtraOptions>["retryStatusCodes"];
|
|
301
249
|
|
|
250
|
+
/**
|
|
251
|
+
* @description Makes a type required if TSchema type is undefined or if the output type of TSchema contains undefined, otherwise keeps it as is
|
|
252
|
+
*/
|
|
253
|
+
type MakeSchemaOptionRequired<TSchema extends StandardSchemaV1 | undefined, TObject> = undefined extends TSchema ? TObject : undefined extends InferSchemaResult<TSchema, NonNullable<unknown>> ? TObject : Required<TObject>;
|
|
254
|
+
type JsonPrimitive = boolean | number | string | null | undefined;
|
|
255
|
+
type SerializableObject = Record<keyof object, unknown>;
|
|
256
|
+
type SerializableArray = Array<JsonPrimitive | SerializableArray | SerializableObject> | ReadonlyArray<JsonPrimitive | SerializableArray | SerializableObject>;
|
|
257
|
+
type Body = UnmaskType<RequestInit["body"] | SerializableArray | SerializableObject>;
|
|
258
|
+
type BodyOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["body"], {
|
|
259
|
+
/**
|
|
260
|
+
* Body of the request, can be a object or any other supported body type.
|
|
261
|
+
*/
|
|
262
|
+
body?: InferSchemaResult<TSchemas["body"], Body>;
|
|
263
|
+
}>;
|
|
264
|
+
type Method = UnmaskType<"CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE" | AnyString>;
|
|
265
|
+
type MethodOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["method"], {
|
|
266
|
+
/**
|
|
267
|
+
* HTTP method for the request.
|
|
268
|
+
* @default "GET"
|
|
269
|
+
*/
|
|
270
|
+
method?: InferSchemaResult<TSchemas["method"], Method>;
|
|
271
|
+
}>;
|
|
272
|
+
type Headers = UnmaskType<Record<"Authorization", CommonAuthorizationHeaders> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | RequestInit["headers"]>;
|
|
273
|
+
type HeadersOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["headers"], {
|
|
274
|
+
/**
|
|
275
|
+
* Headers to be used in the request.
|
|
276
|
+
*/
|
|
277
|
+
headers?: InferSchemaResult<TSchemas["headers"], Headers>;
|
|
278
|
+
}>;
|
|
279
|
+
interface Register {
|
|
280
|
+
}
|
|
281
|
+
type GlobalMeta = Register extends {
|
|
282
|
+
meta?: infer TMeta extends Record<string, unknown>;
|
|
283
|
+
} ? TMeta : never;
|
|
284
|
+
type MetaOption<TSchemas extends CallApiSchemas> = {
|
|
285
|
+
/**
|
|
286
|
+
* - An optional field you can fill with additional information,
|
|
287
|
+
* to associate with the request, typically used for logging or tracing.
|
|
288
|
+
*
|
|
289
|
+
* - A good use case for this, would be to use the info to handle specific cases in any of the shared interceptors.
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```ts
|
|
293
|
+
* const callMainApi = callApi.create({
|
|
294
|
+
* baseURL: "https://main-api.com",
|
|
295
|
+
* onResponseError: ({ response, options }) => {
|
|
296
|
+
* if (options.meta?.userId) {
|
|
297
|
+
* console.error(`User ${options.meta.userId} made an error`);
|
|
298
|
+
* }
|
|
299
|
+
* },
|
|
300
|
+
* });
|
|
301
|
+
*
|
|
302
|
+
* const response = await callMainApi({
|
|
303
|
+
* url: "https://example.com/api/data",
|
|
304
|
+
* meta: { userId: "123" },
|
|
305
|
+
* });
|
|
306
|
+
* ```
|
|
307
|
+
*/
|
|
308
|
+
meta?: InferSchemaResult<TSchemas["meta"], GlobalMeta>;
|
|
309
|
+
};
|
|
310
|
+
type ResultModeOption<TErrorData, TResultMode extends ResultModeUnion> = TErrorData extends false ? {
|
|
311
|
+
resultMode: "onlySuccessWithException";
|
|
312
|
+
} : TErrorData extends false | undefined ? {
|
|
313
|
+
resultMode?: "onlySuccessWithException";
|
|
314
|
+
} : undefined extends TResultMode ? {
|
|
315
|
+
resultMode?: TResultMode;
|
|
316
|
+
} : {
|
|
317
|
+
resultMode: TResultMode;
|
|
318
|
+
};
|
|
319
|
+
|
|
302
320
|
type FetchSpecificKeysUnion = Exclude<(typeof fetchSpecificKeys)[number], "body" | "headers" | "method">;
|
|
303
321
|
type CallApiRequestOptions<TSchemas extends CallApiSchemas = DefaultMoreOptions> = BodyOption<TSchemas> & HeadersOption<TSchemas> & MethodOption<TSchemas> & Pick<RequestInit, FetchSpecificKeysUnion>;
|
|
304
322
|
type CallApiRequestOptionsForHooks<TSchemas extends CallApiSchemas = DefaultMoreOptions> = Omit<CallApiRequestOptions<TSchemas>, "headers"> & {
|
|
@@ -452,9 +470,10 @@ type BaseCallApiConfig<TBaseData = DefaultDataType, TBaseErrorData = DefaultData
|
|
|
452
470
|
options: CallApiExtraOptions;
|
|
453
471
|
request: CallApiRequestOptions;
|
|
454
472
|
}) => CallApiRequestOptions<TBaseSchemas> & BaseCallApiExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemas>);
|
|
473
|
+
type CallApiConfig<TData = DefaultDataType, TErrorData = DefaultDataType, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = DefaultThrowOnError, TResponseType extends ResponseTypeUnion = ResponseTypeUnion, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TSchemas extends CallApiSchemas = DefaultMoreOptions> = CallApiRequestOptions<TSchemas> & CallApiExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>;
|
|
455
474
|
type CallApiParameters<TData = DefaultDataType, TErrorData = DefaultDataType, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = DefaultThrowOnError, TResponseType extends ResponseTypeUnion = ResponseTypeUnion, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TSchemas extends CallApiSchemas = DefaultMoreOptions> = [
|
|
456
475
|
initURL: InferSchemaResult<TSchemas["initURL"], InitURL>,
|
|
457
|
-
config?:
|
|
476
|
+
config?: CallApiConfig<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>
|
|
458
477
|
];
|
|
459
478
|
type RequestContext = UnmaskType<{
|
|
460
479
|
options: CombinedCallApiExtraOptions;
|
|
@@ -539,24 +558,7 @@ type ResultModeMap<TData = DefaultDataType, TErrorData = DefaultDataType, TRespo
|
|
|
539
558
|
}>;
|
|
540
559
|
type ResultModeUnion = keyof ResultModeMap | undefined;
|
|
541
560
|
type GetCallApiResult<TData, TErrorData, TResultMode extends ResultModeUnion, TThrowOnError extends boolean, TResponseType extends ResponseTypeUnion> = TErrorData extends false | undefined ? ResultModeMap<TData, TErrorData, TResponseType>["onlySuccessWithException"] : ResultModeUnion | undefined extends TResultMode ? TThrowOnError extends true ? ResultModeMap<TData, TErrorData, TResponseType>["allWithException"] : ResultModeMap<TData, TErrorData, TResponseType>["all"] : TResultMode extends NonNullable<ResultModeUnion> ? TResultMode extends "onlySuccess" ? ResultModeMap<TData, TErrorData, TResponseType>["onlySuccessWithException"] : TResultMode extends "onlyResponse" ? ResultModeMap<TData, TErrorData, TResponseType>["onlyResponseWithException"] : ResultModeMap<TData, TErrorData, TResponseType>[TResultMode] : never;
|
|
542
|
-
|
|
543
|
-
type Params = UnmaskType<Record<string, boolean | number | string> | Array<boolean | number | string>>;
|
|
544
|
-
type Query = UnmaskType<Record<string, boolean | number | string>>;
|
|
545
|
-
type InitURL = UnmaskType<string | URL>;
|
|
546
|
-
interface UrlOptions<TSchemas extends CallApiSchemas> {
|
|
547
|
-
/**
|
|
548
|
-
* URL to be used in the request.
|
|
549
|
-
*/
|
|
550
|
-
readonly initURL?: string;
|
|
551
|
-
/**
|
|
552
|
-
* Parameters to be appended to the URL (i.e: /:id)
|
|
553
|
-
*/
|
|
554
|
-
params?: InferSchemaResult<TSchemas["params"], Params>;
|
|
555
|
-
/**
|
|
556
|
-
* Query parameters to append to the URL.
|
|
557
|
-
*/
|
|
558
|
-
query?: InferSchemaResult<TSchemas["query"], Query>;
|
|
559
|
-
}
|
|
561
|
+
type CallApiResult<TData, TErrorData, TResultMode extends ResultModeUnion, TThrowOnError extends boolean, TResponseType extends ResponseTypeUnion> = Promise<GetCallApiResult<TData, TErrorData, TResultMode, TThrowOnError, TResponseType>>;
|
|
560
562
|
|
|
561
563
|
type ErrorDetails<TErrorResponse> = {
|
|
562
564
|
defaultErrorMessage: string;
|
|
@@ -574,4 +576,4 @@ declare class HTTPError<TErrorResponse = Record<string, unknown>> extends Error
|
|
|
574
576
|
constructor(errorDetails: ErrorDetails<TErrorResponse>, errorOptions?: ErrorOptions);
|
|
575
577
|
}
|
|
576
578
|
|
|
577
|
-
export {
|
|
579
|
+
export { defaultRetryMethods as A, type BaseCallApiConfig as B, type CallApiPlugin as C, type DefaultPluginArray as D, type ErrorContext as E, defaultRetryStatusCodes as F, HTTPError as H, type InferSchemaResult as I, type PluginInitContext as P, type ResultModeUnion as R, type SuccessContext as S, type ResponseTypeUnion as a, type CallApiSchemas as b, type CallApiConfig as c, type CallApiResult as d, type DefaultDataType as e, type DefaultThrowOnError as f, type DefaultMoreOptions as g, type CallApiParameters as h, definePlugin as i, type BaseCallApiExtraOptions as j, type CallApiExtraOptions as k, type PossibleJavaScriptError as l, type PossibleHTTPError as m, type CallApiRequestOptions as n, type CallApiRequestOptionsForHooks as o, type CallApiResultErrorVariant as p, type CallApiResultSuccessVariant as q, type CombinedCallApiExtraOptions as r, type Interceptors as s, type InterceptorsOrInterceptorArray as t, type PossibleJavascriptErrorNames as u, type Register as v, type RequestContext as w, type RequestErrorContext as x, type ResponseContext as y, type ResponseErrorContext as z };
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,118 +1,10 @@
|
|
|
1
|
-
import { R as ResultModeUnion, a as ResponseTypeUnion, C as CallApiPlugin, D as DefaultPluginArray, b as CallApiSchemas, I as InferSchemaResult,
|
|
2
|
-
export {
|
|
3
|
-
import
|
|
1
|
+
import { R as ResultModeUnion, a as ResponseTypeUnion, C as CallApiPlugin, D as DefaultPluginArray, b as CallApiSchemas, I as InferSchemaResult, c as CallApiConfig, d as CallApiResult, e as DefaultDataType, f as DefaultThrowOnError, g as DefaultMoreOptions, B as BaseCallApiConfig, h as CallApiParameters } from './error-D4EzEII0.js';
|
|
2
|
+
export { j as BaseCallApiExtraOptions, k as CallApiExtraOptions, n as CallApiRequestOptions, o as CallApiRequestOptionsForHooks, p as CallApiResultErrorVariant, q as CallApiResultSuccessVariant, r as CombinedCallApiExtraOptions, E as ErrorContext, H as HTTPError, s as Interceptors, t as InterceptorsOrInterceptorArray, P as PluginInitContext, m as PossibleHTTPError, l as PossibleJavaScriptError, u as PossibleJavascriptErrorNames, v as Register, w as RequestContext, x as RequestErrorContext, y as ResponseContext, z as ResponseErrorContext, S as SuccessContext, i as definePlugin } from './error-D4EzEII0.js';
|
|
3
|
+
import '@standard-schema/spec';
|
|
4
4
|
|
|
5
|
-
declare const createFetchClient: <TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeUnion = ResultModeUnion, TBaseThrowOnError extends boolean = DefaultThrowOnError, TBaseResponseType extends ResponseTypeUnion = ResponseTypeUnion, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemas extends CallApiSchemas = DefaultMoreOptions>(baseConfig?: BaseCallApiConfig<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemas>) => <TData = InferSchemaResult<TBaseSchemas["data"], TBaseData>, TErrorData = InferSchemaResult<TBaseSchemas["errorData"], TBaseErrorData>, TResultMode extends ResultModeUnion = TBaseResultMode, TThrowOnError extends boolean = TBaseThrowOnError, TResponseType extends ResponseTypeUnion = TBaseResponseType, TPluginArray extends CallApiPlugin[] = TBasePluginArray, TSchemas extends CallApiSchemas = TBaseSchemas>(initURL: InferSchemaResult<TSchemas["initURL"], string | URL>, config?:
|
|
6
|
-
|
|
7
|
-
} : undefined extends InferSchemaResult<TSchemas["body"], {}> ? {
|
|
8
|
-
body?: InferSchemaResult<TSchemas["body"], BodyInit | SerializableArray | SerializableObject | null | undefined> | undefined;
|
|
9
|
-
} : Required<{
|
|
10
|
-
body?: InferSchemaResult<TSchemas["body"], BodyInit | SerializableArray | SerializableObject | null | undefined> | undefined;
|
|
11
|
-
}>) & (undefined extends TSchemas["headers"] ? {
|
|
12
|
-
headers?: InferSchemaResult<TSchemas["headers"], Record<"Authorization", `Basic ${string}` | `Bearer ${string}` | `Token ${string}`> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | HeadersInit | undefined> | undefined;
|
|
13
|
-
} : undefined extends InferSchemaResult<TSchemas["headers"], {}> ? {
|
|
14
|
-
headers?: InferSchemaResult<TSchemas["headers"], Record<"Authorization", `Basic ${string}` | `Bearer ${string}` | `Token ${string}`> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | HeadersInit | undefined> | undefined;
|
|
15
|
-
} : Required<{
|
|
16
|
-
headers?: InferSchemaResult<TSchemas["headers"], Record<"Authorization", `Basic ${string}` | `Bearer ${string}` | `Token ${string}`> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | HeadersInit | undefined> | undefined;
|
|
17
|
-
}>) & (undefined extends TSchemas["method"] ? {
|
|
18
|
-
method?: InferSchemaResult<TSchemas["method"], AnyString | "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE"> | undefined;
|
|
19
|
-
} : undefined extends InferSchemaResult<TSchemas["method"], {}> ? {
|
|
20
|
-
method?: InferSchemaResult<TSchemas["method"], AnyString | "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE"> | undefined;
|
|
21
|
-
} : Required<{
|
|
22
|
-
method?: InferSchemaResult<TSchemas["method"], AnyString | "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE"> | undefined;
|
|
23
|
-
}>) & Pick<RequestInit, "cache" | "credentials" | "integrity" | "keepalive" | "mode" | "priority" | "redirect" | "referrer" | "referrerPolicy" | "signal" | "window"> & {
|
|
24
|
-
auth?: string | Auth | null;
|
|
25
|
-
baseURL?: string;
|
|
26
|
-
bodySerializer?: (bodyData: Record<string, unknown>) => string;
|
|
27
|
-
cloneResponse?: boolean;
|
|
28
|
-
customFetchImpl?: (input: string | Request | URL, init?: RequestInit) => Promise<Response>;
|
|
29
|
-
dedupeKey?: string;
|
|
30
|
-
dedupeStrategy?: "cancel" | "defer" | "none";
|
|
31
|
-
defaultErrorMessage?: string;
|
|
32
|
-
readonly fullURL?: string;
|
|
33
|
-
mergedHooksExecutionMode?: "parallel" | "sequential";
|
|
34
|
-
mergedHooksExecutionOrder?: "mainHooksAfterPlugins" | "mainHooksBeforePlugins";
|
|
35
|
-
plugins?: TPluginArray | undefined;
|
|
36
|
-
responseParser?: (responseString: string) => Awaitable<Record<string, unknown>>;
|
|
37
|
-
responseType?: TResponseType | undefined;
|
|
38
|
-
resultMode?: TResultMode | undefined;
|
|
39
|
-
schemas?: TSchemas | undefined;
|
|
40
|
-
throwOnError?: TThrowOnError | ((context: {
|
|
41
|
-
error: PossibleJavaScriptError;
|
|
42
|
-
options: CombinedCallApiExtraOptions;
|
|
43
|
-
request: CallApiRequestOptionsForHooks;
|
|
44
|
-
response: null;
|
|
45
|
-
} | {
|
|
46
|
-
error: {
|
|
47
|
-
errorData: TErrorData;
|
|
48
|
-
message: string;
|
|
49
|
-
name: "HTTPError";
|
|
50
|
-
};
|
|
51
|
-
options: CombinedCallApiExtraOptions;
|
|
52
|
-
request: CallApiRequestOptionsForHooks;
|
|
53
|
-
response: Response;
|
|
54
|
-
}) => TThrowOnError) | undefined;
|
|
55
|
-
timeout?: number;
|
|
56
|
-
validators?: CallApiValidators<TData, TErrorData> | undefined;
|
|
57
|
-
} & InterceptorsOrInterceptorArray<TData, TErrorData, {}> & Partial<((ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> extends infer T ? T extends ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> ? T extends _standard_schema_spec.StandardSchemaV1<unknown, unknown> ? InferSchemaResult<T, {}> : T : never : never) extends infer T_1 ? T_1 extends (ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> extends infer T_2 ? T_2 extends ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> ? T_2 extends _standard_schema_spec.StandardSchemaV1<unknown, unknown> ? InferSchemaResult<T_2, {}> : T_2 : never : never) ? T_1 extends unknown ? (param: T_1) => void : never : never : never) extends (param: infer TParam) => void ? TParam : never> & MetaOption<TSchemas> & RetryOptions<TErrorData> & ResultModeOption<TErrorData, TResultMode> & UrlOptions<TSchemas> & {
|
|
58
|
-
extend?: Pick<ExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>, "plugins" | "schemas" | "validators"> | undefined;
|
|
59
|
-
}) | undefined) => Promise<GetCallApiResult<InferSchemaResult<TSchemas["data"], TData>, InferSchemaResult<TSchemas["errorData"], TErrorData>, TResultMode, TThrowOnError, TResponseType>>;
|
|
60
|
-
declare const callApi: <TData = unknown, TErrorData = unknown, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = boolean, TResponseType extends ResponseTypeUnion = ResponseTypeUnion, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TSchemas extends CallApiSchemas = {}>(initURL: InferSchemaResult<TSchemas["initURL"], string | URL>, config?: ((undefined extends TSchemas["body"] ? {
|
|
61
|
-
body?: InferSchemaResult<TSchemas["body"], BodyInit | SerializableArray | SerializableObject | null | undefined> | undefined;
|
|
62
|
-
} : undefined extends InferSchemaResult<TSchemas["body"], {}> ? {
|
|
63
|
-
body?: InferSchemaResult<TSchemas["body"], BodyInit | SerializableArray | SerializableObject | null | undefined> | undefined;
|
|
64
|
-
} : Required<{
|
|
65
|
-
body?: InferSchemaResult<TSchemas["body"], BodyInit | SerializableArray | SerializableObject | null | undefined> | undefined;
|
|
66
|
-
}>) & (undefined extends TSchemas["headers"] ? {
|
|
67
|
-
headers?: InferSchemaResult<TSchemas["headers"], Record<"Authorization", `Basic ${string}` | `Bearer ${string}` | `Token ${string}`> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | HeadersInit | undefined> | undefined;
|
|
68
|
-
} : undefined extends InferSchemaResult<TSchemas["headers"], {}> ? {
|
|
69
|
-
headers?: InferSchemaResult<TSchemas["headers"], Record<"Authorization", `Basic ${string}` | `Bearer ${string}` | `Token ${string}`> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | HeadersInit | undefined> | undefined;
|
|
70
|
-
} : Required<{
|
|
71
|
-
headers?: InferSchemaResult<TSchemas["headers"], Record<"Authorization", `Basic ${string}` | `Bearer ${string}` | `Token ${string}`> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | HeadersInit | undefined> | undefined;
|
|
72
|
-
}>) & (undefined extends TSchemas["method"] ? {
|
|
73
|
-
method?: InferSchemaResult<TSchemas["method"], AnyString | "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE"> | undefined;
|
|
74
|
-
} : undefined extends InferSchemaResult<TSchemas["method"], {}> ? {
|
|
75
|
-
method?: InferSchemaResult<TSchemas["method"], AnyString | "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE"> | undefined;
|
|
76
|
-
} : Required<{
|
|
77
|
-
method?: InferSchemaResult<TSchemas["method"], AnyString | "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE"> | undefined;
|
|
78
|
-
}>) & Pick<RequestInit, "cache" | "credentials" | "integrity" | "keepalive" | "mode" | "priority" | "redirect" | "referrer" | "referrerPolicy" | "signal" | "window"> & {
|
|
79
|
-
auth?: string | Auth | null;
|
|
80
|
-
baseURL?: string;
|
|
81
|
-
bodySerializer?: (bodyData: Record<string, unknown>) => string;
|
|
82
|
-
cloneResponse?: boolean;
|
|
83
|
-
customFetchImpl?: (input: string | Request | URL, init?: RequestInit) => Promise<Response>;
|
|
84
|
-
dedupeKey?: string;
|
|
85
|
-
dedupeStrategy?: "cancel" | "defer" | "none";
|
|
86
|
-
defaultErrorMessage?: string;
|
|
87
|
-
readonly fullURL?: string;
|
|
88
|
-
mergedHooksExecutionMode?: "parallel" | "sequential";
|
|
89
|
-
mergedHooksExecutionOrder?: "mainHooksAfterPlugins" | "mainHooksBeforePlugins";
|
|
90
|
-
plugins?: TPluginArray | undefined;
|
|
91
|
-
responseParser?: (responseString: string) => Awaitable<Record<string, unknown>>;
|
|
92
|
-
responseType?: TResponseType | undefined;
|
|
93
|
-
resultMode?: TResultMode | undefined;
|
|
94
|
-
schemas?: TSchemas | undefined;
|
|
95
|
-
throwOnError?: TThrowOnError | ((context: {
|
|
96
|
-
error: PossibleJavaScriptError;
|
|
97
|
-
options: CombinedCallApiExtraOptions;
|
|
98
|
-
request: CallApiRequestOptionsForHooks;
|
|
99
|
-
response: null;
|
|
100
|
-
} | {
|
|
101
|
-
error: {
|
|
102
|
-
errorData: TErrorData;
|
|
103
|
-
message: string;
|
|
104
|
-
name: "HTTPError";
|
|
105
|
-
};
|
|
106
|
-
options: CombinedCallApiExtraOptions;
|
|
107
|
-
request: CallApiRequestOptionsForHooks;
|
|
108
|
-
response: Response;
|
|
109
|
-
}) => TThrowOnError) | undefined;
|
|
110
|
-
timeout?: number;
|
|
111
|
-
validators?: CallApiValidators<TData, TErrorData> | undefined;
|
|
112
|
-
} & InterceptorsOrInterceptorArray<TData, TErrorData, {}> & Partial<((ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> extends infer T ? T extends ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> ? T extends _standard_schema_spec.StandardSchemaV1<unknown, unknown> ? InferSchemaResult<T, {}> : T : never : never) extends infer T_1 ? T_1 extends (ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> extends infer T_2 ? T_2 extends ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>> ? T_2 extends _standard_schema_spec.StandardSchemaV1<unknown, unknown> ? InferSchemaResult<T_2, {}> : T_2 : never : never) ? T_1 extends unknown ? (param: T_1) => void : never : never : never) extends (param: infer TParam) => void ? TParam : never> & MetaOption<TSchemas> & RetryOptions<TErrorData> & ResultModeOption<TErrorData, TResultMode> & UrlOptions<TSchemas> & {
|
|
113
|
-
extend?: Pick<ExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>, "plugins" | "schemas" | "validators"> | undefined;
|
|
114
|
-
}) | undefined) => Promise<GetCallApiResult<InferSchemaResult<TSchemas["data"], TData>, InferSchemaResult<TSchemas["errorData"], TErrorData>, TResultMode, TThrowOnError, TResponseType>>;
|
|
5
|
+
declare const createFetchClient: <TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeUnion = ResultModeUnion, TBaseThrowOnError extends boolean = DefaultThrowOnError, TBaseResponseType extends ResponseTypeUnion = ResponseTypeUnion, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemas extends CallApiSchemas = DefaultMoreOptions>(baseConfig?: BaseCallApiConfig<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemas>) => <TData = InferSchemaResult<TBaseSchemas["data"], TBaseData>, TErrorData = InferSchemaResult<TBaseSchemas["errorData"], TBaseErrorData>, TResultMode extends ResultModeUnion = TBaseResultMode, TThrowOnError extends boolean = TBaseThrowOnError, TResponseType extends ResponseTypeUnion = TBaseResponseType, TPluginArray extends CallApiPlugin[] = TBasePluginArray, TSchemas extends CallApiSchemas = TBaseSchemas>(initURL: InferSchemaResult<TSchemas["initURL"], string | URL>, config?: CallApiConfig<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas> | undefined) => CallApiResult<InferSchemaResult<TSchemas["data"], TData>, InferSchemaResult<TSchemas["errorData"], TErrorData>, TResultMode, TThrowOnError, TResponseType>;
|
|
6
|
+
declare const callApi: <TData = unknown, TErrorData = unknown, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = boolean, TResponseType extends ResponseTypeUnion = ResponseTypeUnion, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TSchemas extends CallApiSchemas = {}>(initURL: InferSchemaResult<TSchemas["initURL"], string | URL>, config?: CallApiConfig<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas> | undefined) => CallApiResult<InferSchemaResult<TSchemas["data"], TData>, InferSchemaResult<TSchemas["errorData"], TErrorData>, TResultMode, TThrowOnError, TResponseType>;
|
|
115
7
|
|
|
116
8
|
declare const defineParameters: <TData = unknown, TErrorData = unknown, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = DefaultThrowOnError, TResponseType extends ResponseTypeUnion = ResponseTypeUnion, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TSchemas extends CallApiSchemas = DefaultMoreOptions>(...parameters: CallApiParameters<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>) => CallApiParameters<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>;
|
|
117
9
|
|
|
118
|
-
export { CallApiParameters, CallApiPlugin,
|
|
10
|
+
export { CallApiParameters, CallApiPlugin, CallApiSchemas, InferSchemaResult, ResultModeUnion, callApi, createFetchClient, defineParameters };
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { splitConfig, isFunction, splitBaseConfig, combineHooks, mergeAndResolveHeaders, isPlainObject, executeHooks, HTTPError, resolveErrorResult, waitUntil, isHTTPErrorInstance, defaultRetryStatusCodes, defaultRetryMethods, omitKeys, isString, isArray, toQueryString, getFetchImpl } from './chunk-
|
|
2
|
-
export { HTTPError } from './chunk-
|
|
1
|
+
import { splitConfig, isFunction, splitBaseConfig, combineHooks, mergeAndResolveHeaders, isPlainObject, executeHooks, HTTPError, resolveErrorResult, waitUntil, isHTTPErrorInstance, defaultRetryStatusCodes, defaultRetryMethods, omitKeys, isString, isArray, toQueryString, getFetchImpl } from './chunk-XF6F72SX.js';
|
|
2
|
+
export { HTTPError } from './chunk-XF6F72SX.js';
|
|
3
3
|
|
|
4
4
|
// src/dedupe.ts
|
|
5
5
|
var createDedupeStrategy = async (context) => {
|
|
@@ -365,7 +365,6 @@ var createFetchClient = (baseConfig = {}) => {
|
|
|
365
365
|
await executeHooks(options.onRequest({ options, request }));
|
|
366
366
|
request.headers = mergeAndResolveHeaders({
|
|
367
367
|
auth: options.auth,
|
|
368
|
-
baseHeaders: baseFetchOptions.headers,
|
|
369
368
|
body: request.body,
|
|
370
369
|
headers: request.headers
|
|
371
370
|
});
|
|
@@ -394,7 +393,11 @@ var createFetchClient = (baseConfig = {}) => {
|
|
|
394
393
|
options.responseType,
|
|
395
394
|
options.responseParser
|
|
396
395
|
);
|
|
397
|
-
const validSuccessData = await handleValidation(
|
|
396
|
+
const validSuccessData = await handleValidation(
|
|
397
|
+
successData,
|
|
398
|
+
schemas?.data,
|
|
399
|
+
validators?.data
|
|
400
|
+
);
|
|
398
401
|
const successContext = {
|
|
399
402
|
data: validSuccessData,
|
|
400
403
|
options,
|