DSC JS Utils
JS utilities to be used across JS repositories.
Folders
Usage
Analytics
Publishing
Browser Docs
Isomorphic Docs
⚠️⚠️ NOTE: this package is published publicly, so do not put any sensitive information in this repository. ⚠️⚠️
Folders
There are 2 key folders which contain utility scripts—browser and isomorphic. Browser utility scripts are meant to be used within a browser. Isomorphic utility scripts are scripts that can be run within any environment.
Browser
Browser-specific utilities scripts.
Isomorphic
Utility scripts that work in any JavaScript environment. Read more.
- Use CommonJS node module syntax. Read more about CommonJS.
Using JS Utils
Installing NPM:
npm i --save @dollarshaveclub/js-utils
Import the built versions of files from the build folder:
const {
SHOP_CODES,
ENVIRONMENTS,
} = require('@dollarshaveclub/js-utils/build/isomorphic/config')
You may be able to use the non-built versions in server environments,
but always use the built versions in browser environments.
Analytics Integration
If interfacing with Tracksuit, initialize analytics in the following way.
Initialize once:
import bootstrap from '@dollarshaveclub/js-utils/build/browser/bootstrap-data'
import { initializeAnalytics } from '@dollarshaveclub/js-utils/build/browser/analytics'
const faceAssetsFixtures = window.FaceAssetsFixtures
const { study, features } = bootstrap(faceAssetsFixtures)
export const analytics = initializeAnalytics(
faceAssetsFixtures,
study.assignments(),
{
DTM: true,
GTM: true,
}
)
Access the export in other files
import { analytics } from '../../bootstrap'
analytics.call('page')
analytics.call('trackEvent', {
event: 'butt',
category: 'Link Click',
action: 'movies',
label: 'The Room',
value: '',
})
The analytics
API uses Tracksuit under the hood. You may pass any Tracksuit
function name to the analytics.call
function to execute it. All parameters are
retained.
Publishing
Automatically updated and published when a release is cut. Also after a successful deploy, please be sure to update the version number and update face-web as well.