UNPKG

@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
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