digitalbazaar / forge

A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
https://digitalbazaar.com/
Other
5.01k stars 767 forks source link

Add a fallback global scope for runtime likes wechat mini program #1066

Open imyelo opened 6 months ago

imyelo commented 6 months ago

WeChat Mini Program is a popular application form in China, similar to Progressive Web Apps but with a specific runtime and system interface provided by the application platform (wechat indeeded). Its runtime is similar to a browser or React Native but lacks global objects like document, window, self. As a result, using node-forge in WeChat Mini Program would cause crashes due to the inability to find the global scope, leading to issues like #1028 and #1027.

A few years ago, I made some minor efforts to support running such JavaScript modules in those environments, including applying a runtime patch for JS dependencies. However, this implementation heavily depends on webpack.

Especially with the popularity of various mini programs and cross-platform frameworks today, I believe that adding a fallback logic directly in node-forge can prevent crashes in such scenarios.

Hope this will be helpful for other mini program or hybrid developers as well. 😘

vricosti commented 1 month ago

completely agree!!! I have the same kind of issue.