_ ____ __ ___
| / ___| \ \ / / |__ ___ _ __ ___
_ | \___ \ \ \ /\ / /| '_ \ / _ \ '__/ _ \
| |_| |___) | \ V V / | | | | __/ | | __/
\___/|____/ \_/\_/ |_| |_|\___|_| \___|
A lightweight and precise JavaScript library that detects the exact runtime environment of your application, including React Native, Expo, Vite, Next.js, NestJS, and more. π
β’ Overview
β’ Features
β’ Installation
β’ Usage
β’ Supported Environments
β’ Development
β’ API Reference
β’ Contributing
β’ License
Runtime Environment Detector is a powerful utility that helps you identify the current JavaScript runtime environment your code is executing in. Whether you're running in Vite, React Native, Expo, or other environments, this library provides accurate detection.
- π Accurate runtime environment detection
- π― Type-safe implementation
- π Zero dependencies
- π¨ Lightweight and fast
- π Easy integration
- π¦ Tree-shakeable
# Using npm
npm install @bitecraft/jswhere
# Using Bun
bun install @bitecraft/jswhere
# Using pnpm
pnpm install @bitecraft/jswhere
# Using yarn
yarn add @bitecraft/jswhere
import { detectEnvironment } from '@bitecraft/jswhere';
const environment = detectEnvironment();
console.log(`Current runtime environment: ${environment}`);
Current implementation status:
- Vite
- React Native
- Expo
- Next.js (Coming soon)
- NestJS (Coming soon)
- Browser (Coming soon)
- Node.js (Coming soon)
- Electron (Coming soon)
- Remix (Coming soon)
- Nuxt (Coming soon)
- SvelteKit (Coming soon)
- Deno (Coming soon)
- Bun (Coming soon)
- Node.js >= 14.0.0
- TypeScript/Javascript knowledge
- Clone the repository:
git clone https://github.com/BiteCraft/jswhere.git
cd jswhere
- Install dependencies:
npm install
- Start development
npm run dev
npm run build
function detectEnvironment(): RuntimeEnvironment
Returns one of the following types:
type RuntimeEnvironment =
| "expo"
| "react-native"
| "vite"
| "nextjs"
| "nestjs"
| "browser"
| "node"
| "electron"
| "remix"
| "nuxt"
| "sveltekit"
| "deno"
| "bun"
| "unknown";
This project is currently a work in progress, and we welcome contributions! If you'd like to help, here are some ways you can contribute:
- Implement missing environment detectors
- Improve existing detectors
- Add tests
- Improve documentation
To contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/NewDetector
) - Commit your changes(
git commit -m 'feat: add new environment detector'
) - Push to the branch (
git push origin feature/NewDetector
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ using TypeScript