gtmDataLayer proxy

gtmDataLayer proxy

by Csaba Hellinger

HTML

Check the console logs.

JavaScript

const dataLayer = [];

const warnAndReturn = (result) => {
  console.warn('The gtmDataLayer variable is deprecated and will be removed in a future release. Please use dataLayer instead.');
  return result;
};

const gtmDataLayer = new Proxy(dataLayer, {
  get: (...args) => warnAndReturn(Reflect.get(...args)),
  set: (...args) => warnAndReturn(Reflect.set(...args)),
});

// TEST
console.log("\ndataLayer.push('good')");
dataLayer.push('good');

console.log("\ngtmDataLayer.push('bad1')");
gtmDataLayer.push('bad1');

console.log("\ngtmDataLayer[2] = 'bad2'");
gtmDataLayer[2] = 'bad2';

console.log('\ndataLayer');
console.log(dataLayer);