@benshi.ai/js-sdk
Version:
Benshi SDK
32 lines (27 loc) • 770 B
text/typescript
import DeferredRunner from "../deferredRunner"
let deferredRunner: DeferredRunner
const moduleName = 'ECommerce'
const wrappedMethodNames = [
'logCheckoutEvent',
'logCartEvent',
'logDeliveryEvent',
'logItemEvent',
'logScheduleDeliveryEvent',
'startTrackingImpressions',
'stopTrackingImpressions',
'restartTrackingImpressions'
]
// 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
}