@zayne-labs/callapi 1.6.14 → 1.6.16
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/README.md +3 -3
- package/dist/cjs/{common-B_9jiZXC.d.cts → error-BokQ-iQX.d.cts} +113 -87
- package/dist/cjs/index.cjs +793 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +116 -16
- package/dist/cjs/utils/index.cjs +129 -1
- package/dist/cjs/utils/index.cjs.map +1 -1
- package/dist/cjs/utils/index.d.cts +2 -3
- package/dist/esm/chunk-JG2BPHMX.js +277 -0
- package/dist/esm/chunk-JG2BPHMX.js.map +1 -0
- package/dist/esm/{common-B_9jiZXC.d.ts → error-BokQ-iQX.d.ts} +113 -87
- package/dist/esm/index.d.ts +116 -16
- package/dist/esm/index.js +487 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -3
- package/dist/esm/utils/index.js +3 -1
- package/package.json +11 -13
- package/dist/cjs/error-lBRMiMeF.d.cts +0 -17
- package/dist/cjs/options/index.cjs +0 -1
- package/dist/cjs/options/index.cjs.map +0 -1
- package/dist/cjs/options/index.d.cts +0 -25
- package/dist/esm/chunk-DQY5GNZB.js +0 -1
- package/dist/esm/chunk-DQY5GNZB.js.map +0 -1
- package/dist/esm/chunk-MOMG57MZ.js +0 -1
- package/dist/esm/chunk-MOMG57MZ.js.map +0 -1
- package/dist/esm/error-lBRMiMeF.d.ts +0 -17
- package/dist/esm/options/index.d.ts +0 -25
- package/dist/esm/options/index.js +0 -1
- package/dist/esm/options/index.js.map +0 -1
|
@@ -115,23 +115,75 @@ 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
|
-
type
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
/**
|
|
119
|
+
* @description Makes a type required if TSchema type is undefined or if the output type of TSchema contains undefined, otherwise keeps it as is
|
|
120
|
+
*/
|
|
121
|
+
type MakeSchemaOptionRequired<TSchema extends StandardSchemaV1 | undefined, TObject> = undefined extends TSchema ? TObject : undefined extends InferSchemaResult<TSchema, NonNullable<unknown>> ? TObject : Required<TObject>;
|
|
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"], {
|
|
122
127
|
/**
|
|
123
|
-
*
|
|
128
|
+
* Body of the request, can be a object or any other supported body type.
|
|
124
129
|
*/
|
|
125
|
-
|
|
130
|
+
body?: InferSchemaResult<TSchemas["body"], Body>;
|
|
131
|
+
}>;
|
|
132
|
+
type Method = UnmaskType<"CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE" | AnyString>;
|
|
133
|
+
type MethodOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["method"], {
|
|
126
134
|
/**
|
|
127
|
-
*
|
|
135
|
+
* HTTP method for the request.
|
|
136
|
+
* @default "GET"
|
|
128
137
|
*/
|
|
129
|
-
|
|
138
|
+
method?: InferSchemaResult<TSchemas["method"], Method>;
|
|
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"], {
|
|
130
142
|
/**
|
|
131
|
-
*
|
|
143
|
+
* Headers to be used in the request.
|
|
132
144
|
*/
|
|
133
|
-
|
|
145
|
+
headers?: InferSchemaResult<TSchemas["headers"], Headers>;
|
|
146
|
+
}>;
|
|
147
|
+
interface Register {
|
|
134
148
|
}
|
|
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
|
+
};
|
|
135
187
|
|
|
136
188
|
type RetryCondition<TErrorData> = (context: ErrorContext<TErrorData>) => boolean | Promise<boolean>;
|
|
137
189
|
interface RetryOptions<TErrorData> {
|
|
@@ -139,7 +191,7 @@ interface RetryOptions<TErrorData> {
|
|
|
139
191
|
* Keeps track of the number of times the request has already been retried
|
|
140
192
|
* @deprecated This property is used internally to track retries. Please abstain from modifying it.
|
|
141
193
|
*/
|
|
142
|
-
readonly "~retryCount"?: number;
|
|
194
|
+
readonly ["~retryCount"]?: number;
|
|
143
195
|
/**
|
|
144
196
|
* Number of allowed retry attempts on HTTP errors
|
|
145
197
|
* @default 0
|
|
@@ -201,6 +253,8 @@ type UnionToIntersection<TUnion> = (TUnion extends unknown ? (param: TUnion) =>
|
|
|
201
253
|
type InferSchema<TResult> = TResult extends StandardSchemaV1 ? InferSchemaResult<TResult, NonNullable<unknown>> : TResult;
|
|
202
254
|
type InferPluginOptions<TPluginArray extends CallApiPlugin[]> = UnionToIntersection<InferSchema<ReturnType<NonNullable<TPluginArray[number]["createExtraOptions"]>>>>;
|
|
203
255
|
type PluginInitContext<TMoreOptions = DefaultMoreOptions> = WithMoreOptions<TMoreOptions> & {
|
|
256
|
+
baseConfig: BaseCallApiExtraOptions & CallApiRequestOptions;
|
|
257
|
+
config: CallApiExtraOptions & CallApiRequestOptions;
|
|
204
258
|
initURL: InitURL | undefined;
|
|
205
259
|
options: CombinedCallApiExtraOptions;
|
|
206
260
|
request: CallApiRequestOptionsForHooks;
|
|
@@ -239,79 +293,12 @@ interface CallApiPlugin<TData = never, TErrorData = never> {
|
|
|
239
293
|
version?: string;
|
|
240
294
|
}
|
|
241
295
|
declare const definePlugin: <TPlugin extends CallApiPlugin | AnyFunction<CallApiPlugin>>(plugin: TPlugin) => TPlugin;
|
|
242
|
-
type Plugins<TPluginArray extends CallApiPlugin[]> = TPluginArray
|
|
296
|
+
type Plugins<TPluginArray extends CallApiPlugin[]> = TPluginArray;
|
|
243
297
|
|
|
244
298
|
declare const fetchSpecificKeys: ("body" | "cache" | "credentials" | "headers" | "integrity" | "keepalive" | "method" | "mode" | "priority" | "redirect" | "referrer" | "referrerPolicy" | "signal" | "window")[];
|
|
245
299
|
declare const defaultRetryMethods: ("GET" | "POST")[];
|
|
246
300
|
declare const defaultRetryStatusCodes: Required<BaseCallApiExtraOptions>["retryStatusCodes"];
|
|
247
301
|
|
|
248
|
-
/**
|
|
249
|
-
* @description Makes a type required if TSchema type is undefined or if the output type of TSchema contains undefined, otherwise keeps it as is
|
|
250
|
-
*/
|
|
251
|
-
type MakeSchemaOptionRequired<TSchema extends StandardSchemaV1 | undefined, TObject> = undefined extends TSchema ? TObject : undefined extends InferSchemaResult<TSchema, NonNullable<unknown>> ? TObject : Required<TObject>;
|
|
252
|
-
type Body = UnmaskType<Record<string, unknown> | RequestInit["body"]>;
|
|
253
|
-
type BodyOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["body"], {
|
|
254
|
-
/**
|
|
255
|
-
* Body of the request, can be a object or any other supported body type.
|
|
256
|
-
*/
|
|
257
|
-
body?: InferSchemaResult<TSchemas["body"], Body>;
|
|
258
|
-
}>;
|
|
259
|
-
type Method = UnmaskType<"CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE" | AnyString>;
|
|
260
|
-
type MethodOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["method"], {
|
|
261
|
-
/**
|
|
262
|
-
* HTTP method for the request.
|
|
263
|
-
* @default "GET"
|
|
264
|
-
*/
|
|
265
|
-
method?: InferSchemaResult<TSchemas["method"], Method>;
|
|
266
|
-
}>;
|
|
267
|
-
type Headers = UnmaskType<Record<"Authorization", CommonAuthorizationHeaders> | Record<"Content-Type", CommonContentTypes> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | RequestInit["headers"]>;
|
|
268
|
-
type HeadersOption<TSchemas extends CallApiSchemas> = MakeSchemaOptionRequired<TSchemas["headers"], {
|
|
269
|
-
/**
|
|
270
|
-
* Headers to be used in the request.
|
|
271
|
-
*/
|
|
272
|
-
headers?: InferSchemaResult<TSchemas["headers"], Headers>;
|
|
273
|
-
}>;
|
|
274
|
-
interface Register {
|
|
275
|
-
}
|
|
276
|
-
type GlobalMeta = Register extends {
|
|
277
|
-
meta?: infer TMeta extends Record<string, unknown>;
|
|
278
|
-
} ? TMeta : never;
|
|
279
|
-
type MetaOption<TSchemas extends CallApiSchemas> = {
|
|
280
|
-
/**
|
|
281
|
-
* - An optional field you can fill with additional information,
|
|
282
|
-
* to associate with the request, typically used for logging or tracing.
|
|
283
|
-
*
|
|
284
|
-
* - A good use case for this, would be to use the info to handle specific cases in any of the shared interceptors.
|
|
285
|
-
*
|
|
286
|
-
* @example
|
|
287
|
-
* ```ts
|
|
288
|
-
* const callMainApi = callApi.create({
|
|
289
|
-
* baseURL: "https://main-api.com",
|
|
290
|
-
* onResponseError: ({ response, options }) => {
|
|
291
|
-
* if (options.meta?.userId) {
|
|
292
|
-
* console.error(`User ${options.meta.userId} made an error`);
|
|
293
|
-
* }
|
|
294
|
-
* },
|
|
295
|
-
* });
|
|
296
|
-
*
|
|
297
|
-
* const response = await callMainApi({
|
|
298
|
-
* url: "https://example.com/api/data",
|
|
299
|
-
* meta: { userId: "123" },
|
|
300
|
-
* });
|
|
301
|
-
* ```
|
|
302
|
-
*/
|
|
303
|
-
meta?: InferSchemaResult<TSchemas["meta"], GlobalMeta>;
|
|
304
|
-
};
|
|
305
|
-
type ResultModeOption<TErrorData, TResultMode extends ResultModeUnion> = TErrorData extends false ? {
|
|
306
|
-
resultMode: "onlySuccessWithException";
|
|
307
|
-
} : TErrorData extends false | undefined ? {
|
|
308
|
-
resultMode?: "onlySuccessWithException";
|
|
309
|
-
} : undefined extends TResultMode ? {
|
|
310
|
-
resultMode?: TResultMode;
|
|
311
|
-
} : {
|
|
312
|
-
resultMode: TResultMode;
|
|
313
|
-
};
|
|
314
|
-
|
|
315
302
|
type FetchSpecificKeysUnion = Exclude<(typeof fetchSpecificKeys)[number], "body" | "headers" | "method">;
|
|
316
303
|
type CallApiRequestOptions<TSchemas extends CallApiSchemas = DefaultMoreOptions> = BodyOption<TSchemas> & HeadersOption<TSchemas> & MethodOption<TSchemas> & Pick<RequestInit, FetchSpecificKeysUnion>;
|
|
317
304
|
type CallApiRequestOptionsForHooks<TSchemas extends CallApiSchemas = DefaultMoreOptions> = Omit<CallApiRequestOptions<TSchemas>, "headers"> & {
|
|
@@ -355,7 +342,7 @@ type InterceptorsOrInterceptorArray<TData = DefaultDataType, TErrorData = Defaul
|
|
|
355
342
|
[Key in keyof Interceptors<TData, TErrorData, TMoreOptions>]: Interceptors<TData, TErrorData, TMoreOptions>[Key] | Array<Interceptors<TData, TErrorData, TMoreOptions>[Key]>;
|
|
356
343
|
};
|
|
357
344
|
type FetchImpl = UnmaskType<(input: string | Request | URL, init?: RequestInit) => Promise<Response>>;
|
|
358
|
-
type ExtraOptions<TData = DefaultDataType, TErrorData = DefaultDataType, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = DefaultThrowOnError, TResponseType extends ResponseTypeUnion = ResponseTypeUnion,
|
|
345
|
+
type ExtraOptions<TData = DefaultDataType, TErrorData = DefaultDataType, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = DefaultThrowOnError, TResponseType extends ResponseTypeUnion = ResponseTypeUnion, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TSchemas extends CallApiSchemas = DefaultMoreOptions> = {
|
|
359
346
|
/**
|
|
360
347
|
* Authorization header value.
|
|
361
348
|
*/
|
|
@@ -451,18 +438,23 @@ type ExtraOptions<TData = DefaultDataType, TErrorData = DefaultDataType, TResult
|
|
|
451
438
|
validators?: CallApiValidators<TData, TErrorData>;
|
|
452
439
|
} & InterceptorsOrInterceptorArray<TData, TErrorData> & Partial<InferPluginOptions<TPluginArray>> & MetaOption<TSchemas> & RetryOptions<TErrorData> & ResultModeOption<TErrorData, TResultMode> & UrlOptions<TSchemas>;
|
|
453
440
|
declare const optionsEnumToExtendFromBase: ("plugins" | "schemas" | "validators")[];
|
|
454
|
-
type CallApiExtraOptions<TData = DefaultDataType, TErrorData = DefaultDataType, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = DefaultThrowOnError, TResponseType extends ResponseTypeUnion = ResponseTypeUnion,
|
|
441
|
+
type CallApiExtraOptions<TData = DefaultDataType, TErrorData = DefaultDataType, TResultMode extends ResultModeUnion = ResultModeUnion, TThrowOnError extends boolean = DefaultThrowOnError, TResponseType extends ResponseTypeUnion = ResponseTypeUnion, TPluginArray extends CallApiPlugin[] = DefaultPluginArray, TSchemas extends CallApiSchemas = DefaultMoreOptions> = ExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas> & {
|
|
455
442
|
/**
|
|
456
443
|
* Options that should extend the base options.
|
|
457
444
|
*/
|
|
458
|
-
extend?: Pick<ExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType,
|
|
445
|
+
extend?: Pick<ExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>, (typeof optionsEnumToExtendFromBase)[number]>;
|
|
459
446
|
};
|
|
460
447
|
declare const optionsEnumToOmitFromBase: ("dedupeKey" | "extend")[];
|
|
461
|
-
type BaseCallApiExtraOptions<TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeUnion = ResultModeUnion, TBaseThrowOnError extends boolean = DefaultThrowOnError, TBaseResponseType extends ResponseTypeUnion = ResponseTypeUnion,
|
|
448
|
+
type BaseCallApiExtraOptions<TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeUnion = ResultModeUnion, TBaseThrowOnError extends boolean = DefaultThrowOnError, TBaseResponseType extends ResponseTypeUnion = ResponseTypeUnion, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemas extends CallApiSchemas = DefaultMoreOptions> = Omit<Partial<CallApiExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemas>>, (typeof optionsEnumToOmitFromBase)[number]>;
|
|
462
449
|
type CombinedCallApiExtraOptions = BaseCallApiExtraOptions & CallApiExtraOptions;
|
|
463
|
-
type
|
|
450
|
+
type BaseCallApiConfig<TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeUnion = ResultModeUnion, TBaseThrowOnError extends boolean = DefaultThrowOnError, TBaseResponseType extends ResponseTypeUnion = ResponseTypeUnion, TBasePluginArray extends CallApiPlugin[] = DefaultPluginArray, TBaseSchemas extends CallApiSchemas = DefaultMoreOptions> = (CallApiRequestOptions<TBaseSchemas> & BaseCallApiExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemas>) | ((context: {
|
|
451
|
+
initURL: string;
|
|
452
|
+
options: CallApiExtraOptions;
|
|
453
|
+
request: CallApiRequestOptions;
|
|
454
|
+
}) => CallApiRequestOptions<TBaseSchemas> & BaseCallApiExtraOptions<TBaseData, TBaseErrorData, TBaseResultMode, TBaseThrowOnError, TBaseResponseType, TBasePluginArray, TBaseSchemas>);
|
|
455
|
+
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> = [
|
|
464
456
|
initURL: InferSchemaResult<TSchemas["initURL"], InitURL>,
|
|
465
|
-
config?: CallApiExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType,
|
|
457
|
+
config?: CallApiRequestOptions<TSchemas> & CallApiExtraOptions<TData, TErrorData, TResultMode, TThrowOnError, TResponseType, TPluginArray, TSchemas>
|
|
466
458
|
];
|
|
467
459
|
type RequestContext = UnmaskType<{
|
|
468
460
|
options: CombinedCallApiExtraOptions;
|
|
@@ -546,6 +538,40 @@ type ResultModeMap<TData = DefaultDataType, TErrorData = DefaultDataType, TRespo
|
|
|
546
538
|
onlySuccessWithException: CallApiResultSuccessVariant<TComputedData>["data"];
|
|
547
539
|
}>;
|
|
548
540
|
type ResultModeUnion = keyof ResultModeMap | undefined;
|
|
549
|
-
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> ? ResultModeMap<TData, TErrorData, TResponseType>[TResultMode] : never;
|
|
541
|
+
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
|
+
}
|
|
560
|
+
|
|
561
|
+
type ErrorDetails<TErrorResponse> = {
|
|
562
|
+
defaultErrorMessage: string;
|
|
563
|
+
errorData: TErrorResponse;
|
|
564
|
+
response: Response;
|
|
565
|
+
};
|
|
566
|
+
type ErrorOptions = {
|
|
567
|
+
cause?: unknown;
|
|
568
|
+
};
|
|
569
|
+
declare class HTTPError<TErrorResponse = Record<string, unknown>> extends Error {
|
|
570
|
+
errorData: ErrorDetails<TErrorResponse>["errorData"];
|
|
571
|
+
isHTTPError: boolean;
|
|
572
|
+
name: "HTTPError";
|
|
573
|
+
response: ErrorDetails<TErrorResponse>["response"];
|
|
574
|
+
constructor(errorDetails: ErrorDetails<TErrorResponse>, errorOptions?: ErrorOptions);
|
|
575
|
+
}
|
|
550
576
|
|
|
551
|
-
export { type
|
|
577
|
+
export { type AnyString as A, type BaseCallApiConfig as B, type CallApiPlugin as C, type DefaultPluginArray as D, type ExtraOptions as E, type Interceptors as F, type GetCallApiResult as G, HTTPError as H, type InferSchemaResult as I, type PossibleJavascriptErrorNames as J, type Register as K, type RequestContext as L, type MetaOption as M, type RequestErrorContext as N, type ResponseContext as O, type PossibleJavaScriptError as P, type ResponseErrorContext as Q, type ResultModeUnion as R, type SerializableArray as S, type SuccessContext as T, type UrlOptions as U, defaultRetryMethods as V, defaultRetryStatusCodes as W, type ResponseTypeUnion as a, type CallApiSchemas as b, type SerializableObject as c, type CommonContentTypes as d, type CommonRequestHeaders as e, type Auth as f, type Awaitable as g, type CombinedCallApiExtraOptions as h, type CallApiRequestOptionsForHooks as i, type CallApiValidators as j, type InterceptorsOrInterceptorArray as k, type RetryOptions as l, type ResultModeOption as m, type DefaultDataType as n, type DefaultThrowOnError as o, type DefaultMoreOptions as p, type CallApiParameters as q, definePlugin as r, type PluginInitContext as s, type BaseCallApiExtraOptions as t, type CallApiExtraOptions as u, type PossibleHTTPError as v, type CallApiRequestOptions as w, type CallApiResultErrorVariant as x, type CallApiResultSuccessVariant as y, type ErrorContext as z };
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,18 +1,118 @@
|
|
|
1
|
-
import { R as ResultModeUnion, a as ResponseTypeUnion, C as
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
import '@standard-schema/spec';
|
|
1
|
+
import { R as ResultModeUnion, a as ResponseTypeUnion, C as CallApiPlugin, D as DefaultPluginArray, b as CallApiSchemas, I as InferSchemaResult, S as SerializableArray, c as SerializableObject, d as CommonContentTypes, e as CommonRequestHeaders, A as AnyString, f as Auth, g as Awaitable, P as PossibleJavaScriptError, h as CombinedCallApiExtraOptions, i as CallApiRequestOptionsForHooks, j as CallApiValidators, k as InterceptorsOrInterceptorArray, M as MetaOption, l as RetryOptions, m as ResultModeOption, U as UrlOptions, E as ExtraOptions, G as GetCallApiResult, n as DefaultDataType, o as DefaultThrowOnError, p as DefaultMoreOptions, B as BaseCallApiConfig, q as CallApiParameters } from './error-BokQ-iQX.js';
|
|
2
|
+
export { t as BaseCallApiExtraOptions, u as CallApiExtraOptions, w as CallApiRequestOptions, x as CallApiResultErrorVariant, y as CallApiResultSuccessVariant, z as ErrorContext, H as HTTPError, F as Interceptors, s as PluginInitContext, v as PossibleHTTPError, J as PossibleJavascriptErrorNames, K as Register, L as RequestContext, N as RequestErrorContext, O as ResponseContext, Q as ResponseErrorContext, T as SuccessContext, r as definePlugin } from './error-BokQ-iQX.js';
|
|
3
|
+
import * as _standard_schema_spec from '@standard-schema/spec';
|
|
5
4
|
|
|
6
|
-
declare const createFetchClient: <TBaseData = DefaultDataType, TBaseErrorData = DefaultDataType, TBaseResultMode extends ResultModeUnion = ResultModeUnion, TBaseThrowOnError extends boolean = DefaultThrowOnError, TBaseResponseType extends ResponseTypeUnion = ResponseTypeUnion, TBaseSchemas extends CallApiSchemas = DefaultMoreOptions,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
}
|
|
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?: ((undefined extends TSchemas["body"] ? {
|
|
6
|
+
body?: InferSchemaResult<TSchemas["body"], BodyInit | SerializableArray | SerializableObject | null | undefined> | undefined;
|
|
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>>;
|
|
17
115
|
|
|
18
|
-
|
|
116
|
+
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
|
+
|
|
118
|
+
export { CallApiParameters, CallApiPlugin, CallApiRequestOptionsForHooks, CallApiSchemas, CombinedCallApiExtraOptions, InferSchemaResult, InterceptorsOrInterceptorArray, PossibleJavaScriptError, ResultModeUnion, callApi, createFetchClient, defineParameters };
|