Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

License

NotificationsYou must be signed in to change notification settings

bengl/is-really-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sometimes you want to make sure that the JavaScript runtime you're expecting tobe running on is the one you're actually running on. With this library, you candetect whether you're actually running inside Node.js, and not Deno or Bun. Asingle (default) export is provided, and it's a boolean that's true if we'redefinitely running inside Node.js.

This is done by first checking various globals, and then attempting to alter v8options, and testing those options have been altered. This is only currentlypossible in Node.js. The aim is to never have false negatives, and also loadquickly if the globals-checking gives us a negative.

Some Details (FAQ)

  • Why not TypeScript or at least JSDoc?
    • The module is very small, and the code does some things that would probablypiss offtsc.
    • I don't use TypeScript in my day job, so I tend not to default to it. Don'tworry, I'm not one of those haters you see on Twitter.
    • Submit a PR that works correctly and I'll add it.
  • Do you just hate Bun and Deno? Are you some Node.js purist? They're bothNode.js compatible anyway!
    • No. A lot of code I work with targets very specific runtime things thatonly work in Node.js, so I want an easy way to bail early if that stuffisn't going to work, even if the runtime is trying to fake that it'sNode.js. That's all. Please feel free to createis-really-bun oris-really-deno if that suits your work.
  • Isn't checking the globals alone enough?
    • Nope. If folks are trying to fake that they're in Node.js, they can alwaysmess with the globals. Instead we need to do something that'strulyimpossible in the other platforms, like messing with v8 options.
  • Can't a runtime (or runtime user) pretending to be Node.js just interceptloading and replace this module withtrue?
    • Yes, but ifthis module is specifically targetted, the runtime (orruntime user) is putting enough effort into faking Node.js that they canhandle whatever comes out of that assumption on their own.
  • Why no CommonJS?
    • Deno generally doesn't support CommonJS. Yes, it supports it vianpm:imports, but that's difficult to use for testing. I'm lazy. Sorry.
    • That's a bad excuse though. Really I should make this work withrequire.Submit a PR that handles this and I'll add it.

License

The MIT License. See LICENSE.txt

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors3

  •  
  •  
  •  

[8]ページ先頭

©2009-2026 Movatter.jp