この記事は Scala Advent Calendar 2023 13 日目の記事です。 はじめに 私的には Scala.js の利点として JavaScript / TypeScript 向けのライブラリを利用しつつ Scala の書き心地を得られる。 純粋関数型プログラミングを容易にできる。 という二点が特に大きいと考えています。 しかし、せっかく Scala で副作用を隔離して気持ちよくコードを書いていても、JS / TS 向けライブラリの中には import するだけで環境変数読み込みや HTTP リクエスト等の副作用が発生するような危険なライブラリが存在します。1 この記事では、そのような 「import で副作用を起こすライブラリ」 をどのように副作用を起こさずに扱うかを書き記したいと思います。 また、この記事では副作用の隔離について Effect runtime として Ca
![Scala.js で 「import で副作用を起こすライブラリ」 と戦った話 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/02bece870df14215677c9ba1cd9bf4ecf8384730/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9U2NhbGEuanMlMjAlRTMlODElQTclMjAlRUYlQkQlQTJpbXBvcnQlMjAlRTMlODElQTclRTUlODklQUYlRTQlQkQlOUMlRTclOTQlQTglRTMlODIlOTIlRTglQjUlQjclRTMlODElOTMlRTMlODElOTklRTMlODMlQTklRTMlODIlQTQlRTMlODMlOTYlRTMlODMlQTklRTMlODMlQUElRUYlQkQlQTMlMjAlRTMlODElQTglRTYlODglQTYlRTMlODElQTMlRTMlODElOUYlRTglQTklQjEmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ21pZGRsZSZzPTVjYTZhM2MyODhhZDA3ZmIwZTQwNjk3ZTk4YTM0ZjRl%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwQ2hlbkNNRCZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTMyJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NDQ0MzJkMzQzNmJhYThjYWZiYzFmMWQ1MTY0M2Y1MmU%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D9273d84cbe379d684ad362d5d4b6f733)