Runtime agnostic JS utils
npm install std-env


> Runtime agnostic JS utils
``shUsing npm
npm i std-env
Usage
`js
// ESM
import { env, isDevelopment, isProduction } from "std-env";// CommonJS
const { env, isDevelopment, isProduction } = require("std-env");
`Flags
-
hasTTY
- hasWindow
- isDebug
- isDevelopment
- isLinux
- isMacOS
- isMinimal
- isProduction
- isTest
- isWindows
- platform
- isColorSupported
- nodeVersion
- nodeMajorVersionYou can read more about how each flag works from ./src/flags.ts.
Provider Detection
std-env can automatically detect the current runtime provider based on environment variables.You can use
isCI and platform exports to detect it:`ts
import { isCI, provider, providerInfo } from "std-env";console.log({
isCI, // true
provider, // "github_actions"
providerInfo, // { name: "github_actions", isCI: true }
});
`List of well known providers can be found from ./src/providers.ts.
Runtime Detection
std-env can automatically detect the current JavaScript runtime based on global variables, following the WinterCG Runtime Keys proposal:`ts
import { runtime, runtimeInfo } from "std-env";// "" | "node" | "deno" | "bun" | "workerd" ...
console.log(runtime);
// { name: "node" }
console.log(runtimeInfo);
`You can also use individual named exports for each runtime detection:
> [!NOTE]
> When running code in Bun and Deno with Node.js compatibility mode,
isNode flag will be also true, indicating running in a Node.js compatible runtime.
>
> Use runtime === "node" if you need strict check for Node.js runtime.-
isNode
- isBun
- isDeno
- isNetlify
- isEdgeLight
- isWorkerd
- isFastlyList of well known providers can be found from ./src/runtimes.ts.
Platform-Agnostic
envstd-env provides a lightweight proxy to access environment variables in a platform agnostic way.`ts
import { env } from "std-env";
`Platform-Agnostic
processstd-env provides a lightweight proxy to access process object in a platform agnostic way.`ts
import { process } from "std-env";
``MIT