UNPKG

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
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>; }