Skip to content

Reliably determines if the code is running in Node.js. Treats Jest, React Native, Electron, and others like Node.js.

Notifications You must be signed in to change notification settings

mswjs/is-node-process

Repository files navigation

Package version

is-node-process

Reliably determines if the code is running in Node.js

Motivation

This library was created to provide a reliable way of determining a Node.js process, taking into account:

  • Browser-like environments (JSDOM);
  • Electron renderer process;
  • React Native runtime.

Why relying on window is a bad idea

There are environments (i.e. JSDOM) that polyfill the global window object and some of its API for the sake of emulating browser-like behaviors, while still remaining a Node.js process.

Why relying on process is a bad idea

Electron injects a global process object in the browser runtime when run with the nodeIntegration: true option.

Getting started

$ npm install is-node-process
# or
$ yarn add is-node-process
// any/code.js
const { isNodeProcess } = require('is-node-process')
isNodeProcess() // true/false