UNPKG

eze-link

Version:
142 lines (141 loc) 6.2 kB
import { IApiService } from "./ApiService"; import { IStorable } from "./Storable"; export default class ClientBuilder<RootKey extends string> { limit: number; storable: IStorable; api: IApiService<any>; generateQuery: ({ url, query }: GenerateQuery) => string; useCash: boolean; roots: { [key: string]: string; }; private getRoot; clearCash: (storageKey?: string) => void; static clearCash: (storageKey: string, storage?: "localStorage" | "sessionStorage") => void; constructor({ api, limit, storage, storeKey, generateQuery, roots }: IClientFunctionsConstructor); GET_Blob: ({ root, url, query, headers }: IGet<RootKey>) => Promise<Blob>; POST_Blob: ({ root, url, query, headers, body }: IPost<RootKey>) => Promise<Blob>; OffsetPaginatorWithCash: <T = IQuery, Response_1 = any[]>({ root, url, getUrl, getHeaders, limit, storageKey, abortId, }: CreateCashedLoadCleintProps<T, RootKey>) => { hasMore: boolean; limit: number; load: (query?: T | undefined, clearCash?: boolean) => Promise<Response_1>; loadMore: () => Promise<Response_1>; reload: (query?: T | undefined) => Promise<Response_1>; loadAll: (query?: T | undefined) => Promise<Response_1>; }; OffsetPaginator: <T = IQuery, Response_1 = any[]>({ root, url, getUrl, getHeaders, limit, abortId }: CreateLoadCleintProps<T, RootKey>) => { hasMore: boolean; limit: number; load: (query?: T | undefined) => Promise<Response_1>; loadMore: () => Promise<Response_1>; reload: (query?: T | undefined) => Promise<Response_1>; loadAll: (query?: T | undefined) => Promise<Response_1>; }; PaginatorWithCash: <T = IQuery, Response_1 = any[]>({ root, url, getUrl, getHeaders, limit, storageKey, }: CreateCashedLoadCleintProps<T, RootKey>) => { hasMore: boolean; limit: number; load: (query?: T | undefined, clearCash?: boolean) => Promise<Response_1>; loadMore: () => Promise<Response_1>; reload: (query?: T | undefined) => Promise<Response_1>; }; Paginator: <T = IQuery, Response_1 = any[]>({ root, url, getUrl, getHeaders, limit }: CreateLoadCleintProps<T, RootKey>) => { hasMore: boolean; limit: number; load: (query?: T | undefined) => Promise<Response_1>; loadMore: () => Promise<Response_1>; reload: (query?: T | undefined) => Promise<Response_1>; }; IdPaginatorWithCash: <T = IQuery, Response_1 = any[]>({ root, url, getUrl, getHeaders, limit, storageKey, }: CreateCashedLoadCleintProps<T, RootKey>) => { hasMore: boolean; limit: number; load: (query?: T | undefined, clearCash?: boolean) => Promise<Response_1>; loadMore: () => Promise<Response_1>; reload: (query?: T | undefined) => Promise<Response_1>; }; IdPaginator: <T = IQuery, Response_1 = any[]>({ root, url, getUrl, getHeaders, limit }: CreateLoadCleintProps<T, RootKey>) => { hasMore: boolean; limit: number; load: (query?: T | undefined) => Promise<Response_1>; loadMore: () => Promise<Response_1>; reload: (query?: T | undefined) => Promise<Response_1>; }; GET: <Response_1 = any>({ root, url, query, headers }: IGet<RootKey>) => Promise<Response_1>; GET_WithCash: <Response_1 = any>({ root, url, query, headers, clearCash, storageKey, abortId }: IGet<RootKey> & ICashed) => Promise<Response_1>; POST: <Response_1 = any>({ root, url, query, headers, getHeaders, body, onSuccess, onError, abortId }: IPost<RootKey>) => Promise<Response_1>; POST_WithCash: <Response_1 = any>({ root, url, query, headers, getHeaders, body, clearCash, storageKey, onError, onSuccess, abortId, }: IPost<RootKey> & ICashed) => Promise<Response_1>; PUT: <Response_1 = any>({ root, url, query, headers, body, getHeaders, onError, onSuccess, abortId }: IPost<RootKey>) => Promise<Response_1>; UPDATE: <Response_1 = any>({ root, url, query, headers, getHeaders, body, onError, onSuccess, abortId }: IPost<RootKey>) => Promise<Response_1>; PATCH: <Response_1 = any>({ root, url, query, body, headers, getHeaders, onError, onSuccess, abortId }: IPost<RootKey>) => Promise<Response_1>; DELETE: <Response_1 = any>({ root, url, query, body, headers, getHeaders, onError, onSuccess, abortId }: IPost<RootKey>) => Promise<Response_1>; } type GenerateQuery = { url: string; query?: any; }; type IQuery = { [key: string]: any; }; type CreateLoadCleintProps<T, RootKey> = ({ url: string; getUrl?: null; } | { url?: null; getUrl: (query?: T) => string; }) & { getHeaders?: (query?: T) => any; limit?: number; abortId?: string; } & AmRoot<RootKey>; type CreateCashedLoadCleintProps<T, RootKey> = CreateLoadCleintProps<T, RootKey> & { storageKey?: string; }; type IClientFunctionsConstructor = { api?: IApiService<any>; limit?: number; storeKey?: string; storage?: undefined; generateQuery?: (props: GenerateQuery) => string; roots: { [key: string]: string; }; } | { api?: IApiService<any>; limit?: number; storeKey: string; storage?: "localStorage" | "sessionStorage" | "memoryStorage"; generateQuery?: (props: GenerateQuery) => string; roots: {}; } | { api?: IApiService<any>; limit?: number; storeKey: string; storage: "localStorage" | "sessionStorage" | "memoryStorage"; generateQuery?: (props: GenerateQuery) => string; roots: {}; }; type AmRoot<RootKey> = { root?: any; } | { root: RootKey; }; type IGet<RootKey> = { url: string; query?: IQuery; headers?: any; abortId?: string; } & AmRoot<RootKey>; type IPost<RootKey> = { url: string; body?: any; query?: IQuery; headers?: any; getHeaders?: (query: any) => any; onSuccess?: (res: any) => void; onError?: (err: any) => void; abortId?: string; } & AmRoot<RootKey>; type ICashed = { clearCash?: boolean; storageKey?: string; }; export {};