flexdinesh / flexdinesh/browser-or-node
in isJsDom there is no check on navigator.userAgent
- Dominant language
- TypeScript
- Stars
- 251
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
even using 2.1.1 logic, when i run it in node (alpine14), i get the following error:
```
(navigator.userAgent.includes("Node.js") ||
^
TypeError: Cannot read property 'includes' of undefined
```
when i evaluate each part, i can see these various values:
```typeof window !== "undefined"```
true
```window.name === "nodejs"```
false
therefore,
```(typeof window !== "undefined" && window.name === "nodejs")```
is false
so, one would think it would short circuit, but for some reason it continues on to the OR where
```typeof navigator !== "undefined"```
is true
because
navigator is an object with
```{appName: 'nodejs'}```
but then it blows up here because there i no userAgent:
```navigator.userAgent.includes("Node.js")```
Uncaught TypeError TypeError: Cannot read property 'includes' of undefined
so, it seems like the checks are not preventing it from trying to access a property on an undefined object (navigator.userAgent). would appreciate if you could identify a way to make this work for me. we are using bitgo_service which uses your code. not sure how this works for others and not for me, but i can override the dependency of the current bitgo version we are using, if you can create an updated package.
many thanks!
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.