zaraz-ts
Version:
Zaraz TS - A type-safe wrapper around the Cloudflare Zaraz Web API.
42 lines • 3.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getZaraz = void 0;
let queue = [];
/**
* A utility that checks if zaraz exists on the window object. If not it queues
* the events until zaraz is initialized. If zaraz is initialized, it flushes
* the queue.
*/
function getZaraz() {
if (typeof window === 'undefined') {
throw new Error(`Cannot use Zaraz Web API, because window is not defined.`);
}
if (!window?.zaraz) {
// eslint-disable-next-line no-console
console.log(`Zaraz Web API is not initialized. Queueing events...`);
return {
track: (...args) => {
queue.push({ method: 'track', arguments: args });
},
set: (...args) => {
queue.push({ method: 'set', arguments: args });
},
ecommerce: (...args) => {
queue.push({ method: 'ecommerce', arguments: args });
},
};
}
if (queue.length > 0) {
// eslint-disable-next-line no-console
console.log(`Zaraz Web API is initialized. Flushing queue...`);
queue.forEach((event) => {
window.zaraz[event.method](...event.arguments);
});
// eslint-disable-next-line no-console
console.log(`Zaraz Web API queue flushed.`);
queue = []; // Clear the queue
}
return window.zaraz;
}
exports.getZaraz = getZaraz;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXphcmF6LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZ2V0LXphcmF6LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLElBQUksS0FBSyxHQUFnQixFQUFFLENBQUM7QUFFNUI7Ozs7R0FJRztBQUNILFNBQWdCLFFBQVE7SUFDdEIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbkIsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUVwRSxPQUFPO1lBQ0wsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFlLEVBQUUsRUFBRTtnQkFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUNELEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBZSxFQUFFLEVBQUU7Z0JBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLElBQWUsRUFBRSxFQUFFO2dCQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN2RCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckIsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUUvRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBSSxLQUFLLENBQUMsU0FBZ0IsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBRUgsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUU1QyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsa0JBQWtCO0lBQ2hDLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDdEIsQ0FBQztBQXJDRCw0QkFxQ0MifQ==