6.0.0 • Published 1 year ago

electron-process-type v6.0.0

Weekly downloads
29
License
MIT
Repository
github
Last release
1 year ago

JavaScript Execution Context (electron-process-type)

A function which returns the execution environment of your code.

Detect the engine which is executing your code:

  • NodeJS runtime
  • Browser runtime
  • Electron runtime

detect which are the environments / API(s) available :

  • NodeJS
  • Browser
  • Worker
  • Electron
RuntimeNodeBrowserElectron
NodeJS APINode.js processElectron Node.js process
Browser APIBrowserElectron Renderer or preload
Worker APIWorkerThreadWebWorkerElectron Worker
Electron APIElectron preloadElectron main process

Worker, ServiceWorker, SharedWorker detection is still experimental/partial

This API works in any kind of processes (not only Electron): Electron, Node, Browser, ...

In Electron, the detection uses the Electron API process.type but there is some limitations.
It does not work properly in following contexts :

  • in a node process
  • in a renderer when Chromium is in sandbox (--enable-sandbox=true)
  • in a renderer when Renderer is in sandbox=true
  • in a renderer when nodeIntegration=false
  • in preload file of a renderer

Dependencies

API

function GetExecutionContext(): ExecutionContext;

export enum ExecutionContext {
    Undefined         = 0,
    Node              = NodeEnv | NodeRuntime,
    Browser           = BrowserEnv | BrowserRuntime,
    WebWorker         = WorkerEnv | BrowserRuntime,
    WorkerThread      = WorkerEnv | NodeRuntime,
    ElectronWorker    = WorkerEnv | ElectronRuntime,
    ElectronNode      = NodeEnv | ElectronRuntime,
    ElectronRenderer  = BrowserEnv | ElectronRuntime,
    ElectronPreload   = BrowserEnv | ElectronEnv | ElectronRuntime,
    ElectronMain      = NodeEnv | ElectronEnv | ElectronRuntime
}

return the current execution context.

function IsContextNode(): boolean

Check if you are running in a NodeJS context: pure NodeJS process, Electron NodeJS process, Electron Main NodeJS process.

function IsContextBrowser(): boolean;

Check if you are running in a Browser (Navigator) context: pure Browser, Electron browser.

function IsContextWorker(): boolean;

Check if you are running in a Worker.

function IsProcessElectron(): boolean;

Check if you are running in a Electron process: Electron NodeJS process, Electron Main NodeJS process, Electron browser.