FastifyのPluginの裏側はavvioなのかー

昨日FastifyのPluginがどう動くかを見て楽しんで。

bufferings.hatenablog.com

今日は、実際どうやってその動きを実現してるんだろう?と気になったので簡単に見てみることにした。

Fastifyのメインの処理はこのファイルに書いてある

https://github.com/fastify/fastify/blob/1891f243ab8666ef926218691135eb032008632a/fastify.js#L94

よく読んでみると、registerはavvioを使ってるみたい。

https://github.com/fastify/avvio

avvioは、Node.jsアプリケーションの非同期ブートストラップ用のライブラリで、Fastifyを作る前に作ったのかな?

このavvioがFastifyのプラグインシステムのコアになっている。

もういちどfastify関数に戻ると、この中でavvioのuseをfastifyのregisterで使用していることがわかる。

fastify-pluginも含めて、もうちょっとだけ読み込んでみようかな。

面白いなー。