@netvlies/utility-collection
Advanced tools
Comparing version
@@ -13,2 +13,3 @@ 'use strict'; | ||
// Globals | ||
class Logger { | ||
@@ -19,13 +20,41 @@ constructor() { | ||
formatMessage(message, type) { | ||
return `[${this.title} ${type}]: ${message}`; | ||
return `[${this.title} ${type}]: ${typeof message === 'object' ? JSON.stringify(message) : message}`; | ||
} | ||
warn(message) { | ||
console.warn(this.formatMessage(message, 'warn')); | ||
} | ||
error(message) { | ||
console.error(this.formatMessage(message, 'error')); | ||
} | ||
info(message) { | ||
console.info(this.formatMessage(message, 'info')); | ||
} | ||
warn(message) { | ||
console.warn(this.formatMessage(message, 'warning')); | ||
} | ||
} | ||
const logger = new Logger(); | ||
// Utils | ||
class GTM { | ||
constructor(baseEventData = {}, dataLayer = window.dataLayer || [], logging = false) { | ||
this.baseEventData = baseEventData; | ||
this.dataLayer = dataLayer; | ||
this.logging = logging; | ||
this.constructDataObject = (event, data) => { | ||
return Object.assign(Object.assign(Object.assign({ event }, data), this.baseEventData), { timestamp: new Date().getTime() }); | ||
}; | ||
this.push = (event, data) => { | ||
if (this.logging && data) { | ||
logger.info(data); | ||
} | ||
this.dataLayer.push(this.constructDataObject(event, data || {})); | ||
}; | ||
this.purchase = (data) => { | ||
if (this.logging) { | ||
logger.info(data); | ||
} | ||
this.dataLayer.push(this.constructDataObject('purchase', data || {})); | ||
}; | ||
} | ||
} | ||
const useGTM = (baseEventData, dataLayer, logging = false) => new GTM(baseEventData, dataLayer, logging); | ||
// Vendor | ||
@@ -58,2 +87,4 @@ class DynamicURL { | ||
exports.DynamicURL = DynamicURL; | ||
exports.GTM = GTM; | ||
exports.useGTM = useGTM; | ||
//# sourceMappingURL=index.cjs.js.map |
@@ -5,2 +5,3 @@ import qs from 'qs'; | ||
// Globals | ||
class Logger { | ||
@@ -11,13 +12,41 @@ constructor() { | ||
formatMessage(message, type) { | ||
return `[${this.title} ${type}]: ${message}`; | ||
return `[${this.title} ${type}]: ${typeof message === 'object' ? JSON.stringify(message) : message}`; | ||
} | ||
warn(message) { | ||
console.warn(this.formatMessage(message, 'warn')); | ||
} | ||
error(message) { | ||
console.error(this.formatMessage(message, 'error')); | ||
} | ||
info(message) { | ||
console.info(this.formatMessage(message, 'info')); | ||
} | ||
warn(message) { | ||
console.warn(this.formatMessage(message, 'warning')); | ||
} | ||
} | ||
const logger = new Logger(); | ||
// Utils | ||
class GTM { | ||
constructor(baseEventData = {}, dataLayer = window.dataLayer || [], logging = false) { | ||
this.baseEventData = baseEventData; | ||
this.dataLayer = dataLayer; | ||
this.logging = logging; | ||
this.constructDataObject = (event, data) => { | ||
return Object.assign(Object.assign(Object.assign({ event }, data), this.baseEventData), { timestamp: new Date().getTime() }); | ||
}; | ||
this.push = (event, data) => { | ||
if (this.logging && data) { | ||
logger.info(data); | ||
} | ||
this.dataLayer.push(this.constructDataObject(event, data || {})); | ||
}; | ||
this.purchase = (data) => { | ||
if (this.logging) { | ||
logger.info(data); | ||
} | ||
this.dataLayer.push(this.constructDataObject('purchase', data || {})); | ||
}; | ||
} | ||
} | ||
const useGTM = (baseEventData, dataLayer, logging = false) => new GTM(baseEventData, dataLayer, logging); | ||
// Vendor | ||
@@ -49,3 +78,3 @@ class DynamicURL { | ||
export { DynamicURL }; | ||
export { DynamicURL, GTM, useGTM }; | ||
//# sourceMappingURL=index.esm.js.map |
@@ -1,1 +0,2 @@ | ||
export * from './url'; | ||
export * from './shims'; | ||
export * from './modules/_bundle'; |
@@ -0,8 +1,10 @@ | ||
import { LoggerMessage, LoggerType } from './@types/logger'; | ||
declare class Logger { | ||
title: string; | ||
formatMessage(message: string, type: 'warn' | 'error'): string; | ||
warn(message: string): void; | ||
error(message: string): void; | ||
formatMessage(message: LoggerMessage, type: LoggerType): string; | ||
error(message: LoggerMessage): void; | ||
info(message: LoggerMessage): void; | ||
warn(message: LoggerMessage): void; | ||
} | ||
declare const logger: Logger; | ||
export { logger }; |
{ | ||
"name": "@netvlies/utility-collection", | ||
"version": "0.0.3", | ||
"version": "0.1.0", | ||
"description": "Collection of frequently used utilities by Netvlies", | ||
@@ -18,5 +18,6 @@ "main": "dist/index.cjs.js", | ||
"lint:fix": "npm run lint -- --fix", | ||
"release": "npm run test && npm run build && dotenv release-it", | ||
"release": "npm run test:coverage && npm run build && dotenv release-it", | ||
"test:unit": "jest", | ||
"test": "npm run test:unit", | ||
"test:coverage": "npm run test:unit -- --collectCoverage", | ||
"tsc": "tsc -p ." | ||
@@ -23,0 +24,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
22600
73.75%16
45.45%229
104.46%