@zayne-labs/callapi 1.12.5 → 1.12.6
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 +0 -1
- package/dist/constants/index.d.ts +2 -1
- package/dist/constants/index.js +1 -1
- package/dist/{default-types-CswfU2bI.d.ts → default-types-CyPF_5eh.d.ts} +206 -200
- package/dist/{defaults-D0QJmGE5.js → defaults-IsBgvt90.js} +10 -3
- package/dist/defaults-IsBgvt90.js.map +1 -0
- package/dist/{index-DMCchZ0z.d.ts → index-CQfVY7gI.d.ts} +4 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.js +57 -49
- package/dist/index.js.map +1 -1
- package/dist/utils/external/index.d.ts +1 -1
- package/dist/utils/external/index.js +1 -1
- package/package.json +1 -1
- package/dist/defaults-D0QJmGE5.js.map +0 -1
package/README.md
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
<a href="https://www.npmjs.com/package/@zayne-labs/callapi"><img src="https://img.shields.io/npm/dm/@zayne-labs/callapi?style=flat&color=EFBA5F" alt="downloads per month"></a>
|
|
12
12
|
<a href="https://github.com/zayne-labs/callapi/graphs/commit-activity"><img src="https://img.shields.io/github/commit-activity/m/zayne-labs/callapi?style=flat&color=EFBA5F" alt="commit activity"></a>
|
|
13
13
|
<a href="https://deepwiki.com/zayne-labs/callapi"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
|
|
14
|
-
<a href="https://code2tutorial.com/tutorial/f77cfbd0-3c37-4c37-9608-b3c977e46f00/index.md"><img src="https://img.shields.io/badge/Code2Tutorial-blue?color=blue&logo=victoriametrics" alt="Code2Tutorial"></a>
|
|
15
14
|
</p>
|
|
16
15
|
|
|
17
16
|
<p align="center">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dt as fetchSpecificKeys,
|
|
1
|
+
import { Dt as fetchSpecificKeys, bt as fallBackRouteSchemaKey, tt as RequestContext, yt as FallBackRouteSchemaKey } from "../default-types-CyPF_5eh.js";
|
|
2
2
|
|
|
3
3
|
//#region src/constants/defaults.d.ts
|
|
4
4
|
declare const extraOptionDefaults: Readonly<Readonly<{
|
|
@@ -6,6 +6,7 @@ declare const extraOptionDefaults: Readonly<Readonly<{
|
|
|
6
6
|
(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
|
|
7
7
|
(value: any, replacer?: (number | string)[] | null, space?: string | number): string;
|
|
8
8
|
};
|
|
9
|
+
debugMode: true;
|
|
9
10
|
defaultHTTPErrorMessage: string;
|
|
10
11
|
dedupeCacheScope: "local";
|
|
11
12
|
dedupeKey: (ctx: RequestContext) => string;
|
package/dist/constants/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { F as fallBackRouteSchemaKey, I as fetchSpecificKeys, n as requestOptionDefaults, t as extraOptionDefaults } from "../defaults-
|
|
1
|
+
import { F as fallBackRouteSchemaKey, I as fetchSpecificKeys, n as requestOptionDefaults, t as extraOptionDefaults } from "../defaults-IsBgvt90.js";
|
|
2
2
|
export { extraOptionDefaults, fallBackRouteSchemaKey, fetchSpecificKeys, requestOptionDefaults };
|
|
@@ -37,44 +37,6 @@ type CommonRequestHeaders = "Access-Control-Allow-Credentials" | "Access-Control
|
|
|
37
37
|
type CommonAuthorizationHeaders = `${"Basic" | "Bearer" | "Token"} ${string}`;
|
|
38
38
|
type CommonContentTypes = "application/epub+zip" | "application/gzip" | "application/json" | "application/ld+json" | "application/octet-stream" | "application/ogg" | "application/pdf" | "application/rtf" | "application/vnd.ms-fontobject" | "application/wasm" | "application/xhtml+xml" | "application/xml" | "application/zip" | "audio/aac" | "audio/mpeg" | "audio/ogg" | "audio/opus" | "audio/webm" | "audio/x-midi" | "font/otf" | "font/ttf" | "font/woff" | "font/woff2" | "image/avif" | "image/bmp" | "image/gif" | "image/jpeg" | "image/png" | "image/svg+xml" | "image/tiff" | "image/webp" | "image/x-icon" | "model/gltf-binary" | "model/gltf+json" | "text/calendar" | "text/css" | "text/csv" | "text/html" | "text/javascript" | "text/plain" | "video/3gpp" | "video/3gpp2" | "video/av1" | "video/mp2t" | "video/mp4" | "video/mpeg" | "video/ogg" | "video/webm" | "video/x-msvideo" | AnyString;
|
|
39
39
|
//#endregion
|
|
40
|
-
//#region src/auth.d.ts
|
|
41
|
-
type PossibleAuthValue = Awaitable<string | null | undefined>;
|
|
42
|
-
type PossibleAuthValueOrGetter = PossibleAuthValue | (() => PossibleAuthValue);
|
|
43
|
-
type BearerAuth = {
|
|
44
|
-
type: "Bearer";
|
|
45
|
-
value: PossibleAuthValueOrGetter;
|
|
46
|
-
};
|
|
47
|
-
type TokenAuth = {
|
|
48
|
-
type: "Token";
|
|
49
|
-
value: PossibleAuthValueOrGetter;
|
|
50
|
-
};
|
|
51
|
-
type BasicAuth = {
|
|
52
|
-
type: "Basic";
|
|
53
|
-
username: PossibleAuthValueOrGetter;
|
|
54
|
-
password: PossibleAuthValueOrGetter;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Custom auth
|
|
58
|
-
*
|
|
59
|
-
* @param prefix - prefix of the header
|
|
60
|
-
* @param authValue - value of the header
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* ```ts
|
|
64
|
-
* {
|
|
65
|
-
* type: "Custom",
|
|
66
|
-
* prefix: "Token",
|
|
67
|
-
* authValue: "token"
|
|
68
|
-
* }
|
|
69
|
-
* ```
|
|
70
|
-
*/
|
|
71
|
-
type CustomAuth = {
|
|
72
|
-
type: "Custom";
|
|
73
|
-
prefix: PossibleAuthValueOrGetter;
|
|
74
|
-
value: PossibleAuthValueOrGetter;
|
|
75
|
-
};
|
|
76
|
-
type AuthOption = PossibleAuthValueOrGetter | BearerAuth | TokenAuth | BasicAuth | CustomAuth;
|
|
77
|
-
//#endregion
|
|
78
40
|
//#region src/constants/validation.d.ts
|
|
79
41
|
declare const fallBackRouteSchemaKey = "@default";
|
|
80
42
|
type FallBackRouteSchemaKey = typeof fallBackRouteSchemaKey;
|
|
@@ -383,165 +345,6 @@ interface URLOptions {
|
|
|
383
345
|
query?: Query;
|
|
384
346
|
}
|
|
385
347
|
//#endregion
|
|
386
|
-
//#region src/types/conditional-types.d.ts
|
|
387
|
-
/**
|
|
388
|
-
* @description Makes a type partial if the output type of TSchema is not provided or has undefined in the union, otherwise makes it required
|
|
389
|
-
*/
|
|
390
|
-
type MakeSchemaOptionRequiredIfDefined<TSchemaOption extends CallApiSchema[keyof CallApiSchema], TObject> = undefined extends InferSchemaOutput<TSchemaOption, undefined> ? TObject : Required<TObject>;
|
|
391
|
-
type MergeBaseWithRouteKey<TBaseURLOrPrefix extends string | undefined, TRouteKey extends string> = TBaseURLOrPrefix extends string ? TRouteKey extends `${AtSymbol}${infer TMethod extends RouteKeyMethods}/${infer TRestOfRoutKey}` ? `${AtSymbol}${TMethod}/${RemoveLeadingSlash<RemoveTrailingSlash<TBaseURLOrPrefix>>}/${RemoveLeadingSlash<TRestOfRoutKey>}` : `${TBaseURLOrPrefix}${TRouteKey}` : TRouteKey;
|
|
392
|
-
type ApplyURLBasedConfig<TSchemaConfig extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = TSchemaConfig["prefix"] extends string ? MergeBaseWithRouteKey<TSchemaConfig["prefix"], TSchemaRouteKeys> : TSchemaConfig["baseURL"] extends string ? MergeBaseWithRouteKey<TSchemaConfig["baseURL"], TSchemaRouteKeys> : TSchemaRouteKeys;
|
|
393
|
-
type ApplyStrictConfig<TSchemaConfig extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = TSchemaConfig["strict"] extends true ? TSchemaRouteKeys : // eslint-disable-next-line perfectionist/sort-union-types -- Don't sort union types
|
|
394
|
-
TSchemaRouteKeys | Exclude<InitURLOrURLObject, RouteKeyMethodsURLUnion>;
|
|
395
|
-
type ApplySchemaConfiguration<TSchemaConfig extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = ApplyStrictConfig<TSchemaConfig, ApplyURLBasedConfig<TSchemaConfig, TSchemaRouteKeys>>;
|
|
396
|
-
type InferAllMainRoutes<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes> = Omit<TBaseSchemaRoutes, FallBackRouteSchemaKey>;
|
|
397
|
-
type InferAllMainRouteKeys<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TSchemaConfig extends CallApiSchemaConfig> = ApplySchemaConfiguration<TSchemaConfig, Extract<keyof InferAllMainRoutes<TBaseSchemaRoutes>, string>>;
|
|
398
|
-
type InferInitURL<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TSchemaConfig extends CallApiSchemaConfig> = keyof TBaseSchemaRoutes extends never ? InitURLOrURLObject : InferAllMainRouteKeys<TBaseSchemaRoutes, TSchemaConfig>;
|
|
399
|
-
type GetCurrentRouteSchemaKey<TSchemaConfig extends CallApiSchemaConfig, TPath> = TPath extends URL ? string : TSchemaConfig["prefix"] extends string ? TPath extends (`${AtSymbol}${infer TMethod extends RouteKeyMethods}/${RemoveLeadingSlash<TSchemaConfig["prefix"]>}${infer TCurrentRoute}`) ? `${AtSymbol}${TMethod}/${RemoveLeadingSlash<TCurrentRoute>}` : TPath extends `${TSchemaConfig["prefix"]}${infer TCurrentRoute}` ? TCurrentRoute : string : TSchemaConfig["baseURL"] extends string ? TPath extends (`${AtSymbol}${infer TMethod extends RouteKeyMethods}/${TSchemaConfig["baseURL"]}${infer TCurrentRoute}`) ? `${AtSymbol}${TMethod}/${RemoveLeadingSlash<TCurrentRoute>}` : TPath extends `${TSchemaConfig["baseURL"]}${infer TCurrentRoute}` ? TCurrentRoute : string : TPath;
|
|
400
|
-
type GetCurrentRouteSchema<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TComputedFallBackRouteSchema = TBaseSchemaRoutes[FallBackRouteSchemaKey], TComputedCurrentRouteSchema = TBaseSchemaRoutes[TCurrentRouteSchemaKey], TComputedRouteSchema extends CallApiSchema = NonNullable<Omit<TComputedFallBackRouteSchema, keyof TComputedCurrentRouteSchema> & TComputedCurrentRouteSchema>> = TComputedRouteSchema extends CallApiSchema ? Writeable<TComputedRouteSchema, "deep"> : CallApiSchema;
|
|
401
|
-
type JsonPrimitive = boolean | number | string | null | undefined;
|
|
402
|
-
type SerializableObject = Record<PropertyKey, unknown>;
|
|
403
|
-
type SerializableArray = Array<JsonPrimitive | SerializableObject> | ReadonlyArray<JsonPrimitive | SerializableObject>;
|
|
404
|
-
type Body = UnmaskType<Exclude<RequestInit["body"], undefined> | SerializableArray | SerializableObject>;
|
|
405
|
-
type InferBodyOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["body"], {
|
|
406
|
-
/**
|
|
407
|
-
* Body of the request, can be a object or any other supported body type.
|
|
408
|
-
*/
|
|
409
|
-
body?: InferSchemaOutput<TSchema["body"], Body>;
|
|
410
|
-
}>;
|
|
411
|
-
type MethodUnion = UnmaskType<"CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE" | AnyString>;
|
|
412
|
-
type ExtractMethodFromURL<TInitURL> = string extends TInitURL ? MethodUnion : TInitURL extends `${AtSymbol}${infer TMethod extends RouteKeyMethods}/${string}` ? Uppercase<TMethod> : MethodUnion;
|
|
413
|
-
type InferMethodOption<TSchema extends CallApiSchema, TInitURL extends InitURLOrURLObject> = MakeSchemaOptionRequiredIfDefined<TSchema["method"], {
|
|
414
|
-
/**
|
|
415
|
-
* HTTP method for the request.
|
|
416
|
-
* @default "GET"
|
|
417
|
-
*/
|
|
418
|
-
method?: InferSchemaOutput<TSchema["method"], ExtractMethodFromURL<TInitURL>>;
|
|
419
|
-
}>;
|
|
420
|
-
type HeadersOption = UnmaskType<Headers | Record<"Authorization", CommonAuthorizationHeaders | undefined> | Record<"Content-Type", CommonContentTypes | undefined> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | Array<[string, string]>>;
|
|
421
|
-
type InferHeadersOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["headers"], {
|
|
422
|
-
/**
|
|
423
|
-
* Headers to be used in the request.
|
|
424
|
-
*/
|
|
425
|
-
headers?: InferSchemaOutput<TSchema["headers"], HeadersOption> | ((context: {
|
|
426
|
-
baseHeaders: Extract<HeadersOption, Record<string, unknown>>;
|
|
427
|
-
}) => InferSchemaOutput<TSchema["headers"], HeadersOption>);
|
|
428
|
-
}>;
|
|
429
|
-
type InferRequestOptions<TSchema extends CallApiSchema, TInitURL extends InferInitURL<BaseCallApiSchemaRoutes, CallApiSchemaConfig>> = InferBodyOption<TSchema> & InferHeadersOption<TSchema> & InferMethodOption<TSchema, TInitURL>;
|
|
430
|
-
type InferMetaOption<TSchema extends CallApiSchema, TCallApiContext extends CallApiContext> = MakeSchemaOptionRequiredIfDefined<TSchema["meta"], {
|
|
431
|
-
/**
|
|
432
|
-
* - An optional field you can fill with additional information,
|
|
433
|
-
* to associate with the request, typically used for logging or tracing.
|
|
434
|
-
*
|
|
435
|
-
* - A good use case for this, would be to use the info to handle specific cases in any of the shared interceptors.
|
|
436
|
-
*
|
|
437
|
-
* @example
|
|
438
|
-
* ```ts
|
|
439
|
-
* const callMainApi = callApi.create({
|
|
440
|
-
* baseURL: "https://main-api.com",
|
|
441
|
-
* onResponseError: ({ response, options }) => {
|
|
442
|
-
* if (options.meta?.userId) {
|
|
443
|
-
* console.error(`User ${options.meta.userId} made an error`);
|
|
444
|
-
* }
|
|
445
|
-
* },
|
|
446
|
-
* });
|
|
447
|
-
*
|
|
448
|
-
* const response = await callMainApi({
|
|
449
|
-
* url: "https://example.com/api/data",
|
|
450
|
-
* meta: { userId: "123" },
|
|
451
|
-
* });
|
|
452
|
-
* ```
|
|
453
|
-
*/
|
|
454
|
-
meta?: InferSchemaOutput<TSchema["meta"], TCallApiContext["Meta"]>;
|
|
455
|
-
}>;
|
|
456
|
-
type InferAuthOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["auth"], {
|
|
457
|
-
/**
|
|
458
|
-
* Automatically add an Authorization header value.
|
|
459
|
-
*
|
|
460
|
-
* Supports multiple authentication patterns:
|
|
461
|
-
* - String: Direct authorization header value
|
|
462
|
-
* - Auth object: Structured authentication configuration
|
|
463
|
-
*
|
|
464
|
-
* @example
|
|
465
|
-
* ```ts
|
|
466
|
-
* // Bearer auth
|
|
467
|
-
* const response = await callMainApi({
|
|
468
|
-
* url: "https://example.com/api/data",
|
|
469
|
-
* auth: "123456",
|
|
470
|
-
* });
|
|
471
|
-
*
|
|
472
|
-
* // Bearer auth
|
|
473
|
-
* const response = await callMainApi({
|
|
474
|
-
* url: "https://example.com/api/data",
|
|
475
|
-
* auth: {
|
|
476
|
-
* type: "Bearer",
|
|
477
|
-
* value: "123456",
|
|
478
|
-
* },
|
|
479
|
-
})
|
|
480
|
-
*
|
|
481
|
-
* // Token auth
|
|
482
|
-
* const response = await callMainApi({
|
|
483
|
-
* url: "https://example.com/api/data",
|
|
484
|
-
* auth: {
|
|
485
|
-
* type: "Token",
|
|
486
|
-
* value: "123456",
|
|
487
|
-
* },
|
|
488
|
-
* });
|
|
489
|
-
*
|
|
490
|
-
* // Basic auth
|
|
491
|
-
* const response = await callMainApi({
|
|
492
|
-
* url: "https://example.com/api/data",
|
|
493
|
-
* auth: {
|
|
494
|
-
* type: "Basic",
|
|
495
|
-
* username: "username",
|
|
496
|
-
* password: "password",
|
|
497
|
-
* },
|
|
498
|
-
* });
|
|
499
|
-
*
|
|
500
|
-
* ```
|
|
501
|
-
*/
|
|
502
|
-
auth?: InferSchemaOutput<TSchema["auth"], AuthOption>;
|
|
503
|
-
}>;
|
|
504
|
-
type InferQueryOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["query"], {
|
|
505
|
-
/**
|
|
506
|
-
* Parameters to be appended to the URL (i.e: /:id)
|
|
507
|
-
*/
|
|
508
|
-
query?: InferSchemaOutput<TSchema["query"], Query>;
|
|
509
|
-
}>;
|
|
510
|
-
type EmptyString = "";
|
|
511
|
-
type EmptyTuple = readonly [];
|
|
512
|
-
type StringTuple = readonly string[];
|
|
513
|
-
type PossibleParamNamePatterns = `${string}:${string}` | `${string}{${string}}${"" | AnyString}`;
|
|
514
|
-
type ExtractRouteParamNames<TCurrentRoute, TParamNamesAccumulator extends StringTuple = EmptyTuple> = TCurrentRoute extends PossibleParamNamePatterns ? TCurrentRoute extends `${infer TRoutePrefix}:${infer TParamAndRemainingRoute}` ? TParamAndRemainingRoute extends `${infer TCurrentParam}/${infer TRemainingRoute}` ? TCurrentParam extends EmptyString ? ExtractRouteParamNames<`${TRoutePrefix}/${TRemainingRoute}`, TParamNamesAccumulator> : ExtractRouteParamNames<`${TRoutePrefix}/${TRemainingRoute}`, [...TParamNamesAccumulator, TCurrentParam]> : TParamAndRemainingRoute extends `${infer TCurrentParam}` ? TCurrentParam extends EmptyString ? ExtractRouteParamNames<TRoutePrefix, TParamNamesAccumulator> : ExtractRouteParamNames<TRoutePrefix, [...TParamNamesAccumulator, TCurrentParam]> : ExtractRouteParamNames<TRoutePrefix, TParamNamesAccumulator> : TCurrentRoute extends `${infer TRoutePrefix}{${infer TCurrentParam}}${infer TRemainingRoute}` ? TCurrentParam extends EmptyString ? ExtractRouteParamNames<`${TRoutePrefix}${TRemainingRoute}`, TParamNamesAccumulator> : ExtractRouteParamNames<`${TRoutePrefix}${TRemainingRoute}`, [...TParamNamesAccumulator, TCurrentParam]> : TParamNamesAccumulator : TParamNamesAccumulator;
|
|
515
|
-
type ConvertParamNamesToRecord<TParamNames extends StringTuple> = Prettify<TParamNames extends (readonly [infer TFirstParamName extends string, ...infer TRemainingParamNames extends StringTuple]) ? Record<TFirstParamName, AllowedQueryParamValues> & ConvertParamNamesToRecord<TRemainingParamNames> : NonNullable<unknown>>;
|
|
516
|
-
type ConvertParamNamesToTuple<TParamNames extends StringTuple> = TParamNames extends readonly [string, ...infer TRemainingParamNames extends StringTuple] ? [AllowedQueryParamValues, ...ConvertParamNamesToTuple<TRemainingParamNames>] : [];
|
|
517
|
-
type InferParamsFromRoute<TCurrentRoute> = ExtractRouteParamNames<TCurrentRoute> extends StringTuple ? ExtractRouteParamNames<TCurrentRoute> extends EmptyTuple ? Params : ConvertParamNamesToRecord<ExtractRouteParamNames<TCurrentRoute>> | ConvertParamNamesToTuple<ExtractRouteParamNames<TCurrentRoute>> : Params;
|
|
518
|
-
type MakeParamsOptionRequired<TParamsSchemaOption extends CallApiSchema["params"], TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TObject> = MakeSchemaOptionRequiredIfDefined<TParamsSchemaOption, Params extends InferParamsFromRoute<TCurrentRouteSchemaKey> ? TObject : TCurrentRouteSchemaKey extends Extract<keyof TBaseSchemaRoutes, TCurrentRouteSchemaKey> ? undefined extends InferSchemaOutput<TParamsSchemaOption, null> ? TObject : Required<TObject> : TObject>;
|
|
519
|
-
type InferParamsOption<TSchema extends CallApiSchema, TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string> = MakeParamsOptionRequired<TSchema["params"], TBaseSchemaRoutes, TCurrentRouteSchemaKey, {
|
|
520
|
-
/**
|
|
521
|
-
* Parameters to be appended to the URL (i.e: /:id)
|
|
522
|
-
*/
|
|
523
|
-
params?: InferSchemaOutput<TSchema["params"], InferParamsFromRoute<TCurrentRouteSchemaKey>>;
|
|
524
|
-
}>;
|
|
525
|
-
type InferExtraOptions<TSchema extends CallApiSchema, TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TCallApiContext extends CallApiContext> = InferAuthOption<TSchema> & InferMetaOption<TSchema, TCallApiContext> & InferParamsOption<TSchema, TBaseSchemaRoutes, TCurrentRouteSchemaKey> & InferQueryOption<TSchema>;
|
|
526
|
-
type ResultModeOption<TErrorData, TResultMode extends ResultModeType> = TErrorData extends false ? {
|
|
527
|
-
resultMode: "onlyData";
|
|
528
|
-
} : TErrorData extends false | undefined ? {
|
|
529
|
-
resultMode?: "onlyData";
|
|
530
|
-
} : {
|
|
531
|
-
resultMode?: TResultMode;
|
|
532
|
-
};
|
|
533
|
-
type ThrowOnErrorBoolean = boolean;
|
|
534
|
-
type ThrowOnErrorType<TErrorData, TThrowOnError extends ThrowOnErrorBoolean> = TThrowOnError | ((context: ErrorContext<{
|
|
535
|
-
ErrorData: TErrorData;
|
|
536
|
-
}>) => TThrowOnError);
|
|
537
|
-
type ThrowOnErrorOption<TErrorData, TThrowOnError extends ThrowOnErrorBoolean> = TErrorData extends false ? {
|
|
538
|
-
throwOnError: true;
|
|
539
|
-
} : TErrorData extends false | undefined ? {
|
|
540
|
-
throwOnError?: true;
|
|
541
|
-
} : {
|
|
542
|
-
throwOnError?: ThrowOnErrorType<TErrorData, TThrowOnError>;
|
|
543
|
-
};
|
|
544
|
-
//#endregion
|
|
545
348
|
//#region src/retry.d.ts
|
|
546
349
|
declare const defaultRetryStatusCodesLookup: () => Readonly<{
|
|
547
350
|
408: "Request Timeout";
|
|
@@ -1165,7 +968,7 @@ declare class ValidationError extends Error {
|
|
|
1165
968
|
static isError(error: unknown): error is ValidationError;
|
|
1166
969
|
}
|
|
1167
970
|
//#endregion
|
|
1168
|
-
//#region src/types/
|
|
971
|
+
//#region src/types/options-types.d.ts
|
|
1169
972
|
interface Register {}
|
|
1170
973
|
type GlobalMeta = Register extends {
|
|
1171
974
|
meta?: infer TMeta extends DefaultMetaObject;
|
|
@@ -1300,6 +1103,12 @@ type SharedExtraOptions<TCallApiContext extends CallApiContext = DefaultCallApiC
|
|
|
1300
1103
|
* ```
|
|
1301
1104
|
*/
|
|
1302
1105
|
customFetchImpl?: FetchImpl;
|
|
1106
|
+
/**
|
|
1107
|
+
* Enable debug mode for the request.
|
|
1108
|
+
*
|
|
1109
|
+
* @default true
|
|
1110
|
+
*/
|
|
1111
|
+
debugMode?: boolean;
|
|
1303
1112
|
/**
|
|
1304
1113
|
* Default HTTP error message when server doesn't provide one.
|
|
1305
1114
|
*
|
|
@@ -1688,6 +1497,203 @@ type CallApiParameters<TData = DefaultDataType, TErrorData = DefaultDataType, TR
|
|
|
1688
1497
|
type CallApiResult<TData, TErrorData, TResultMode extends ResultModeType, TThrowOnError extends ThrowOnErrorBoolean> = InferCallApiResult<TData, TErrorData, TResultMode, TThrowOnError>;
|
|
1689
1498
|
type CallApiResultLoose<TData, TErrorData, TResultMode extends ResultModeType = ResultModeType, TThrowOnError extends ThrowOnErrorBoolean = ThrowOnErrorBoolean> = InferCallApiResult<TData, TErrorData, TResultMode, TThrowOnError>;
|
|
1690
1499
|
//#endregion
|
|
1500
|
+
//#region src/auth.d.ts
|
|
1501
|
+
type PossibleAuthValue = Awaitable<string | null | undefined>;
|
|
1502
|
+
type PossibleAuthValueOrGetter = PossibleAuthValue | (() => PossibleAuthValue);
|
|
1503
|
+
type BearerAuth = {
|
|
1504
|
+
type: "Bearer";
|
|
1505
|
+
value: PossibleAuthValueOrGetter;
|
|
1506
|
+
};
|
|
1507
|
+
type TokenAuth = {
|
|
1508
|
+
type: "Token";
|
|
1509
|
+
value: PossibleAuthValueOrGetter;
|
|
1510
|
+
};
|
|
1511
|
+
type BasicAuth = {
|
|
1512
|
+
type: "Basic";
|
|
1513
|
+
username: PossibleAuthValueOrGetter;
|
|
1514
|
+
password: PossibleAuthValueOrGetter;
|
|
1515
|
+
};
|
|
1516
|
+
/**
|
|
1517
|
+
* Custom auth
|
|
1518
|
+
*
|
|
1519
|
+
* @param prefix - prefix of the header
|
|
1520
|
+
* @param authValue - value of the header
|
|
1521
|
+
*
|
|
1522
|
+
* @example
|
|
1523
|
+
* ```ts
|
|
1524
|
+
* {
|
|
1525
|
+
* type: "Custom",
|
|
1526
|
+
* prefix: "Token",
|
|
1527
|
+
* authValue: "token"
|
|
1528
|
+
* }
|
|
1529
|
+
* ```
|
|
1530
|
+
*/
|
|
1531
|
+
type CustomAuth = {
|
|
1532
|
+
type: "Custom";
|
|
1533
|
+
prefix: PossibleAuthValueOrGetter;
|
|
1534
|
+
value: PossibleAuthValueOrGetter;
|
|
1535
|
+
};
|
|
1536
|
+
type AuthOption = PossibleAuthValueOrGetter | BearerAuth | TokenAuth | BasicAuth | CustomAuth;
|
|
1537
|
+
//#endregion
|
|
1538
|
+
//#region src/types/conditional-types.d.ts
|
|
1539
|
+
/**
|
|
1540
|
+
* @description Makes a type partial if the output type of TSchema is not provided or has undefined in the union, otherwise makes it required
|
|
1541
|
+
*/
|
|
1542
|
+
type MakeSchemaOptionRequiredIfDefined<TSchemaOption extends CallApiSchema[keyof CallApiSchema], TObject> = undefined extends InferSchemaOutput<TSchemaOption, undefined> ? TObject : Required<TObject>;
|
|
1543
|
+
type MergeBaseWithRouteKey<TBaseURLOrPrefix extends string | undefined, TRouteKey extends string> = TBaseURLOrPrefix extends string ? TRouteKey extends `${AtSymbol}${infer TMethod extends RouteKeyMethods}/${infer TRestOfRoutKey}` ? `${AtSymbol}${TMethod}/${RemoveLeadingSlash<RemoveTrailingSlash<TBaseURLOrPrefix>>}/${RemoveLeadingSlash<TRestOfRoutKey>}` : `${TBaseURLOrPrefix}${TRouteKey}` : TRouteKey;
|
|
1544
|
+
type ApplyURLBasedConfig<TSchemaConfig extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = TSchemaConfig["prefix"] extends string ? MergeBaseWithRouteKey<TSchemaConfig["prefix"], TSchemaRouteKeys> : TSchemaConfig["baseURL"] extends string ? MergeBaseWithRouteKey<TSchemaConfig["baseURL"], TSchemaRouteKeys> : TSchemaRouteKeys;
|
|
1545
|
+
type ApplyStrictConfig<TSchemaConfig extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = TSchemaConfig["strict"] extends true ? TSchemaRouteKeys : // eslint-disable-next-line perfectionist/sort-union-types -- Don't sort union types
|
|
1546
|
+
TSchemaRouteKeys | Exclude<InitURLOrURLObject, RouteKeyMethodsURLUnion>;
|
|
1547
|
+
type ApplySchemaConfiguration<TSchemaConfig extends CallApiSchemaConfig, TSchemaRouteKeys extends string> = ApplyStrictConfig<TSchemaConfig, ApplyURLBasedConfig<TSchemaConfig, TSchemaRouteKeys>>;
|
|
1548
|
+
type InferAllMainRoutes<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes> = Omit<TBaseSchemaRoutes, FallBackRouteSchemaKey>;
|
|
1549
|
+
type InferAllMainRouteKeys<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TSchemaConfig extends CallApiSchemaConfig> = ApplySchemaConfiguration<TSchemaConfig, Extract<keyof InferAllMainRoutes<TBaseSchemaRoutes>, string>>;
|
|
1550
|
+
type InferInitURL<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TSchemaConfig extends CallApiSchemaConfig> = keyof TBaseSchemaRoutes extends never ? InitURLOrURLObject : InferAllMainRouteKeys<TBaseSchemaRoutes, TSchemaConfig>;
|
|
1551
|
+
type GetCurrentRouteSchemaKey<TSchemaConfig extends CallApiSchemaConfig, TPath> = TPath extends URL ? string : TSchemaConfig["prefix"] extends string ? TPath extends (`${AtSymbol}${infer TMethod extends RouteKeyMethods}/${RemoveLeadingSlash<TSchemaConfig["prefix"]>}${infer TCurrentRoute}`) ? `${AtSymbol}${TMethod}/${RemoveLeadingSlash<TCurrentRoute>}` : TPath extends `${TSchemaConfig["prefix"]}${infer TCurrentRoute}` ? TCurrentRoute : string : TSchemaConfig["baseURL"] extends string ? TPath extends (`${AtSymbol}${infer TMethod extends RouteKeyMethods}/${TSchemaConfig["baseURL"]}${infer TCurrentRoute}`) ? `${AtSymbol}${TMethod}/${RemoveLeadingSlash<TCurrentRoute>}` : TPath extends `${TSchemaConfig["baseURL"]}${infer TCurrentRoute}` ? TCurrentRoute : string : TPath;
|
|
1552
|
+
type GetCurrentRouteSchema<TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TComputedFallBackRouteSchema = TBaseSchemaRoutes[FallBackRouteSchemaKey], TComputedCurrentRouteSchema = TBaseSchemaRoutes[TCurrentRouteSchemaKey], TComputedRouteSchema extends CallApiSchema = NonNullable<Omit<TComputedFallBackRouteSchema, keyof TComputedCurrentRouteSchema> & TComputedCurrentRouteSchema>> = TComputedRouteSchema extends CallApiSchema ? Writeable<TComputedRouteSchema, "deep"> : CallApiSchema;
|
|
1553
|
+
type JsonPrimitive = boolean | number | string | null | undefined;
|
|
1554
|
+
type SerializableObject = Record<PropertyKey, unknown>;
|
|
1555
|
+
type SerializableArray = Array<JsonPrimitive | SerializableObject> | ReadonlyArray<JsonPrimitive | SerializableObject>;
|
|
1556
|
+
type Body = UnmaskType<Exclude<RequestInit["body"], undefined> | SerializableArray | SerializableObject>;
|
|
1557
|
+
type InferBodyOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["body"], {
|
|
1558
|
+
/**
|
|
1559
|
+
* Body of the request, can be a object or any other supported body type.
|
|
1560
|
+
*/
|
|
1561
|
+
body?: InferSchemaOutput<TSchema["body"], Body>;
|
|
1562
|
+
}>;
|
|
1563
|
+
type MethodUnion = UnmaskType<"CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE" | AnyString>;
|
|
1564
|
+
type ExtractMethodFromURL<TInitURL> = string extends TInitURL ? MethodUnion : TInitURL extends `${AtSymbol}${infer TMethod extends RouteKeyMethods}/${string}` ? Uppercase<TMethod> : MethodUnion;
|
|
1565
|
+
type InferMethodOption<TSchema extends CallApiSchema, TInitURL extends InitURLOrURLObject> = MakeSchemaOptionRequiredIfDefined<TSchema["method"], {
|
|
1566
|
+
/**
|
|
1567
|
+
* HTTP method for the request.
|
|
1568
|
+
* @default "GET"
|
|
1569
|
+
*/
|
|
1570
|
+
method?: InferSchemaOutput<TSchema["method"], ExtractMethodFromURL<TInitURL>>;
|
|
1571
|
+
}>;
|
|
1572
|
+
type HeadersOption = UnmaskType<Headers | Record<"Authorization", CommonAuthorizationHeaders | undefined> | Record<"Content-Type", CommonContentTypes | undefined> | Record<CommonRequestHeaders, string | undefined> | Record<string, string | undefined> | Array<[string, string]>>;
|
|
1573
|
+
type InferHeadersOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["headers"], {
|
|
1574
|
+
/**
|
|
1575
|
+
* Headers to be used in the request.
|
|
1576
|
+
*/
|
|
1577
|
+
headers?: InferSchemaOutput<TSchema["headers"], HeadersOption> | ((context: {
|
|
1578
|
+
baseHeaders: Extract<HeadersOption, Record<string, unknown>>;
|
|
1579
|
+
}) => InferSchemaOutput<TSchema["headers"], HeadersOption>);
|
|
1580
|
+
}>;
|
|
1581
|
+
type InferRequestOptions<TSchema extends CallApiSchema, TInitURL extends InferInitURL<BaseCallApiSchemaRoutes, CallApiSchemaConfig>> = InferBodyOption<TSchema> & InferHeadersOption<TSchema> & InferMethodOption<TSchema, TInitURL>;
|
|
1582
|
+
type InferMetaOption<TSchema extends CallApiSchema, TCallApiContext extends CallApiContext> = MakeSchemaOptionRequiredIfDefined<TSchema["meta"], {
|
|
1583
|
+
/**
|
|
1584
|
+
* - An optional field you can fill with additional information,
|
|
1585
|
+
* to associate with the request, typically used for logging or tracing.
|
|
1586
|
+
*
|
|
1587
|
+
* - A good use case for this, would be to use the info to handle specific cases in any of the shared interceptors.
|
|
1588
|
+
*
|
|
1589
|
+
* @example
|
|
1590
|
+
* ```ts
|
|
1591
|
+
* const callMainApi = callApi.create({
|
|
1592
|
+
* baseURL: "https://main-api.com",
|
|
1593
|
+
* onResponseError: ({ response, options }) => {
|
|
1594
|
+
* if (options.meta?.userId) {
|
|
1595
|
+
* console.error(`User ${options.meta.userId} made an error`);
|
|
1596
|
+
* }
|
|
1597
|
+
* },
|
|
1598
|
+
* });
|
|
1599
|
+
*
|
|
1600
|
+
* const response = await callMainApi({
|
|
1601
|
+
* url: "https://example.com/api/data",
|
|
1602
|
+
* meta: { userId: "123" },
|
|
1603
|
+
* });
|
|
1604
|
+
* ```
|
|
1605
|
+
*/
|
|
1606
|
+
meta?: InferSchemaOutput<TSchema["meta"], TCallApiContext["Meta"]>;
|
|
1607
|
+
}>;
|
|
1608
|
+
type InferAuthOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["auth"], {
|
|
1609
|
+
/**
|
|
1610
|
+
* Automatically add an Authorization header value.
|
|
1611
|
+
*
|
|
1612
|
+
* Supports multiple authentication patterns:
|
|
1613
|
+
* - String: Direct authorization header value
|
|
1614
|
+
* - Auth object: Structured authentication configuration
|
|
1615
|
+
*
|
|
1616
|
+
* @example
|
|
1617
|
+
* ```ts
|
|
1618
|
+
* // Bearer auth
|
|
1619
|
+
* const response = await callMainApi({
|
|
1620
|
+
* url: "https://example.com/api/data",
|
|
1621
|
+
* auth: "123456",
|
|
1622
|
+
* });
|
|
1623
|
+
*
|
|
1624
|
+
* // Bearer auth
|
|
1625
|
+
* const response = await callMainApi({
|
|
1626
|
+
* url: "https://example.com/api/data",
|
|
1627
|
+
* auth: {
|
|
1628
|
+
* type: "Bearer",
|
|
1629
|
+
* value: "123456",
|
|
1630
|
+
* },
|
|
1631
|
+
})
|
|
1632
|
+
*
|
|
1633
|
+
* // Token auth
|
|
1634
|
+
* const response = await callMainApi({
|
|
1635
|
+
* url: "https://example.com/api/data",
|
|
1636
|
+
* auth: {
|
|
1637
|
+
* type: "Token",
|
|
1638
|
+
* value: "123456",
|
|
1639
|
+
* },
|
|
1640
|
+
* });
|
|
1641
|
+
*
|
|
1642
|
+
* // Basic auth
|
|
1643
|
+
* const response = await callMainApi({
|
|
1644
|
+
* url: "https://example.com/api/data",
|
|
1645
|
+
* auth: {
|
|
1646
|
+
* type: "Basic",
|
|
1647
|
+
* username: "username",
|
|
1648
|
+
* password: "password",
|
|
1649
|
+
* },
|
|
1650
|
+
* });
|
|
1651
|
+
*
|
|
1652
|
+
* ```
|
|
1653
|
+
*/
|
|
1654
|
+
auth?: InferSchemaOutput<TSchema["auth"], AuthOption>;
|
|
1655
|
+
}>;
|
|
1656
|
+
type InferQueryOption<TSchema extends CallApiSchema> = MakeSchemaOptionRequiredIfDefined<TSchema["query"], {
|
|
1657
|
+
/**
|
|
1658
|
+
* Parameters to be appended to the URL (i.e: /:id)
|
|
1659
|
+
*/
|
|
1660
|
+
query?: InferSchemaOutput<TSchema["query"], Query>;
|
|
1661
|
+
}>;
|
|
1662
|
+
type EmptyString = "";
|
|
1663
|
+
type EmptyTuple = readonly [];
|
|
1664
|
+
type StringTuple = readonly string[];
|
|
1665
|
+
type PossibleParamNamePatterns = `${string}:${string}` | `${string}{${string}}${"" | AnyString}`;
|
|
1666
|
+
type ExtractRouteParamNames<TCurrentRoute, TParamNamesAccumulator extends StringTuple = EmptyTuple> = TCurrentRoute extends PossibleParamNamePatterns ? TCurrentRoute extends `${infer TRoutePrefix}:${infer TParamAndRemainingRoute}` ? TParamAndRemainingRoute extends `${infer TCurrentParam}/${infer TRemainingRoute}` ? TCurrentParam extends EmptyString ? ExtractRouteParamNames<`${TRoutePrefix}/${TRemainingRoute}`, TParamNamesAccumulator> : ExtractRouteParamNames<`${TRoutePrefix}/${TRemainingRoute}`, [...TParamNamesAccumulator, TCurrentParam]> : TParamAndRemainingRoute extends `${infer TCurrentParam}` ? TCurrentParam extends EmptyString ? ExtractRouteParamNames<TRoutePrefix, TParamNamesAccumulator> : ExtractRouteParamNames<TRoutePrefix, [...TParamNamesAccumulator, TCurrentParam]> : ExtractRouteParamNames<TRoutePrefix, TParamNamesAccumulator> : TCurrentRoute extends `${infer TRoutePrefix}{${infer TCurrentParam}}${infer TRemainingRoute}` ? TCurrentParam extends EmptyString ? ExtractRouteParamNames<`${TRoutePrefix}${TRemainingRoute}`, TParamNamesAccumulator> : ExtractRouteParamNames<`${TRoutePrefix}${TRemainingRoute}`, [...TParamNamesAccumulator, TCurrentParam]> : TParamNamesAccumulator : TParamNamesAccumulator;
|
|
1667
|
+
type ConvertParamNamesToRecord<TParamNames extends StringTuple> = Prettify<TParamNames extends (readonly [infer TFirstParamName extends string, ...infer TRemainingParamNames extends StringTuple]) ? Record<TFirstParamName, AllowedQueryParamValues> & ConvertParamNamesToRecord<TRemainingParamNames> : NonNullable<unknown>>;
|
|
1668
|
+
type ConvertParamNamesToTuple<TParamNames extends StringTuple> = TParamNames extends readonly [string, ...infer TRemainingParamNames extends StringTuple] ? [AllowedQueryParamValues, ...ConvertParamNamesToTuple<TRemainingParamNames>] : [];
|
|
1669
|
+
type InferParamsFromRoute<TCurrentRoute> = ExtractRouteParamNames<TCurrentRoute> extends StringTuple ? ExtractRouteParamNames<TCurrentRoute> extends EmptyTuple ? Params : ConvertParamNamesToRecord<ExtractRouteParamNames<TCurrentRoute>> | ConvertParamNamesToTuple<ExtractRouteParamNames<TCurrentRoute>> : Params;
|
|
1670
|
+
type MakeParamsOptionRequired<TParamsSchemaOption extends CallApiSchema["params"], TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TObject> = MakeSchemaOptionRequiredIfDefined<TParamsSchemaOption, Params extends InferParamsFromRoute<TCurrentRouteSchemaKey> ? TObject : TCurrentRouteSchemaKey extends Extract<keyof TBaseSchemaRoutes, TCurrentRouteSchemaKey> ? undefined extends InferSchemaOutput<TParamsSchemaOption, null> ? TObject : Required<TObject> : TObject>;
|
|
1671
|
+
type InferParamsOption<TSchema extends CallApiSchema, TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string> = MakeParamsOptionRequired<TSchema["params"], TBaseSchemaRoutes, TCurrentRouteSchemaKey, {
|
|
1672
|
+
/**
|
|
1673
|
+
* Parameters to be appended to the URL (i.e: /:id)
|
|
1674
|
+
*/
|
|
1675
|
+
params?: InferSchemaOutput<TSchema["params"], InferParamsFromRoute<TCurrentRouteSchemaKey>>;
|
|
1676
|
+
}>;
|
|
1677
|
+
type InferExtraOptions<TSchema extends CallApiSchema, TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, TCurrentRouteSchemaKey extends string, TCallApiContext extends CallApiContext> = InferAuthOption<TSchema> & InferMetaOption<TSchema, TCallApiContext> & InferParamsOption<TSchema, TBaseSchemaRoutes, TCurrentRouteSchemaKey> & InferQueryOption<TSchema>;
|
|
1678
|
+
type ResultModeOption<TErrorData, TResultMode extends ResultModeType> = TErrorData extends false ? {
|
|
1679
|
+
resultMode: "onlyData";
|
|
1680
|
+
} : TErrorData extends false | undefined ? {
|
|
1681
|
+
resultMode?: "onlyData";
|
|
1682
|
+
} : {
|
|
1683
|
+
resultMode?: TResultMode;
|
|
1684
|
+
};
|
|
1685
|
+
type ThrowOnErrorBoolean = boolean;
|
|
1686
|
+
type ThrowOnErrorType<TErrorData, TThrowOnError extends ThrowOnErrorBoolean> = TThrowOnError | ((context: ErrorContext<{
|
|
1687
|
+
ErrorData: TErrorData;
|
|
1688
|
+
}>) => TThrowOnError);
|
|
1689
|
+
type ThrowOnErrorOption<TErrorData, TThrowOnError extends ThrowOnErrorBoolean> = TErrorData extends false ? {
|
|
1690
|
+
throwOnError: true;
|
|
1691
|
+
} : TErrorData extends false | undefined ? {
|
|
1692
|
+
throwOnError?: true;
|
|
1693
|
+
} : {
|
|
1694
|
+
throwOnError?: ThrowOnErrorType<TErrorData, TThrowOnError>;
|
|
1695
|
+
};
|
|
1696
|
+
//#endregion
|
|
1691
1697
|
//#region src/result.d.ts
|
|
1692
1698
|
type ResponseParser<TData> = (text: string) => Awaitable<TData>;
|
|
1693
1699
|
declare const getResponseType: <TData>(response: Response, responseParser: ResponseParser<TData>) => {
|
|
@@ -1819,5 +1825,5 @@ type DefaultCallApiContext = Prettify<OverrideCallApiContext<Required<CallApiCon
|
|
|
1819
1825
|
Meta: GlobalMeta;
|
|
1820
1826
|
}>>;
|
|
1821
1827
|
//#endregion
|
|
1822
|
-
export {
|
|
1823
|
-
//# sourceMappingURL=default-types-
|
|
1828
|
+
export { Hooks as $, CallApiConfig as A, GetCallApiContextRequired as B, InferAllMainRouteKeys as C, DistributiveOmit as Ct, ThrowOnErrorBoolean as D, fetchSpecificKeys as Dt, InferParamsFromRoute as E, Writeable as Et, CallApiResult as F, ValidationError as G, InstanceContext as H, CallApiResultLoose as I, Middlewares as J, FetchImpl as K, GetBaseSchemaConfig as L, CallApiExtraOptions as M, CallApiParameters as N, BaseCallApiConfig as O, CallApiRequestOptions as P, ErrorContext as Q, GetBaseSchemaRoutes as R, GetCurrentRouteSchemaKey as S, AnyString as St, InferInitURL as T, Satisfies as Tt, Register as U, GlobalMeta as V, HTTPError as W, CallApiExtraOptionsForHooks as X, DedupeOptions as Y, CallApiRequestOptionsForHooks as Z, ResponseTypeType as _, InferSchemaOutput as _t, PluginHooks as a, ResponseStreamContext as at, ApplyURLBasedConfig as b, fallBackRouteSchemaKey as bt, CallApiResultErrorVariant as c, RetryOptions as ct, GetResponseType as d, BaseCallApiSchemaRoutes as dt, HooksOrHooksArray as et, InferCallApiResult as f, BaseSchemaRouteKeyPrefixes as ft, ResponseTypeMap as g, InferSchemaInput as gt, PossibleValidationError as h, CallApiSchemaType as ht, CallApiPlugin as i, ResponseErrorContext as it, CallApiContext as j, BaseCallApiExtraOptions as k, CallApiResultSuccessOrErrorVariant as l, URLOptions as lt, PossibleJavaScriptError as m, CallApiSchemaConfig as mt, DefaultDataType as n, RequestStreamContext as nt, PluginMiddlewares as o, SuccessContext as ot, PossibleHTTPError as p, CallApiSchema as pt, FetchMiddlewareContext as q, DefaultPluginArray as r, ResponseContext as rt, PluginSetupContext as s, RefetchOptions as st, DefaultCallApiContext as t, RequestContext as tt, CallApiResultSuccessVariant as u, BaseCallApiSchemaAndConfig as ut, ResultModeType as v, InferSchemaResult as vt, InferAllMainRoutes as w, NoInferUnMasked as wt, GetCurrentRouteSchema as x, AnyFunction as xt, ApplyStrictConfig as y, FallBackRouteSchemaKey as yt, GetCallApiContext as z };
|
|
1829
|
+
//# sourceMappingURL=default-types-CyPF_5eh.d.ts.map
|
|
@@ -259,6 +259,12 @@ const handleConfigValidation = async (validationOptions) => {
|
|
|
259
259
|
issues: [{ message: `Strict Mode - No schema found for route '${currentRouteSchemaKey}' ` }],
|
|
260
260
|
response: null
|
|
261
261
|
});
|
|
262
|
+
if (!resolvedSchema) return {
|
|
263
|
+
extraOptionsValidationResult: {},
|
|
264
|
+
requestOptionsValidationResult: {},
|
|
265
|
+
resolvedSchema,
|
|
266
|
+
resolvedSchemaConfig
|
|
267
|
+
};
|
|
262
268
|
const [extraOptionsValidationResult, requestOptionsValidationResult] = await Promise.all([handleOptionsValidation({
|
|
263
269
|
options,
|
|
264
270
|
schema: resolvedSchema,
|
|
@@ -409,10 +415,10 @@ const getFullURL = (initURL, baseURL) => {
|
|
|
409
415
|
return initURL.length > 0 && !initURL.startsWith("/") && !baseURL.endsWith("/") ? `${baseURL}/${initURL}` : `${baseURL}${initURL}`;
|
|
410
416
|
};
|
|
411
417
|
const getFullAndNormalizedURL = (options) => {
|
|
412
|
-
const { baseURL, initURL, params, query } = options;
|
|
418
|
+
const { baseURL, debugMode, initURL, params, query } = options;
|
|
413
419
|
const normalizedInitURL = normalizeURL(initURL);
|
|
414
420
|
const fullURL = getFullURL(mergeUrlWithQuery(mergeUrlWithParams(normalizedInitURL, params), query), baseURL);
|
|
415
|
-
if (!URL.canParse(fullURL)) {
|
|
421
|
+
if ((debugMode ?? extraOptionDefaults.debugMode) && !URL.canParse(fullURL)) {
|
|
416
422
|
const errorMessage = !baseURL ? `Invalid URL '${initURL}'. Are you passing a relative url to CallApi without setting the 'baseURL' option?` : `Invalid URL '${fullURL}'. Please validate that you are passing the correct url.`;
|
|
417
423
|
console.error(errorMessage);
|
|
418
424
|
}
|
|
@@ -643,6 +649,7 @@ const deterministicHashFn = (value) => {
|
|
|
643
649
|
//#region src/constants/defaults.ts
|
|
644
650
|
const extraOptionDefaults = Object.freeze(defineEnum({
|
|
645
651
|
bodySerializer: JSON.stringify,
|
|
652
|
+
debugMode: true,
|
|
646
653
|
defaultHTTPErrorMessage: "Request failed unexpectedly",
|
|
647
654
|
dedupeCacheScope: "local",
|
|
648
655
|
dedupeKey: (ctx) => `${ctx.options.fullURL}-${deterministicHashFn({
|
|
@@ -668,4 +675,4 @@ const requestOptionDefaults = Object.freeze(defineEnum({ method: "GET" }));
|
|
|
668
675
|
//#endregion
|
|
669
676
|
export { getCurrentRouteSchemaKeyAndMainInitURL as A, isString as B, defineSchema as C, toQueryString as D, toFormData as E, fallBackRouteSchemaKey as F, fetchSpecificKeys as I, isArray as L, handleSchemaValidation as M, HTTPError as N, toSearchParams as O, ValidationError as P, isBoolean as R, definePlugin as S, defineSchemaRoutes as T, isValidationError as _, getBody as a, defineInstanceConfig as b, getMethod as c, splitConfig as d, waitFor as f, isJavascriptError as g, isHTTPErrorInstance as h, createTimeoutSignal as i, handleConfigValidation as j, getFullAndNormalizedURL as k, getResolvedHeaders as l, isHTTPError as m, requestOptionDefaults as n, getFetchImpl as o, objectifyHeaders as p, createCombinedSignal as r, getHeaders as s, extraOptionDefaults as t, omitKeys as u, isValidationErrorInstance as v, defineSchemaConfig as w, defineMainSchema as x, defineBaseConfig as y, isFunction as z };
|
|
670
677
|
|
|
671
|
-
//# sourceMappingURL=defaults-
|
|
678
|
+
//# sourceMappingURL=defaults-IsBgvt90.js.map
|