jetli
v4.0.2
Published
Simple, lightweight dependency injector - supports factories, classes and primitives.
Downloads
4
Readme
Jetli
Simple, lightweight dependency injector - supports factories, classes and primitives.
Main features
- tiny & easy to use: only 3 methods
- delayed dependency initialisation
- No dependencies (for dist)
- Typescript types included
- exposes esm/cjs modules
- always 100% test coverage
Guide
Installation
or
or
Basic usage
Jetli allows you to inject consistently classes, functions and primitives across whole application.
Inject & instantiate class via 'get' method
Injecting instances of classes is trivial with jetli - just use 'get' method without any additional options.
Inject & instantiate class via 'set' and retrieve instance via 'get' methods
Functions, already instantiated objects or primitive values like array, string and numbers can be injected via 'get' method priory to registering them with jetli.
Registration is provided via 'set' method and requires you to provide string token that identifies the injectable element.
Inject primitives via id
As explained in previous example primitives can be easily used across your applications with associated string id provided during registration.
Create initialisation-friendly services
To use Jetli to full extend implement services that expose init method. This method is the safest place to use Jelit injector inside injectable services.
If you already initialised injectable and dont want jetli to call "init" make sure to set "initialise" property to true;
Advanced usage
Pass arguments to services constructor
Inject services into other services without circular dependency
Jetli uses battle-tested method to fight 'cyclic dependencies' - optional initialisation callback. Injector searches for optional "init" method to call it and as an argument to provide instance of injector itself. This method provide safe moment to inject all dependencies required by service - you can be sure that all dependencies will be already initialised.
Mock services for test purposes
Its rather trivial to mock module dependencies if you have total control whats injected where, right? With Jetli you can reset any previously registered/injected dependencies and introduce your own mocks / stubs.
Documentation
Full API documentation for this package can be found here