j4flmao/agent_skills_nodejs_nestjs

architecting-nestjs-modules

Designs NestJS feature modules with clean dependency boundaries, provider scopes, and dynamic modules.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/j4flmao/agent_skills_nodejs_nestjs --skill architecting-nestjs-modules

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Architecting NestJS Modules

When to use

  • Adding a new feature module
  • Splitting a monolithic AppModule
  • Fixing tangled imports between modules

Core rules

  1. Feature modules own their domain, application, infrastructure layers
  2. Providers default to Scope.DEFAULT (singleton), use Scope.REQUEST only when needed
  3. Export only what other modules need (don't export everything)
  4. Dynamic modules for configurable features (database, cache)
  5. No cross-feature imports; use shared contracts

Reference shape (TypeScript)

Feature Module

typescript
@Module({
  controllers: [UserController],
  providers: [
    CreateUserUseCase,
    { provide: 'UserRepository', useClass: TypeOrmUserRepository },
  ],
  exports: [CreateUserUseCase],
})
export class UserModule {}

Dynamic Module Example

typescript
@Module({})
export class DatabaseModule {
  static register(config: DatabaseConfig): DynamicModule {
    return {
      module: DatabaseModule,
      providers: [
        { provide: 'DATABASE_CONFIG', useValue: config },
        { provide: DataSource, useFactory: () => new DataSource(config).initialize() },
      ],
      exports: [DataSource],
    };
  }
}

Examples — Do

typescript
// Clean module boundary
@Module({ controllers: [OrderController], providers: [OrderService], exports: [OrderService] })
export class OrderModule {}

Examples — Don't

typescript
// ❌ Monolithic AppModule
@Module({ controllers: [UserController, OrderController, ProductController], providers: [...] })
export class AppModule {}

Checklist

  • [ ] Feature modules with own layers
  • [ ] Providers with appropriate scopes
  • [ ] Only necessary exports
  • [ ] No cross-feature imports

See reference/module-patterns.md for full patterns.

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills