import { api } from './api' import { InitArgs } from './index.types' import './database' import { cron } from './cron' import { Event, EventLogType, Level, Log } from './types' import { database } from './database' import { setLog } from './index.utils' class EventLog { #enableEvents = false #enableLogs = false init({ publicApiKey, platform = 'web', batchTime, enableEvents, enableLogs }: InitArgs) { this.#enableEvents = enableEvents this.#enableLogs = enableLogs api.init(publicApiKey, platform) cron.init(batchTime) } event(eventArgs: Omit) { if (!this.#enableEvents) { return } return database.setItem({...eventArgs, type: EventLogType.EVENT}) } logger = { error: (errorArgs: Omit) => { return setLog(errorArgs, Level.ERROR, this.#enableLogs) }, debug: (debugArgs: Omit) => { return setLog(debugArgs, Level.DEBUG, this.#enableLogs) }, info: (infoArgs: Omit) => { return setLog(infoArgs, Level.INFO, this.#enableLogs) } } } export const eventLog = new EventLog()