tinacms
Version:
[](https://github.com/tinacms/tinacms/blob/main/LICENSE) [](https://www.npmjs.com/package/tinacms) [![Bui
44 lines (43 loc) • 1.57 kB
TypeScript
import type { Config } from '@tinacms/schema-tools';
import AsyncLock from 'async-lock';
import type { GraphQLError } from 'graphql';
import type { Cache } from '../cache/index';
export declare const TINA_HOST = "content.tinajs.io";
export interface TinaClientArgs<GenQueries = Record<string, unknown>> {
url: string;
token?: string;
queries: (client: TinaClient<GenQueries>) => GenQueries;
errorPolicy?: Config['client']['errorPolicy'];
cacheDir?: string;
}
export type TinaClientRequestArgs = {
variables?: Record<string, any>;
query: string;
errorPolicy?: 'throw' | 'include';
} & Partial<Omit<TinaClientArgs, 'queries'>>;
export type TinaClientURLParts = {
host: string;
clientId: string;
branch: string;
isLocalClient: boolean;
};
export declare class TinaClient<GenQueries> {
apiUrl: string;
readonlyToken?: string;
queries: GenQueries;
errorPolicy: Config['client']['errorPolicy'];
initialized: boolean;
cacheLock: AsyncLock | undefined;
cacheDir: string;
cache: Cache;
constructor({ token, url, queries, errorPolicy, cacheDir, }: TinaClientArgs<GenQueries>);
init(): Promise<void>;
request<DataType extends Record<string, any> = any>({ errorPolicy, ...args }: TinaClientRequestArgs, options: {
fetchOptions?: Parameters<typeof fetch>[1];
}): Promise<{
data: DataType;
errors: GraphQLError[] | null;
query: string;
}>;
}
export declare function createClient<GenQueries>(args: TinaClientArgs<GenQueries>): TinaClient<GenQueries>;