optimade
Version:
Aggregating Optimade client for the online materials databases
39 lines (38 loc) • 1.57 kB
TypeScript
import type * as Types from './types';
export { Types };
export declare class Optimade {
private providersUrl;
private corsProxyUrl;
providers: Types.ProvidersMap | null;
apis: Types.ApisMap;
private reqStack;
constructor({ providersUrl, corsProxyUrl }?: {
providersUrl?: string;
corsProxyUrl?: string;
});
addProvider(provider: Types.Provider): Promise<Types.ProvidersMap>;
getProviders(api?: Types.Api): Promise<Types.ProvidersMap | null>;
getApis(provider: Types.Provider | string, version?: string): Promise<Types.Api | null>;
getStructures({ providerId, filter, page, limit, offset }: {
providerId: string;
filter: string;
page: number;
limit: number;
offset: number;
}): Promise<Types.StructuresResponse[] | Types.ResponseError>;
getStructuresAll({ providers, filter, page, limit, offset, batch }: {
providers: string[];
filter: string;
page: number;
limit: number;
offset: number;
batch?: boolean;
}): Promise<Promise<Types.StructuresResult>[]> | Promise<Types.StructuresResult>[];
private followLinks;
private wrapUrl;
private isDuplicatedReq;
static getJSON(uri: string, params?: any, headers?: {}): Promise<any>;
static isProviderValid(provider: Types.Provider): boolean;
static apiVersionUrl({ attributes: { api_version, available_api_versions } }: Types.Api): any;
static apiVersion({ data, meta }: Types.InfoResponse): Types.Api;
}