@pubby/sdk
Version:
Pubby Development Kit
34 lines (33 loc) • 1.24 kB
TypeScript
import { AxiosRequestConfig, AxiosInstance, AxiosStatic } from "axios";
import { OAuthClient } from "../modules/auth/oauth";
import { ApiModule } from "../modules/api";
declare module "axios/index.d" {
interface AxiosRequestConfig {
public?: boolean;
}
}
declare type Params = Record<string, any>;
export interface Paged<T> {
data: T[];
totalPages: number;
totalItems: number;
pageSize: number;
pageNumber?: number;
offset: number;
}
export declare class Rest<T> {
readonly api: ApiModule;
static axios: AxiosStatic;
oauth: OAuthClient;
axios: AxiosInstance;
constructor(api: ApiModule, path: string, options?: AxiosRequestConfig);
get baseURL(): string;
request(options?: AxiosRequestConfig): Promise<any>;
find(params?: Params, config?: AxiosRequestConfig): Promise<Paged<T>>;
findOne(id: string, params?: Params, config?: AxiosRequestConfig): Promise<T>;
create(data: any, params?: Params, config?: {}): Promise<T>;
update(data: any, params?: Params, config?: {}): Promise<T>;
delete(id: string, params?: Params, config?: {}): Promise<void>;
save(data: any, params?: Params, config?: {}): Promise<T>;
}
export {};