dmonad / lib0

Monorepo of isomorphic utility functions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Issue with crypto in random.js

callum-atwal opened this issue · comments

Hi,

I thought I'd just raise an issue for this as I was unsure of a good workaround.

I ran into an issue when using Yjs with Angular. Namely, since it is still run under a node environment, the lib0 library attempts to use node's crypto instead of browser crypto. (see this line

lib0/random.js

Line 11 in 17d4bee

const nodeCrypto = env.isNode ? require('crypto') : null
)

However, Angular did not like this since it doesn't want to expose core node modules in this way to the frontend (understandable) - it would give an error saying it could not resolve requiring crypto.

My workaround, in this case, was just to remove this line altogether and modify the rest of the file such that it only uses browser crypto.

I just thought I'd make you, and anyone else that got as far as figuring this out, aware of the issue.
Maybe perhaps there is a better way of determining the environment?

Hi @callum-atwal, thanks for reporting this. I fixed this in lib0#0.2.x . If you are using Yjs, try updating to v13.0.0-105.