@compiled/react
Version:
A familiar and performant compile time CSS-in-JS library for React.
33 lines (32 loc) • 839 B
text/typescript
/**
* @see https://github.com/jsdom/jsdom/releases/tag/12.0.0
* @see https://github.com/jsdom/jsdom/issues/1537
*/
const isJsDomEnvironment = () =>
window.name === 'nodejs' ||
navigator?.userAgent.includes('Node.js') ||
navigator?.userAgent.includes('jsdom');
/**
* Returns `true` when inside a node environment,
* else `false`.
*
* When using this it will remove any node code from the browser bundle - for example:
*
* ```js
* if (isServerEnvironment()) {
* // This code will be removed from the browser bundle
* }
* ```
*/
export const isServerEnvironment = (): boolean => {
if (
typeof window === 'undefined' ||
(typeof process !== 'undefined' && process.versions != null && process.versions.node != null)
) {
return true;
}
if (isJsDomEnvironment()) {
return true;
}
return false;
};