UNPKG

igdb-ts

Version:

Unofficial IGDB API TypeScript wrapper.

75 lines (74 loc) 2.31 kB
interface BaseIGDBOptions<T> { fields?: (keyof T)[]; exclude?: (keyof T)[]; limit?: number; offset?: number; sortBy?: OrderOption; } interface DefaultOptions<T> extends BaseIGDBOptions<T> { search?: never; } interface DefaultOptionsWFilter<T> extends DefaultOptions<T> { filter?: Filter; combinedFilter?: never; } interface DefaultOptionsWCombinedFilter<T> extends DefaultOptions<T> { filter?: never; combinedFilter?: CombinedFilter; } export declare type DefaultIGDBOptions<T> = DefaultOptionsWFilter<T> | DefaultOptionsWCombinedFilter<T>; interface SearchOptions<T> extends BaseIGDBOptions<T> { search?: string; } interface SearchOptionsWFilter<T> extends SearchOptions<T> { filter?: Filter; combinedFilter?: never; } interface SearchOptionsWCombinedFilter<T> extends SearchOptions<T> { filter?: never; combinedFilter?: CombinedFilter; } export declare type SearchableIGDBOptions<T> = SearchOptionsWFilter<T> | SearchOptionsWCombinedFilter<T>; export declare type IGDBOptions<T> = DefaultIGDBOptions<T> | SearchableIGDBOptions<T>; export interface UntypedIGDBOptionsWFilter extends BaseUntypedIGDBOptions { filter?: Filter; combinedFilter?: never; } export interface UntypedIGDBOptionsWCombinedFilter extends BaseUntypedIGDBOptions { filter?: never; combinedFilter?: CombinedFilter; } export interface BaseUntypedIGDBOptions { search?: string; fields?: string[]; exclude?: string[]; limit?: number; offset?: number; sortBy?: OrderOption; } export declare type UntypedIGDBOptions = UntypedIGDBOptionsWFilter | UntypedIGDBOptionsWCombinedFilter; export interface Filter { filters: FilterOption[]; operators?: FilterOperator[]; } export interface CombinedFilter { filters: Filter[]; operators: FilterOperator[]; } export declare type FilterOperator = "&" | "|"; export interface FilterOption { field: string; postfix: PostFix; value: any; } export interface Query { endpoint: string; resultName: string; options?: UntypedIGDBOptions; } export declare type PostFix = "=" | "!=" | ">" | ">=" | "<" | "<=" | "~"; export interface OrderOption { field: string; order: "asc" | "desc"; } export {};