@fastify/awilix
Version:
Dependency injection support for fastify framework
35 lines (27 loc) • 923 B
TypeScript
import { AwilixContainer } from 'awilix'
import { FastifyPluginCallback } from 'fastify'
import { AwilixManager } from 'awilix-manager'
export interface Cradle {}
export interface RequestCradle {}
declare module 'fastify' {
interface FastifyRequest {
diScope: AwilixContainer<Cradle & RequestCradle>
}
interface FastifyInstance {
diContainer: AwilixContainer<Cradle>
awilixManager: AwilixManager
}
}
export type FastifyAwilixOptions = {
disposeOnResponse?: boolean
disposeOnClose?: boolean
injectionMode?: 'PROXY' | 'CLASSIC'
container?: AwilixContainer<Cradle>
asyncInit?: boolean
asyncDispose?: boolean
eagerInject?: boolean
}
export const fastifyAwilixPlugin: FastifyPluginCallback<NonNullable<FastifyAwilixOptions>>
export const diContainer: AwilixContainer<Cradle>
export const diContainerClassic: AwilixContainer<Cradle>
export const diContainerProxy: AwilixContainer<Cradle>