UNPKG

kutt

Version:

Node.js & browser (TypeScript) client for Kutt url shortener

77 lines (76 loc) 1.67 kB
import { ConfigI } from "#src/config"; export declare enum METHOD { GET = "GET", POST = "POST", PATCH = "PATCH", DELETE = "DELETE" } /** * */ export default abstract class API { protected readonly config: ConfigI; /** * * @protected */ protected abstract readonly prefix: string; /** * * @param config */ protected constructor(config: ConfigI); /** * * @param url * @protected */ protected delete<Response = unknown>(url?: string): Promise<Response>; /** *= * @param url * @protected */ protected get<Response = unknown>(url?: string): Promise<Response>; /** * * @param params * @param url * @protected */ protected get<Response = unknown>(params: ParamsT, url?: string): Promise<Response>; /** * * @param data * @param url * @protected */ protected patch<Response = unknown>(data: BodyT, url?: string): Promise<Response>; /** * * @param data * @param url * @protected */ protected post<Response = unknown>(data: BodyT, url?: string): Promise<Response>; /** * * @param url * @protected */ protected url(url: string): string; /** * * @param request * @protected */ protected abstract request<Response = unknown>(request: RequestI): Promise<Response>; } export interface RequestI { body?: BodyT; method?: METHOD; params?: ParamsT; url?: string; } export declare type BodyT = Record<string, unknown>; export declare type ParamsT = Record<string, boolean | number | string>;