1.0.2 • Published 4 years ago

liim v1.0.2

Weekly downloads
92
License
BSD-3-Clause
Repository
github
Last release
4 years ago

Liim

A tiny service container.

One of the goals is for liim to be as small and fast as possible. It is not supposed to include all possible features. If you need to enhance it with additional features, you can extend the instance and add the functionality on top.

Right now it is ~380B minifed and ~230B gzipped.

Usage

Registering Services

Create the service container:

import Liim from "liim";

let liim = new Liim();

A service can either be any value or a function which will create the dependency:

liim.set("hello", new MyService);

// create the service lazily
liim.set("ohai", (liim) => {
    return new ServiceWithDependencies(liim.get("a"), liim.get("b"));
});

Services with a service factory function will only be created when the service is fetched for the first time. Also they will only be created once, as the instance is reused.

Fetching Services

You can get services using the .get() method:

liim.get<Service>("service-name");

This method will throw if the service is missing. If the service is an optional requirement for your app, you should check on existence with

if (liim.has("service-name"))
{
    // service is defined
}

beforehand.

1.0.2

4 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.1

5 years ago