comic-vine-sdk
Version:
A JS/TS client for the Comic Vine API
20 lines (19 loc) • 1.06 kB
TypeScript
import { ResourceType } from './resource-type.js';
import type { RetrieveOptions, ListOptions, HttpClient, UrlBuilder, PickFilters } from '../types/index.js';
export declare abstract class BaseResource<Resource, ResourceListItem> {
private httpClient;
private urlBuilder;
protected abstract resourceType: ResourceType;
constructor(httpClient: HttpClient, urlBuilder: UrlBuilder);
retrieve<FieldKey extends keyof Resource>(id: number, options?: RetrieveOptions<FieldKey>): Promise<Resource | Pick<Resource, FieldKey>>;
private fetchPage;
list<FieldKey extends keyof ResourceListItem>(options?: ListOptions<FieldKey, PickFilters<ResourceListItem>>): Promise<{
limit: number;
numberOfPageResults: number;
numberOfTotalResults: number;
offset: number;
data: (ResourceListItem | Pick<ResourceListItem, keyof ResourceListItem>)[];
}> & {
[Symbol.asyncIterator](): AsyncGenerator<Awaited<ResourceListItem> | Awaited<Pick<ResourceListItem, keyof ResourceListItem>>, void, unknown>;
};
}