UNPKG

@causalfoundry/js-sdk

Version:

Causal Foundry WEB SDK (JS/TS)

42 lines (32 loc) 1.13 kB
import DeferredRunner from "../deferredRunner"; import { v4 as uuidv4 } from 'uuid' import {LegacySearchProperties} from "../../modules/Navigation/legacyLoggerFunctions"; const moduleName = "Navigation"; let deferredRunner: DeferredRunner; let searchId const wrappedMethodNames = [ "logIngestEvent", "logCatalogEvent", "setCurrentBlock", "setTitle", ]; // expose each method as a wrapper that just calls the deferredRunner const wrappedMethods = wrappedMethodNames.reduce((obj, current) => { obj[current] = (...args) => deferredRunner.execute(moduleName, current, args); return obj; }, {}); function logSearchEvent(properties: LegacySearchProperties, isNewSearch: boolean, sendNow = false) { if (isNewSearch || properties.page === 1) { searchId = `${uuidv4()}${Date.now()}` } deferredRunner.execute(moduleName, 'logSearchEvent', [properties, searchId || Date.now().toString(), sendNow]); return searchId || Date.now().toString() } const init = (injectedDeferredRunner) => { deferredRunner = injectedDeferredRunner; }; export default { init, logSearchEvent, ...wrappedMethods, };