react-native-kochava-measurement
Version:
A lightweight and easy to integrate SDK, providing first-class integration with Kochava’s installation attribution and analytics platform.
39 lines (38 loc) • 1.39 kB
TypeScript
import { IdentityLink, Json } from "./interfaces";
import { KochavaInstance } from "./kochava";
import { PostStartBody, PreStartBody } from "./payloads/payload";
export interface Job {
id: string;
queuedBeforeStart: boolean;
preStartBody: PreStartBody;
postStartBody: PostStartBody;
retries: number;
}
export interface EventJob extends Job {
eventName: string;
}
export interface IdLinkJob extends Job {
idLink: IdentityLink;
}
export default class JobQueue {
private eventQueue;
idLinkQueue: IdLinkJob[];
private processing;
private stopped;
private paused;
private timeOut;
constructor();
persistEventQueue(): Promise<void>;
persistIdLinkQueue(): Promise<void>;
persistIdLinkQueuePublic(): Promise<void>;
start(instance: KochavaInstance): Promise<void>;
stop(): void;
pause(): void;
enqueueEvent(instance: KochavaInstance, args: [string, Json | string]): Promise<void>;
enqueueIdLink(instance: KochavaInstance, idLink: IdentityLink): Promise<void>;
dequeueJob(instance: KochavaInstance): Promise<boolean>;
processJob(instance: KochavaInstance, job: EventJob | IdLinkJob): Promise<boolean>;
attemptJob(instance: KochavaInstance, job: Job): Promise<boolean>;
updateEventJobs(instance: KochavaInstance): Promise<void>;
updateIdLinkJobs(instance: KochavaInstance): Promise<void>;
}