UNPKG

donottrack

Version:

Module to check the value of the DNT header

48 lines (38 loc) 1.21 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = mayTrack; exports.getBrowserDnt = getBrowserDnt; /** * Returns true if the user agrees to being tracked, false if not, def if unspecified. * * @param {!string} [dntHeader] The DNT header. * @param {!boolean} [def = false] The value to return if doNotTrack is unspecified. * @returns {!boolean} The user agrees to being tracked. */ function mayTrack(dntHeader) { var def = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; // backward compatibility if (typeof dntHeader === 'boolean') { def = dntHeader; } if (typeof dntHeader !== 'string') { dntHeader = getBrowserDnt(); } if (dntHeader != null) { if (dntHeader.charAt(0) === '1' || dntHeader === 'yes') { return true; } if (dntHeader.charAt(0) === '0' || dntHeader === 'no') { return false; } } return def; } function getBrowserDnt() { if (typeof window === 'undefined') { throw new TypeError('do-not-track: first parameter may only be omitted in a browser env.'); } return window.doNotTrack || window.navigator.doNotTrack || window.navigator.msDoNotTrack; }