今回、既存のJSライブラリをNestJS用にラッピングするライブラリを作成することにして、OSS活動アピ(大したことない)をやってみようと思いました。
以下、作ったライブラリとその概要
1. nestjs-ip-middleware
-
動機:NestJSをいじってて、なにかライブラリっぽいものを作ってみたいという思いつき。
-
経緯
- 案件でIP取得する機能をやっていて、偶然nestjs-real-ipというものを見つけた。
- これはただのラッパーライブラリーで、実装を見ると簡単だったから自分でもこういうの作れるのでは?という経緯。
- ちなみに、アクセス元のIPを取得するrequest-ipのラッパー
-
実装
- 完全に真似て作りました。こちらのライブラリではデコレータとしてIPを取得するようにしているようでしたが、ミドルウェアとしてreqオブジェクトにattachするようなものを作りました。(詳細はソースなど参照)
-
結果
- 創作負荷なく簡単にできてテスト、CI/CD環境(Github Actions)も色々勉強になったので良かった。
- ダウンロード数も100を超えて、なんか嬉しい
- 自作ライブラリ公開デビューできたので良かっら。
2. nestjs-notarealdb
- 経緯:1のライブラリは簡単なものだったので、もっと複雑なものをと思い、@nestjs/typeormを参考にして作ることに!!
- 機能は簡単なものにしたいで、DBを扱わないJSON形式でファイル保存するnotarealdbをラップすることにした。
- 実装
- 結構難しかった。NestJSのDynamicMuduleを理解しなければなかった。
- 実装・テストは@nestjs/typeormを参考にできたので良かった。普段使ってない機能をたくさん使っていたので勉強になった。
- 結果 - 公開したばかりなのでまだダウンロード数は少ないが、改善点も色々あると思うので今後もメンテ等していこうと思う。
- 今後はラッパーでないライブラリを作りたいがデビューとしては良い2個が作れたと思います。