toss/nestjs-aop

NestJS向けのデコレータベースAOP実装で、IoC コンテナと自然に統合します。

開発の材料自由に使える · MITバックエンド・DBTypeScript難易度
257+0今週0
31フォーク2Issue

中辛 の解説

TypeScript・NestJS 8 〜 11 向けの軽量 AOP ライブラリです。@Aspect デコレータと LazyDecorator インターフェースを実装して、AOP の側面(アスペクト)を NestJS プロバイダとして定義します。@Inject で任意の依存を注入でき、reflect-metadata とネイティブデコレータのみで動作するため、コード変換ステップが不要です。メソッド・ゲッター・セッター、およびクラス継承に対応しており、すぐに実運用に投入できます。

이런 레포예요

이럴 때 쓰면 좋아요

  • メソッド実行結果をキャッシュして性能を向上させたい場合
  • 複数のメソッドに共通のログ出力やエラーハンドリングを加えたい場合
  • リトライロジックやレート制限を複数のエンドポイントに統一的に適用したい場合

핵심 기능

デコレータベースの AOP 実装NestJS IoC コンテナとの統合ゲッター・セッター・継承サポート

대안 대비 차별점

NestJS のプロバイダとして アスペクトを直接定義でき、@Inject で依存を自然に注入できる点で、汎用的なメタプログラミングライブラリとは異なります。

食べた人たち

実際に使ってみた人の記録です — 一言も完走の記録も、確認のうえで公開しています。

試食評 · 使った人のひとこと

まだ試食評がありません。使ってみたら、最初のひとことをどうぞ。

ほかのリポジトリの試食評を見る →

이 레포로 만든 것들

🖋 완주 인증하기

아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

준비물

  • NestJS 8 以上
  • TypeScript
  • reflect-metadata

すぐ動かしてみるNode.js (pnpm)

ギット飯がリポジトリの構成を確認して組み立てた実行コマンドです。ターミナルに貼り付ければ、取得から実行までまとめて進みます。

git clone --depth 1 https://github.com/toss/nestjs-aop.git &&
cd nestjs-aop &&
pnpm install

실행 명령은 README를 확인하세요.

コードは自分の環境で動きます — はじめて見るリポジトリなら、中身にひととおり目を通してから実行するのがおすすめです。

README가 안내하는 자세한 단계 보기
  1. @toss/nestjs-aop パッケージをインストールします。
npm install @toss/nestjs-aop
  1. AppModule に AopModule をインポートします。
import { AopModule } from '@toss/nestjs-aop';

@Module({
  imports: [AopModule],
})
export class AppModule {}
  1. アスペクト用の Symbol を作成します。
export const CACHE_DECORATOR = Symbol('CACHE_DECORATOR');
  1. LazyDecorator を実装したプロバイダを定義します。
import { Aspect, LazyDecorator, WrapParams } from '@toss/nestjs-aop';

@Aspect(CACHE_DECORATOR)
export class CacheDecorator implements LazyDecorator<any, any> {
  wrap({ method }: WrapParams<any, any>) {
    return (...args: any[]) => method(...args);
  }
}
  1. モジュールのプロバイダに追加します。
@Module({
  providers: [CacheDecorator],
})
export class CacheModule {}
  1. デコレータ関数を作成して、サービスメソッドに付与します。
export const Cache = () => createDecorator(CACHE_DECORATOR);

export class UserService {
  @Cache()
  findAll() {
    return [];
  }
}

ギット飯トライで味見

入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。

ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。

npx gitbap-try toss/nestjs-aop

Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →

スター推移 · 7日

257+0 / 7일

使いやすさ · まねしやすいか

サンプル評点 20/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

更新の情報なし · 2022 年に作成

「백엔드·DB」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/toss/nestjs-aop.svg)](https://www.gitbap.com/r/toss/nestjs-aop)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る