@causalfoundry/js-sdk
Version:
Causal Foundry WEB SDK (JS/TS)
33 lines (27 loc) • 773 B
text/typescript
import DeferredRunner from "../deferredRunner";
let deferredRunner: DeferredRunner;
const moduleName = "ECommerce";
const wrappedMethodNames = [
"logCatalogEvent",
"logIngestEvent",
"startTrackingImpressions",
"stopTrackingImpressions",
"restartTrackingImpressions",
"logCancelCheckoutEvent",
"logCheckoutEvent",
"logCartEvent",
"logDeliveryEvent",
"logItemEvent",
];
// 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;
}, {});
const init = (injectedDeferredRunner) => {
deferredRunner = injectedDeferredRunner;
};
export default {
init,
...wrappedMethods,
};