event-tracker-wrapper
Advanced tools
Comparing version 1.0.2 to 1.0.3
@@ -34,3 +34,4 @@ export type Level = "debug" | "info" | "warn" | "error"; | ||
} & { | ||
start: (payload: StartOptions) => void; | ||
start: (options: StartOptions) => void; | ||
mergePayloadObjectWith: (payload: unknown) => EventTracker<Events, StartOptions, EventOptions>; | ||
}; | ||
@@ -37,0 +38,0 @@ export type EventTrackerOptions<Events extends EventsConstraint, StartOptions = DefaultStartOptions, EventOptions extends EventOptionsConstraint = DefaultEventOptions> = { |
@@ -6,6 +6,6 @@ export function createEventTracker({ autostart = true, onEvent = ({ level, event }) => { | ||
}, } = {}) { | ||
let startOptions = "__notInitialized__"; | ||
let startOptions; | ||
let started = autostart; | ||
const queuedArgs = []; | ||
const createTrackMethod = (level) => { | ||
const createTrackMethod = (level, payloadToBeMerged) => { | ||
return (event) => { | ||
@@ -17,4 +17,2 @@ if (!started) { | ||
const { name, message, payload, options } = event; | ||
if (startOptions === "__notInitialized__") | ||
throw new Error("[event-tracker-wrapper]: `startOptions` is not initialized."); | ||
onEvent({ | ||
@@ -25,3 +23,5 @@ level, | ||
message, | ||
payload: payload, | ||
payload: payloadToBeMerged === undefined | ||
? payload | ||
: Object.assign({}, payloadToBeMerged, payload), | ||
}, | ||
@@ -33,20 +33,24 @@ options: options, | ||
}; | ||
const api = { | ||
start: (options) => { | ||
startOptions = options; | ||
if (!started) { | ||
started = true; | ||
onStart === null || onStart === void 0 ? void 0 : onStart(options, api); | ||
queuedArgs.forEach(({ level, event }) => { | ||
api[level](event); | ||
}); | ||
queuedArgs.length = 0; | ||
} | ||
}, | ||
debug: createTrackMethod("debug"), | ||
info: createTrackMethod("info"), | ||
warn: createTrackMethod("warn"), | ||
error: createTrackMethod("error"), | ||
}; | ||
return api; | ||
function createApi(payloadToBeMerged) { | ||
const api = { | ||
start: (options) => { | ||
startOptions = options; | ||
if (!started) { | ||
started = true; | ||
onStart === null || onStart === void 0 ? void 0 : onStart(options, api); | ||
queuedArgs.forEach(({ level, event }) => { | ||
api[level](event); | ||
}); | ||
queuedArgs.length = 0; | ||
} | ||
}, | ||
debug: createTrackMethod("debug", payloadToBeMerged), | ||
info: createTrackMethod("info", payloadToBeMerged), | ||
warn: createTrackMethod("warn", payloadToBeMerged), | ||
error: createTrackMethod("error", payloadToBeMerged), | ||
mergePayloadObjectWith: (payload) => createApi(payload), | ||
}; | ||
return api; | ||
} | ||
return createApi(undefined); | ||
} |
@@ -34,3 +34,4 @@ export type Level = "debug" | "info" | "warn" | "error"; | ||
} & { | ||
start: (payload: StartOptions) => void; | ||
start: (options: StartOptions) => void; | ||
mergePayloadObjectWith: (payload: unknown) => EventTracker<Events, StartOptions, EventOptions>; | ||
}; | ||
@@ -37,0 +38,0 @@ export type EventTrackerOptions<Events extends EventsConstraint, StartOptions = DefaultStartOptions, EventOptions extends EventOptionsConstraint = DefaultEventOptions> = { |
@@ -9,6 +9,6 @@ "use strict"; | ||
}, } = {}) { | ||
let startOptions = "__notInitialized__"; | ||
let startOptions; | ||
let started = autostart; | ||
const queuedArgs = []; | ||
const createTrackMethod = (level) => { | ||
const createTrackMethod = (level, payloadToBeMerged) => { | ||
return (event) => { | ||
@@ -20,4 +20,2 @@ if (!started) { | ||
const { name, message, payload, options } = event; | ||
if (startOptions === "__notInitialized__") | ||
throw new Error("[event-tracker-wrapper]: `startOptions` is not initialized."); | ||
onEvent({ | ||
@@ -28,3 +26,5 @@ level, | ||
message, | ||
payload: payload, | ||
payload: payloadToBeMerged === undefined | ||
? payload | ||
: Object.assign({}, payloadToBeMerged, payload), | ||
}, | ||
@@ -36,21 +36,25 @@ options: options, | ||
}; | ||
const api = { | ||
start: (options) => { | ||
startOptions = options; | ||
if (!started) { | ||
started = true; | ||
onStart === null || onStart === void 0 ? void 0 : onStart(options, api); | ||
queuedArgs.forEach(({ level, event }) => { | ||
api[level](event); | ||
}); | ||
queuedArgs.length = 0; | ||
} | ||
}, | ||
debug: createTrackMethod("debug"), | ||
info: createTrackMethod("info"), | ||
warn: createTrackMethod("warn"), | ||
error: createTrackMethod("error"), | ||
}; | ||
return api; | ||
function createApi(payloadToBeMerged) { | ||
const api = { | ||
start: (options) => { | ||
startOptions = options; | ||
if (!started) { | ||
started = true; | ||
onStart === null || onStart === void 0 ? void 0 : onStart(options, api); | ||
queuedArgs.forEach(({ level, event }) => { | ||
api[level](event); | ||
}); | ||
queuedArgs.length = 0; | ||
} | ||
}, | ||
debug: createTrackMethod("debug", payloadToBeMerged), | ||
info: createTrackMethod("info", payloadToBeMerged), | ||
warn: createTrackMethod("warn", payloadToBeMerged), | ||
error: createTrackMethod("error", payloadToBeMerged), | ||
mergePayloadObjectWith: (payload) => createApi(payload), | ||
}; | ||
return api; | ||
} | ||
return createApi(undefined); | ||
} | ||
exports.createEventTracker = createEventTracker; |
{ | ||
"name": "event-tracker-wrapper", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"description": "provide unified interface for event tracking", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
13027
204