@pubby.club/sdk
Version:
Pubby Development Kit
30 lines (29 loc) • 1.11 kB
TypeScript
import { AxiosRequestConfig, AxiosInstance, AxiosStatic } from "axios";
import { OAuthClient } from "./oauth";
import { ApiModule } from "../modules/api/api";
declare module "axios/index.d" {
interface AxiosRequestConfig {
public?: boolean;
}
}
declare type Params = Record<string, any>;
export interface Paged<T> {
items: T[];
totalPages: number;
totalItems: number;
}
export declare class Rest<T> {
readonly api: ApiModule;
static axios: AxiosStatic;
oauth: OAuthClient;
axios: AxiosInstance;
constructor(api: ApiModule, path: string, options?: AxiosRequestConfig);
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 {};