@symanticreative/vendure-admin-client
Version:
A TypeScript GraphQL client for Vendure Admin API to create custom dashboards
83 lines (82 loc) • 2.73 kB
TypeScript
import { ApolloClient, NormalizedCacheObject, DocumentNode } from '@apollo/client';
import { VendureAdminClientConfig } from '../config/client-config';
/**
* GraphQL client service for making GraphQL requests
* This is used by repositories to execute GraphQL operations
*/
export declare class GraphQLClientService {
private client;
private config;
private authToken;
private refreshToken;
/**
* Initialize the GraphQL client with configuration
* @param config - Vendure Admin client configuration
*/
constructor(config: VendureAdminClientConfig);
/**
* Create Apollo client instance
* @returns Configured Apollo Client
*/
private createApolloClient;
/**
* Execute a GraphQL query
* @param query - GraphQL query or DocumentNode
* @param variables - Query variables
* @returns Promise with query result
*/
query<T = any>(query: string | DocumentNode, variables?: Record<string, any>): Promise<T>;
/**
* Execute a GraphQL mutation
* @param mutation - GraphQL mutation or DocumentNode
* @param variables - Mutation variables
* @returns Promise with mutation result
*/
mutate<T = any>(mutation: string | DocumentNode, variables?: Record<string, any>): Promise<T>;
/**
* Execute a custom GraphQL operation (query or mutation)
* @param operation - GraphQL operation or DocumentNode
* @param variables - Operation variables
* @param options - Additional options
* @returns Promise with operation result
*/
executeOperation<T = any>(operation: string | DocumentNode, variables?: Record<string, any>, options?: {
type?: 'query' | 'mutation';
fetchPolicy?: string;
}): Promise<T>;
/**
* Update client configuration
* @param config - New configuration options
*/
updateConfig(config: Partial<VendureAdminClientConfig>): void;
/**
* Get the current authentication token
* @returns Current auth token or null
*/
getAuthToken(): string | null;
/**
* Get the current refresh token
* @returns Current refresh token or null
*/
getRefreshToken(): string | null;
/**
* Set the authentication token
* @param token - Auth token
*/
setAuthToken(token: string): void;
/**
* Set the refresh token
* @param token - Refresh token
*/
setRefreshToken(token: string): void;
/**
* Check if authenticated
* @returns True if auth token exists
*/
isAuthenticated(): boolean;
/**
* Get the underlying Apollo client
* @returns Apollo client instance
*/
getApolloClient(): ApolloClient<NormalizedCacheObject>;
}