npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jetli

v4.0.2

Published

Simple, lightweight dependency injector - supports factories, classes and primitives.

Downloads

5

Readme

Jetli

Simple, lightweight dependency injector - supports factories, classes and primitives.

Code quality Coverage Greenkeeper badge CricleCi badge

npm version Open issues Types: TypeScript License: MIT

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