LoginSignup
2
1

More than 1 year has passed since last update.

NestJSで入門するnpmライブラリ公開生活

Last updated at Posted at 2021-12-12

今回、既存の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個が作れたと思います。

みなさんも小さなところから良いライブラリライフを!!

「ライブラリ〇〇をNestJSで使えるようにする」ってだけで色々作れそうなのでやりやすいです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1