injecute
Lightweight, type-safe, decorator-free dependency injection container for TypeScript.
Dependencies are declared explicitly as keys. The container's type grows with every registration, so get() results and factory parameters are fully typed, and a typo in a dependency key is a compile error.
Install: npm i injecute · deno add npm:injecute · bun add injecute, or import from a CDN: https://esm.sh/injecute.
Example
Register and resolve services
ts
import { DIContainer } from 'injecute';
class UserRepository {
constructor(readonly dbUrl: string) {}
}
const container = new DIContainer()
.addInstance('dbUrl', 'postgres://localhost/app')
.addSingleton('users', UserRepository, ['dbUrl']);
const users = container.get('users'); // typed as UserRepositoryDocumentation: https://masyaka.github.io/injecute/
Classes
Interfaces
- AbortSignalLike
- AliasOptions
- AsyncDIContainer
- AsyncNamespace
- AsyncServiceProvider
- AsyncServiceRegistry
- CheckWiringOptions
- CollectDependency
- ContainerEvents
- ForkOptions
- GetOptions
- HasOptions
- InjecuteErrorOptions
- InstanceOptions
- LifecycleErrorContext
- LifecycleHookEvent
- MiddlewareContext
- Namespace
- OptionalDependency
- ProxyAccessorOptions
- RegistrationInfo
- RegistrationOptions
- ResetOptions
- RunningLifecycle
- SealedAsyncDIContainer
- SealedDIContainer
- ServiceProvider
- ServiceRegistry
- SingletonFactoryOptions
- SingletonOptions
- StartableHooks
- StartableModule
- StartLifecycleOptions
- StopLifecycleOptions
- Tag
- TaggedKey
- WiringProblem
Type Aliases
ArgumentsKey- AsyncNamespacedServices
- ContainerServices
DependenciesToTypes- Dependency
- DependencyInfo
- DisposeOption
- ExposedName
- Factory
IDIContainer- InjecuteErrorCode
- KeySpec
- Lifecycle
- LifecycleHook
- LifecycleSignal
- LifecycleState
- LifecycleUndo
- MaybePromises
- Middleware
- NamedResolvers
- NamedResolversOf
- NamespacedServices
- NamespaceServices
- Produced
- ProxyAccessor
- Registered
- RegistrationKind
- RegistryServices
- ResolveDependencies
- ResolveDependency
- ResolversTuple
- ServiceKey
- ServicesInNamespace
- ServiceType
- SpecKey
- Tree