dmonad / lib0

Monorepo of isomorphic utility functions
MIT License
347 stars 62 forks source link

Issue with crypto in random.js #2

Closed callum-atwal closed 4 years ago

callum-atwal commented 4 years ago

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 https://github.com/dmonad/lib0/blob/17d4bee0c37d43d1eee17b04401ba7b90c675c22/random.js#L11)

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?

dmonad commented 4 years ago

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.