## Erange

[![npm](https://img.shields.io/npm/v/erange?style=for-the-badge&color=red)](https://www.npmjs.com/package/erange)
[![beta](https://img.shields.io/badge/version-beta-orange?style=for-the-badge)](https://github.com/arklanq/erange/wiki)
[![license](https://img.shields.io/badge/license-mit-brightgreen?style=for-the-badge)](./LICENSE)
[![docs](https://img.shields.io/badge/docs-wiki-blue?style=for-the-badge)](https://github.com/arklanq/erange/wiki)

**Erange** (pronounced 'arrange') - flexible, lightweight and easy to use dependency injection for `JS`/`TS`.

> ⚠️ This library is currently in its `beta` development stage and is subject to change in future versions without prior
> notice. It is not recommended for production use as it may contain unexpected issues.

### Table of contents

* [Introduction](#introduction)
* [Why `erange`?](#why-erange)
* [Installation](#installation)
* [Documentation & user guide](https://github.com/arklanq/erange/wiki)

### Introduction

[Dependency injection](https://en.wikipedia.org/wiki/Dependency_injection) is
an [inversion of control (IoC)](https://en.wikipedia.org/wiki/Inversion_of_control) technique wherein you delegate
instantiation of dependencies to the IoC container, instead of doing it in your own code imperatively.

There are many advantages to using dependency injection, but doing so manually often leads to a large amount of
boilerplate code to be written. **Erange** is a framework that makes it possible to write code that uses dependency
injection without the hassle of writing much of that boilerplate code.

If I've already captured your attention, then I invite you to proceed to
the [documentation](https://github.com/arklanq/erange/wiki), where you'll delve deeper into both the topic of the
presented concepts and the Erange library itself.

### Why `erange`?

* 🍭 Easy to use.
* ☕️ Very intuitive.
* 💻 Modern solution.
* 📘 Excellent TypeScript support.
* 📒 Also works with plain JavaScript.
* 🪐 Brings best DX from popular alternatives.
* 📦 Distributions in ESM and CommonJS standards.
* ❌ Does not use outdated and experimental (stage 2) TypeScript decorators.

### Installation

```bash
npm install erange
```

### Documentation & user guide

For an introduction to **Erange** and complete documentation go to:

[![docs](https://img.shields.io/badge/docs-wiki-purple?style=for-the-badge&color=blue)](https://github.com/arklanq/erange/wiki)
