@graphql-hive/core
Version:
62 lines • 1.49 kB
text/typescript
import type { Logger } from './types.cjs';
type ReadOnlyResponse = Pick<Response, 'status' | 'text' | 'json' | 'statusText'>;
export interface AgentOptions {
enabled?: boolean;
name?: string;
/**
* Hive endpoint or proxy
*/
endpoint: string;
/**
* API Token
*/
token: string;
/**
* 30s by default
*/
timeout?: number;
/**
* false by default
*/
debug?: boolean;
/**
* 5 by default
*/
maxRetries?: number;
/**
* 200 by default
*/
minTimeout?: number;
/**
* Send reports in interval (defaults to 10_000ms)
*/
sendInterval?: number;
/**
* Max number of traces to send at once (defaults to 25)
*/
maxSize?: number;
/**
* Custom logger (defaults to console)
*/
logger?: Logger;
/**
* WHATWG Compatible fetch implementation
* used by the agent to send reports
*/
fetch?: typeof fetch;
}
export declare function createAgent<TEvent>(pluginOptions: AgentOptions, { data, body, headers, }: {
data: {
clear(): void;
set(data: TEvent): void;
size(): number;
};
body(): Buffer | string | Promise<string | Buffer>;
headers?(): Record<string, string>;
}): {
capture: (event: TEvent | Promise<TEvent>) => void;
sendImmediately: (event: TEvent) => Promise<ReadOnlyResponse | null>;
dispose: () => Promise<void>;
};
export {};
//# sourceMappingURL=agent.d.ts.map