昨日FastifyのPluginがどう動くかを見て楽しんで。
今日は、実際どうやってその動きを実現してるんだろう?と気になったので簡単に見てみることにした。
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も含めて、もうちょっとだけ読み込んでみようかな。
面白いなー。