@sentry/utils
Version:
Utilities for all Sentry JavaScript SDKs
32 lines (25 loc) • 1.24 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
const worldwide = require('../worldwide.js');
// Based on https://github.com/angular/angular.js/pull/13945/files
// eslint-disable-next-line deprecation/deprecation
const WINDOW = worldwide.getGlobalObject();
/**
* Tells whether current environment supports History API
* {@link supportsHistory}.
*
* @returns Answer to the given question.
*/
function supportsHistory() {
// NOTE: in Chrome App environment, touching history.pushState, *even inside
// a try/catch block*, will cause Chrome to output an error to console.error
// borrowed from: https://github.com/angular/angular.js/pull/13945/files
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const chrome = (WINDOW ).chrome;
const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;
/* eslint-enable @typescript-eslint/no-unsafe-member-access */
const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;
return !isChromePackagedApp && hasHistoryApi;
}
exports.supportsHistory = supportsHistory;
//# sourceMappingURL=supportsHistory.js.map