@protorians/air-rest
Version:
api rest manager
69 lines (34 loc) • 1.42 kB
text/typescript
export declare type IAirMethods = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
export declare interface IAirRestEndPoint<P extends IEndpointPayload, R extends IEndpointResponse> {
_route: string | number;
_payload: IEndpointPayload | FormData;
_method: IAirMethods;
_transpilate: boolean;
// _responses: IEndpointResponse;
use(server: IAirRestServer): this;
method(method: IAirMethods): this;
route(route: string | number): this;
slugs(...slugs: (string | number)[]): this;
payload(payload: P): this;
// response( response : R ) : this;
send(): Promise<R> | undefined;
useForm(form: HTMLFormElement): this;
useFormData(formData: FormData): this;
}
export declare type IEndpointResponse = {
[R: string]: any
}
export declare type IEndpointPayload = {
[P: string]: any
}
export declare type AirStackEndPoints = {
}
export interface IAirRestServer {
server: string;
options: RequestInit | undefined;
post<R extends IEndpointResponse>(stack: IAirRestEndPoint<IEndpointPayload, R>): Promise<R>;
get<R extends IEndpointResponse>(stack: IAirRestEndPoint<IEndpointPayload, R>): Promise<R>;
put<R extends IEndpointResponse>(stack: IAirRestEndPoint<IEndpointPayload, R>): Promise<R>;
patch<R extends IEndpointResponse>(stack: IAirRestEndPoint<IEndpointPayload, R>): Promise<R>;
delete<R extends IEndpointResponse>(stack: IAirRestEndPoint<IEndpointPayload, R>): Promise<R>;
}