Skip to content

Commit

Permalink
Merge pull request #12 from cfpb/ans_arbitrary_values
Browse files Browse the repository at this point in the history
Add arbitrary values
  • Loading branch information
anselmbradford authored Jan 30, 2024
2 parents 5977b40 + d382b78 commit 474f77e
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 63 deletions.
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@
"packages/*"
],
"devDependencies": {
"@cfpb/cfpb-atomic-component": "^0.21.9",
"eslint": "^8.36.0",
"eslint-config-prettier": "^8.7.0",
"eslint-plugin-import": "^2.27.5",
"@cfpb/cfpb-atomic-component": "^0.35.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^40.0.3",
"jest": "^29.5.0",
"jest-environment-jsdom": "^29.5.0",
"prettier": "^2.8.4"
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"prettier": "^3.2.4"
},
"scripts": {
"jest": "yarn node --experimental-vm-modules $(yarn bin jest packages/**/*.spec.js)",
Expand Down
4 changes: 2 additions & 2 deletions packages/cfpb-analytics/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cfpb/cfpb-analytics",
"version": "0.2.1",
"version": "0.2.2",
"description": "Data layer analytics utility.",
"homepage": "https://github.com/cfpb/cfpb-analytics",
"bugs": "https://github.com/cfpb/cfpb-analytics/issues",
Expand All @@ -23,7 +23,7 @@
"cfpb"
],
"dependencies": {
"@cfpb/cfpb-atomic-component": "^0.21.9"
"@cfpb/cfpb-atomic-component": "^0.35.0"
},
"type": "module"
}
23 changes: 11 additions & 12 deletions packages/cfpb-analytics/src/cfpb-analytics.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ function _init() {
// Detect if Google tag manager is loaded.
const hasGoogleTagManager = {}.hasOwnProperty.call(
window,
'google_tag_manager'
'google_tag_manager',
);
if (hasGoogleTagManager && typeof window.google_tag_manager !== 'undefined') {
isGoogleTagManagerLoaded = true;
Expand Down Expand Up @@ -66,6 +66,9 @@ function ensureGoogleTagManagerLoaded() {
* @kind function
* @description
* Pushes an event to the GTM dataLayer.
* This can accept arbitrary values, but traditionally (pre-GA4) would accept
* event, action, and label. Th eventCallback and eventTimeout values can also
* be sent, which are called if there's an issue loading GTM.
* @param {object} payload - A list or a single event.
* @param {string} payload.event - Type of event.
* @param {string} payload.action - Name of event.
Expand All @@ -78,18 +81,14 @@ function ensureGoogleTagManagerLoaded() {
function analyticsSendEvent(payload) {
return ensureGoogleTagManagerLoaded()
.then(() => {
analyticsLog(
`Pushing event "${payload.event}",
with action "${payload.action}" and label "${payload.label}".`
);
// isGoogleTagManagerLoaded should equal true at this point.
window.dataLayer.push({
event: payload.event || 'Page Interaction',
action: payload.action,
label: payload.label || '',
eventCallback: payload.eventCallback,
eventTimeout: payload.eventTimeout || 500,
const printPayload = [];
Object.entries(payload).forEach(([key, value]) => {
printPayload.push(`(${key}: ${value})`);
});

analyticsLog(`Sending "${printPayload.join(', ')}"`);
window.dataLayer.push(payload);
})
.catch(() => {
if (
Expand All @@ -112,7 +111,7 @@ window.addEventListener(
loadTryCount = 0;
});
},
{ once: true }
{ once: true },
);

export { analyticsSendEvent, analyticsLog };
77 changes: 35 additions & 42 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -302,12 +302,10 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==

"@cfpb/cfpb-atomic-component@^0.21.9":
version "0.21.9"
resolved "https://registry.yarnpkg.com/@cfpb/cfpb-atomic-component/-/cfpb-atomic-component-0.21.9.tgz#9d4a66236979a22afa0222fb0c5b1e88cc9b1b37"
integrity sha512-bxFrKQ+9w7B6s80QydlJhY5D8w2d/4qxcB0Wp/pal1nq/Ho6fWOhcsGvM0/Am9Yw1gvhUCEjbSk0JgoLI9BItw==
dependencies:
ftdomdelegate "3.1.0"
"@cfpb/cfpb-atomic-component@^0.35.0":
version "0.35.0"
resolved "https://registry.yarnpkg.com/@cfpb/cfpb-atomic-component/-/cfpb-atomic-component-0.35.0.tgz#c636b9f675beedbba8b35a5103d5b01bb97dc49d"
integrity sha512-AwK4X+wAoSyfhOwPC792reiVjMnFUCN47WrelCq6D7eabHl9wi4LiZPf+Gonm6jv++O+ph/bz4SK55Y4yF1oUw==

"@es-joy/jsdoccomment@~0.37.0":
version "0.37.1"
Expand Down Expand Up @@ -728,9 +726,9 @@
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==

"@types/node@*":
version "20.11.7"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.7.tgz#cb49aedd758c978c30806d0c38b520ed2a3df6e0"
integrity sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==
version "20.11.12"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.12.tgz#1121e03005516671bd30b4f9cc6b86284291af87"
integrity sha512-N/Az9BkJ6IWCJ3GeKea/vMQLfV37ci1fApx2x5UQvfa0N5OTjR/c17hEkt6Q0LSF6XSF7hcgrd/DOobibskPNw==
dependencies:
undici-types "~5.26.4"

Expand Down Expand Up @@ -1011,12 +1009,12 @@ braces@^3.0.2:
fill-range "^7.0.1"

browserslist@^4.22.2:
version "4.22.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b"
integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
version "4.22.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6"
integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==
dependencies:
caniuse-lite "^1.0.30001565"
electron-to-chromium "^1.4.601"
caniuse-lite "^1.0.30001580"
electron-to-chromium "^1.4.648"
node-releases "^2.0.14"
update-browserslist-db "^1.0.13"

Expand Down Expand Up @@ -1056,10 +1054,10 @@ camelcase@^6.2.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==

caniuse-lite@^1.0.30001565:
version "1.0.30001580"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz#e3c76bc6fe020d9007647044278954ff8cd17d1e"
integrity sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==
caniuse-lite@^1.0.30001580:
version "1.0.30001581"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4"
integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==

chalk@^2.4.2:
version "2.4.2"
Expand Down Expand Up @@ -1294,10 +1292,10 @@ domexception@^4.0.0:
dependencies:
webidl-conversions "^7.0.0"

electron-to-chromium@^1.4.601:
version "1.4.647"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.647.tgz#3c8d4815e5ed2fbdd37f4ab7333cd9f8fc56d53a"
integrity sha512-Z/fTNGwc45WrYQhPaEcz5tAJuZZ8G7S/DBnhS6Kgp4BxnS40Z/HqlJ0hHg3Z79IGVzuVartIlTcjw/cQbPLgOw==
electron-to-chromium@^1.4.648:
version "1.4.651"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.651.tgz#ef1e822233c6fc953df3caf943f78c21b254a080"
integrity sha512-jjks7Xx+4I7dslwsbaFocSwqBbGHQmuXBJUK9QBZTIrzPq3pzn6Uf2szFSP728FtLYE3ldiccmlkOM/zhGKCpA==

emittery@^0.13.1:
version "0.13.1"
Expand Down Expand Up @@ -1422,10 +1420,10 @@ escodegen@^2.0.0:
optionalDependencies:
source-map "~0.6.1"

eslint-config-prettier@^8.7.0:
version "8.10.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11"
integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==
eslint-config-prettier@^9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==

eslint-import-resolver-node@^0.3.9:
version "0.3.9"
Expand All @@ -1443,7 +1441,7 @@ eslint-module-utils@^2.8.0:
dependencies:
debug "^3.2.7"

eslint-plugin-import@^2.27.5:
eslint-plugin-import@^2.29.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
Expand Down Expand Up @@ -1492,7 +1490,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==

eslint@^8.36.0:
eslint@^8.56.0:
version "8.56.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
Expand Down Expand Up @@ -1621,9 +1619,9 @@ fast-levenshtein@^2.0.6:
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==

fastq@^1.6.0:
version "1.16.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320"
integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==
version "1.17.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.0.tgz#ca5e1a90b5e68f97fc8b61330d5819b82f5fab03"
integrity sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==
dependencies:
reusify "^1.0.4"

Expand Down Expand Up @@ -1704,11 +1702,6 @@ fsevents@^2.3.2:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==

[email protected]:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ftdomdelegate/-/ftdomdelegate-3.1.0.tgz#f22a1bb3dba7ed0e239125487923899a16448963"
integrity sha512-sEGlE4xTcwl7RxW8ypB2jUbKAWxG4iE7YLmko9AKdGUn2BY1fkg5zeC0Ec9Ac770iDpAqgzXdzO4KrPi3sasug==

function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
Expand Down Expand Up @@ -2273,7 +2266,7 @@ jest-each@^29.7.0:
jest-util "^29.7.0"
pretty-format "^29.7.0"

jest-environment-jsdom@^29.5.0:
jest-environment-jsdom@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f"
integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==
Expand Down Expand Up @@ -2527,7 +2520,7 @@ jest-worker@^29.7.0:
merge-stream "^2.0.0"
supports-color "^8.0.0"

jest@^29.5.0:
jest@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
Expand Down Expand Up @@ -2970,10 +2963,10 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==

prettier@^2.8.4:
version "2.8.8"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
prettier@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283"
integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==

pretty-format@^29.7.0:
version "29.7.0"
Expand Down

0 comments on commit 474f77e

Please sign in to comment.