raygun
Version:
Raygun package for Node.js, written in TypeScript
47 lines (46 loc) • 1.32 kB
TypeScript
import type { IncomingMessage } from "http";
import { HTTPOptions, SendOptions } from "./types";
export type MessageAndPromise = {
serializedMessage: string;
promise: PromiseReference<IncomingMessage>;
};
export type PreparedBatch = {
payload: string;
messageCount: number;
promises: Array<PromiseReference<IncomingMessage>>;
};
export type BatchState = {
messages: MessageAndPromise[];
messageSizeInBytes: number;
};
type PromiseReference<T> = {
resolve: (message: T) => void;
reject: (error: Error) => void;
};
export declare const MAX_MESSAGES_IN_BATCH = 100;
export declare const MAX_BATCH_SIZE_BYTES = 1638400;
export declare class RaygunBatchTransport {
private timerId;
private httpOptions;
private interval;
private batchId;
private batchState;
constructor(options: {
interval: number;
httpOptions: HTTPOptions;
});
/**
* Enqueues send request to batch processor.
* @param options - send options without callback
* @returns Promise with response or error if rejected
*/
send(options: SendOptions): Promise<IncomingMessage>;
/**
* Stops batch transport and clears timerId
*/
stopProcessing(): void;
private onIncomingMessage;
private processBatch;
private sendBatch;
}
export {};