本記事は、2022年5月に開催されたTechFeed Conference 2022のセッション書き起こし記事
Node.
私はNode.
「Node.
これは4月末にリリースされて、今は5月なんですけどv18.
fetch(Experimental)
まずひとつめ、fetchですね。もうあんまり説明しなくてもいいかなと思うんですけど、WebにおいてブラウザからHTTPリクエストするという機能がNode.
![Fetch Example](/assets/images/article/2022/08/tf001-nodejs/001.png)
fetchで
これ、ちょっと前のNode.
WHATWG Stream(Experimental)
次にWHATWG Streamです。fetchが入ったということは、これも入るのでは…ってなんとなくわかる人にはわかると思うんですけど、これも入りました。
![WHATWG Stream Example](/assets/images/article/2022/08/tf001-nodejs/002.png)
これはどういうことかというと、fetchは基本的に、さっき言ったレスポンスをパンって投げたときに、そのレスポンスオブジェクトを一発で戻してくるというのが基本的な動きですが、これはStreamで動き続けています。
Streamとはつまり流れですね。少しずつ少しずつ受け取ることができる感じです。そういう処理を行うことができるAPIのことをStreamといいます。このStreamに対して、それをWebブラウザからも呼べるWHATWGのStreamというものが存在していて、それがNode.
ここで言いたいのは、Node.
Test Runner
次はTest Runnerです。これもExperimentalで機能として入っています。テストを実行する機能ですね。もともとNode.
![Test Runner Example](/assets/images/article/2022/08/tf001-nodejs/003.png)
useraland snapshot
サクサク行きましょう。userland snapshotについてです。
これは、起動したときの状態をbootstrapというのですが、その起動時の状態をスナップショットできます。
![useraland snapshot](/assets/images/article/2022/08/tf001-nodejs/004.png)
たとえばTypeScriptとか、そういうでかいファイルを読み込むときに
Node.jsの次の10年
ちなみに5月27日はNode.
![Node.js 13th Birthday](/assets/images/article/2022/08/tf001-nodejs/005.png)
それにともなって
![Node.js Next 10](/assets/images/article/2022/08/tf001-nodejs/006.png)
今回はModernHTTPなど、4つのテーマを紹介したいんですが、あんまり時間がないのでサクサク行きます。
まずModernHTTPについて。HTTP 1 / 2は追加されていて、fetchも追加されていて、HTTP/ 3は次のターゲットですね
![ModernHTTP](/assets/images/article/2022/08/tf001-nodejs/007.png)
次はSuitable Types/ Documentです。これ、注目度高いかなと思うんですけど、fetchのときにこのURL
![Fetch Example](/assets/images/article/2022/08/tf001-nodejs/008.png)
![JSON URL](/assets/images/article/2022/08/tf001-nodejs/009.png)
API以下のドキュメントというのは全部HTMLとJSONの両方で提供されていて、そこから型の情報とか、型の情報を生成することができるようになっています。
![HTML JSON](/assets/images/article/2022/08/tf001-nodejs/010.png)
このあたりの情報は、プログラマが加工しやすい形でエンドユーザーに届けられるようにしようという目論見がされています。
![Types/ Document](/assets/images/article/2022/08/tf001-nodejs/011.png)
最後にSingle Executable Appsです。
これは1回のファイルを実行可能なファイルとして置いておいて、それをデプロイするだけで利用できるようにしようというものですね。まだ現在はドラフトなので開発中なんですけど、今後に期待できるかなと思っています
![Single Executable Apps](/assets/images/article/2022/08/tf001-nodejs/012.png)
おわりに
Node.
![Node.js Users](/assets/images/article/2022/08/tf001-nodejs/013.png)
両者の思惑やニーズがいろいろある中で、それをうまくまとめていって、その上でリリースできるようになるといいかなと思いま す。
![Both Users 01](/assets/images/article/2022/08/tf001-nodejs/014.png)
![Both Users 02](/assets/images/article/2022/08/tf001-nodejs/015.png)
両者のニーズを叶えながら、次のNode.
今日は以上になります。ありがとうございました。