import { PriorityQueue } from '../../lib/priority-queue' import { PersistedPriorityQueue } from '../../lib/priority-queue/persisted' import { Context } from '../context' import { Plugin } from '../plugin' import { CoreEventQueue } from '@segment/analytics-core' import { isOffline } from '../connection' export class EventQueue extends CoreEventQueue { constructor(name: string) constructor(priorityQueue: PriorityQueue) constructor(nameOrQueue: string | PriorityQueue) { super( typeof nameOrQueue === 'string' ? new PersistedPriorityQueue(4, nameOrQueue) : nameOrQueue ) } async flush(): Promise { if (isOffline()) return [] return super.flush() } }