Elysia と Bun のためのモジュラーフレームワーク。
デコレーター · DI · モジュール · Elysia の速度。
@Controller、@Get、@Post、@Body など — Elysia 上でネイティブに動作するクリーンな宣言的デコレーター API。
nestelia は各デコレートされたルートを Elysia ハンドラーに直接マッピングし、フレームワーク層で型推論とスキーマバリデーションを提供します。
import { Controller, Get, Post, Body } from 'nestelia'
import { CreateUserDto } from './dto'
@Controller('/users')
export class UsersController {
@Get()
findAll() {
return { users: [] }
}
@Post()
create(@Body() dto: CreateUserDto) {
return dto
}
}reflect-metadata によるシングルトン・トランジェント・リクエストスコープをサポートするコンストラクターベースの DI。
@Injectable() でクラスをマークしプロバイダーとして宣言するだけ — nestelia が起動時に依存関係グラフ全体を自動解決します。
import { Injectable } from 'nestelia'
@Injectable()
export class UsersService {
private users: User[] = []
async findAll(): Promise<User[]> {
return this.users
}
async create(dto: CreateUserDto): Promise<User> {
this.users.push(dto)
return dto
}
}コントローラー、プロバイダー、インポートを明確な構造を持つ凝集した再利用可能なモジュールにカプセル化。
createElysiaApplication を一度呼び出すだけで依存関係グラフ全体が接続され、準備完了の Elysia インスタンスが返されます。
import 'reflect-metadata'
import { createElysiaApplication } from 'nestelia'
import { AppModule } from './app.module'
const app = await createElysiaApplication(AppModule)
app.listen(3000)
// Listening on http://localhost:3000NestJS スタイルの DX を Elysia レベルの速度で——デコレーターと DI のオーバーヘッドはほぼゼロ。
オプションパッケージ — 必要なものだけインストール。
nestelia/scheduler@Cron、@Interval、@Timeout — node-cron によるタスクスケジューリング。
nestelia/microservices@MessagePattern と @EventPattern を使った TCP・Redis トランスポート。
nestelia/apollo@Resolver、@Query、@Mutation、@Subscription によるコードファーストの GraphQL。
nestelia/passportAuthGuard と PassportStrategy — すぐに使える認証ストラテジー。
nestelia/cache@CacheKey、@CacheTTL とプラグイン可能なキャッシュストアを持つ CacheModule。
nestelia/rabbitmqamqplib 経由の AMQP で @RabbitSubscribe と @RabbitRPC。
nestelia/testingTest.createTestingModule — モックプロバイダーによる隔離テスト。
nestelia/graphql-pubsubリアルタイム GraphQL サブスクリプション用の Redis バックエンド PubSub。