UNPKG

@symanticreative/vendure-admin-client

Version:

A TypeScript GraphQL client for Vendure Admin API to create custom dashboards

83 lines (82 loc) 2.73 kB
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>; }