UNPKG

@izzyjs/route

Version:

Use your AdonisJs routes in your Inertia.js application

43 lines (42 loc) 1.89 kB
import { HttpClient } from './http_client.js'; import { Route } from './route.js'; import { ExcludeName, ExtractName, Params } from './types/routes.js'; type Config = Omit<RequestInit, 'method' | 'body'>; declare class RequestBuilder<ResponseSuccess = any, ResponseFailed = Error, Request = any> { private data; private config; private route; private httpClient; constructor(route: Route, data?: Request, config?: Config, httpClient?: HttpClient); successType<InferredResponseSuccess>(): RequestBuilder<InferredResponseSuccess, ResponseFailed, Request>; failedType<InferredResponseFailed>(): RequestBuilder<ResponseSuccess, InferredResponseFailed, Request>; withData<InferredRequest>(data: InferredRequest): RequestBuilder<ResponseSuccess, ResponseFailed, InferredRequest>; run(): Promise<{ data: ResponseSuccess; error: null; } | { data: null; error: ResponseFailed; }>; } declare class ApiBuilder<Name> { private nameRoute; private params; private qs; private hash; private prefix; private httpClient; constructor(nameRoute: Name, params: Record<string, string>, httpClient?: HttpClient); withQs(qs: Record<string, string>): ApiBuilder<Name>; withHash(hash: string): ApiBuilder<Name>; withPrefix(prefix: string): ApiBuilder<Name>; route(): Route; request(config?: Config): RequestBuilder<any, Error, undefined>; } declare function builder<Name extends ExtractName>(nameRoute: Name, params: Params<Name>): ApiBuilder<Name>; declare function builder<Name extends ExcludeName>(nameRoute: Name): ApiBuilder<Name>; export declare function createApiBuilder(customClient: HttpClient): { <Name extends ExtractName>(nameRoute: Name, params: Params<Name>): ApiBuilder<Name>; <Name extends ExcludeName>(nameRoute: Name): ApiBuilder<Name>; }; export default builder;