@zayne-labs/callapi
Version:
A lightweight wrapper over fetch with quality of life improvements like built-in request cancellation, retries, interceptors and more
68 lines (67 loc) • 3.87 kB
TypeScript
import { A as HTTPError, C as CallApiRequestOptions, F as BaseCallApiSchemaRoutes, L as CallApiSchema, R as CallApiSchemaConfig, _ as BaseCallApiConfig, a as CallApiPlugin, et as AnyFunction, f as PossibleHTTPError, j as ValidationError, l as CallApiResultErrorVariant, m as PossibleValidationError, nt as Writeable, p as PossibleJavaScriptError, tt as Satisfies } from "../../index-DLD315Wj.js";
//#region src/utils/external/body.d.ts
declare const toQueryString: (data: NonNullable<CallApiRequestOptions["body"]>) => string;
/**
* @description Converts a plain object to FormData.
*
* Handles various data types:
* - **Primitives** (string, number, boolean): Converted to strings
* - **Blobs/Files**: Added directly to FormData
* - **Arrays**: Each item is appended (allows multiple values for same key)
* - **Objects**: JSON stringified before adding to FormData
*
* @example
* ```ts
* // Basic usage
* const formData = toFormData({
* name: "John",
* age: 30,
* active: true
* });
*
* // With arrays
* const formData = toFormData({
* tags: ["javascript", "typescript"],
* name: "John"
* });
*
* // With files
* const formData = toFormData({
* avatar: fileBlob,
* name: "John"
* });
*
* // With nested objects (one level only)
* const formData = toFormData({
* user: { name: "John", age: 30 },
* settings: { theme: "dark" }
* });
*/
declare const toFormData: (data: NonNullable<CallApiRequestOptions["body"]>) => FormData;
//#endregion
//#region src/utils/external/define.d.ts
declare const defineSchema: <const TBaseSchemaRoutes extends BaseCallApiSchemaRoutes, const TSchemaConfig extends CallApiSchemaConfig>(routes: TBaseSchemaRoutes, config?: Satisfies<TSchemaConfig, CallApiSchemaConfig>) => {
config: Writeable<Satisfies<TSchemaConfig, CallApiSchemaConfig>, "deep">;
routes: Writeable<TBaseSchemaRoutes, "deep">;
};
declare const defineSchemaRoutes: <const TSchemaRoutes extends BaseCallApiSchemaRoutes>(routes: TSchemaRoutes) => Writeable<typeof routes, "deep">;
declare const defineMainSchema: <const TSchema extends CallApiSchema>(mainSchema: Satisfies<TSchema, CallApiSchema>) => Writeable<typeof mainSchema, "deep">;
declare const defineSchemaConfig: <const TSchemaConfig extends CallApiSchemaConfig>(config: Satisfies<TSchemaConfig, CallApiSchemaConfig>) => Writeable<typeof config, "deep">;
declare const definePlugin: <const TPlugin extends CallApiPlugin>(plugin: TPlugin) => Writeable<typeof plugin, "deep">;
type BaseConfigObject = Exclude<BaseCallApiConfig, AnyFunction>;
type BaseConfigFn = Extract<BaseCallApiConfig, AnyFunction>;
type DefineBaseConfig = {
<const TBaseConfig extends BaseConfigObject>(baseConfig: Satisfies<TBaseConfig, BaseConfigObject>): Writeable<typeof baseConfig, "deep">;
<TBaseConfigFn extends BaseConfigFn>(baseConfig: TBaseConfigFn): TBaseConfigFn;
};
declare const defineBaseConfig: DefineBaseConfig;
//#endregion
//#region src/utils/external/guards.d.ts
declare const isHTTPError: <TErrorData>(error: CallApiResultErrorVariant<TErrorData>["error"] | null) => error is PossibleHTTPError<TErrorData>;
declare const isHTTPErrorInstance: <TErrorData>(error: unknown) => error is HTTPError<TErrorData>;
declare const isValidationError: (error: CallApiResultErrorVariant<unknown>["error"] | null) => error is PossibleValidationError;
declare const isValidationErrorInstance: (error: unknown) => error is ValidationError;
declare const isJavascriptError: (error: CallApiResultErrorVariant<unknown>["error"] | null) => error is PossibleJavaScriptError;
//#endregion
export { HTTPError, ValidationError, defineBaseConfig, defineMainSchema, definePlugin, defineSchema, defineSchemaConfig, defineSchemaRoutes, isHTTPError, isHTTPErrorInstance, isJavascriptError, isValidationError, isValidationErrorInstance, toFormData, toQueryString };
//# sourceMappingURL=index.d.ts.map