apollo-angular
Version:
Use your GraphQL data in your Angular app, with the Apollo Client
94 lines (93 loc) • 4.53 kB
TypeScript
import { Observable } from 'rxjs';
import { NgZone } from '@angular/core';
import type { OperationVariables } from '@apollo/client';
import { ApolloClient } from '@apollo/client';
import { QueryRef } from './query-ref';
import type { EmptyObject, Flags, NamedOptions } from './types';
import * as i0 from "@angular/core";
export declare namespace Apollo {
type WatchQueryOptions<TData = unknown, TVariables extends OperationVariables = EmptyObject> = ApolloClient.WatchQueryOptions<TData, TVariables>;
type QueryOptions<TData = unknown, TVariables extends OperationVariables = EmptyObject> = ApolloClient.QueryOptions<TData, TVariables>;
type QueryResult<TData = unknown> = ApolloClient.QueryResult<TData>;
type MutateOptions<TData = unknown, TVariables extends OperationVariables = EmptyObject> = ApolloClient.MutateOptions<TData, TVariables> & {
/**
* Observable starts with `{ loading: true }`.
*
* Disabled by default
*/
useMutationLoading?: boolean;
};
type MutateResult<TData = unknown> = ApolloClient.MutateResult<TData> & {
loading?: boolean;
};
type SubscribeOptions<TData = unknown, TVariables extends OperationVariables = EmptyObject> = ApolloClient.SubscribeOptions<TData, TVariables> & {
useZone?: boolean;
};
type SubscribeResult<TData = unknown> = ApolloClient.SubscribeResult<TData>;
interface WatchFragmentOptions<TData = unknown, TVariables extends OperationVariables = EmptyObject> extends ApolloClient.WatchFragmentOptions<TData, TVariables> {
useZone?: boolean;
}
type WatchFragmentResult<TData = unknown> = ApolloClient.WatchFragmentResult<TData>;
}
export declare class ApolloBase {
protected readonly ngZone: NgZone;
protected readonly flags?: Flags;
protected _client?: ApolloClient;
private useMutationLoading;
constructor(ngZone: NgZone, flags?: Flags, _client?: ApolloClient);
watchQuery<TData, TVariables extends OperationVariables = EmptyObject>(options: Apollo.WatchQueryOptions<TData, TVariables>): QueryRef<TData, TVariables>;
query<TData, TVariables extends OperationVariables = EmptyObject>(options: Apollo.QueryOptions<TData, TVariables>): Observable<Apollo.QueryResult<TData>>;
mutate<TData, TVariables extends OperationVariables = EmptyObject>(options: Apollo.MutateOptions<TData, TVariables>): Observable<Apollo.MutateResult<TData>>;
watchFragment<TFragmentData = unknown, TVariables extends OperationVariables = EmptyObject>(options: Apollo.WatchFragmentOptions<TFragmentData, TVariables>): Observable<Apollo.WatchFragmentResult<TFragmentData>>;
subscribe<TData, TVariables extends OperationVariables = EmptyObject>(options: Apollo.SubscribeOptions<TData, TVariables>): Observable<Apollo.SubscribeResult<TData>>;
/**
* Get an instance of ApolloClient
*/
get client(): ApolloClient;
/**
* Set a new instance of ApolloClient
* Remember to clean up the store before setting a new client.
*
* @param client ApolloClient instance
*/
set client(client: ApolloClient);
private ensureClient;
private checkInstance;
}
export declare class Apollo extends ApolloBase {
private map;
constructor(ngZone: NgZone, apolloOptions?: ApolloClient.Options, apolloNamedOptions?: NamedOptions, flags?: Flags);
/**
* Create an instance of ApolloClient
* @param options Options required to create ApolloClient
* @param name client's name
*/
create(options: ApolloClient.Options, name?: string): void;
/**
* Use a default ApolloClient
*/
default(): ApolloBase;
/**
* Use a named ApolloClient
* @param name client's name
*/
use(name: string): ApolloBase;
/**
* Create a default ApolloClient, same as `apollo.create(options)`
* @param options ApolloClient's options
*/
createDefault(options: ApolloClient.Options): void;
/**
* Create a named ApolloClient, same as `apollo.create(options, name)`
* @param name client's name
* @param options ApolloClient's options
*/
createNamed(name: string, options: ApolloClient.Options): void;
/**
* Remember to clean up the store before removing a client
* @param name client's name
*/
removeClient(name?: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<Apollo, [null, { optional: true; }, { optional: true; }, { optional: true; }]>;
static ɵprov: i0.ɵɵInjectableDeclaration<Apollo>;
}