面向 TypeScript 的新一代依赖注入
编译器检查依赖图,快速解析依赖,运行时小于 3 KiB。业务逻辑仍是普通 TypeScript。
pnpm add @inferdi/inferdi
记录的八轮生产构建基准测试中位数。衡量容器开销,而非应用吞吐量。 .
每次注册都会返回一个新的容器类型,其中记录了键、值、生命周期、异步边和作用域要求。
import { Container } from '@inferdi/inferdi'
class Logger {
info(message: string) {}
}
class Database {
findUser(id: string) {
return { id }
}
}
class UserRepo {
constructor(readonly logger: Logger, readonly database: Database) {}
}
const container = new Container()
.registerClass('logger', Logger, [])
.registerClass('database', Database, [])
.registerClass('users', UserRepo, ['logger', 'database'])
const users = container.get('users')
React 19类型化上下文、Suspense Hook 和托管作用域。
Fastify 5每个请求一个类型化作用域,并按生命周期清理。
Hono 4适用于 Workers、Bun 和 Node 的类型化上下文变量。
Koa 3请求作用域跟随中间件生命周期。
Express 5用于中间件和路由的类型化请求作用域。
Elysia 1将路由类型传递到请求服务。将依赖图集中在一个地方,让所有选择都易于查看和修改。