<commit_before># epoxy

![npm version](https://img.shields.io/npm/v/epoxy-di.svg?style=flat-square)
![build status](https://img.shields.io/travis/gimre/epoxy/master.svg?style=flat-square)
![test coverage](https://img.shields.io/codecov/c/github/gimre/epoxy/master.svg?style=flat-square)

Epoxy is a lightweight (~200 sloc) IoC container for NodeJS. Notable features:
  * automatic dependency injection ( in multiple flavours )
  * multiple injection patterns - ```constant, constructor, factory, singleton```
  * circular depedency detection and resolution
  * made with ❤ and ES2015

## Installation
```npm install epoxy-di```

## Table of Contents
---
  * [ Basic Usage ]( #basic-usage )
  * [ API ]( #api )
      * [ Container ]( #container )
          * [ constructor( [ providers ] ) ]( #constructor-providers-providerscurrentdirectory )
          * [ create( id ) ]( #containercreate-id )
          * [ provide( path ) ]( #containerprovide-path )
          * [ register( id, factory ) ]( #containerregister-id-factory )
      * [ Providers ]( #providers )
      * [ Strategies ]( #strategies )
      * [ Types ]( #types )
  * [ License ]( #license )

## Basic Usage
```javascript
// ./index.js

const { Container, Providers } = require( 'epoxy-di' )

const ioc = new Container( [
    Providers.CurrentDirectory,
    Providers.NodeModules
] )
<commit_msg>changed heart color :D<commit_after># epoxy

![npm version](https://img.shields.io/npm/v/epoxy-di.svg?style=flat-square)
![build status](https://img.shields.io/travis/gimre/epoxy/master.svg?style=flat-square)
![test coverage](https://img.shields.io/codecov/c/github/gimre/epoxy/master.svg?style=flat-square)

Epoxy is a lightweight (~200 sloc) IoC container for NodeJS. Notable features:
  * automatic dependency injection ( in multiple flavours )
  * multiple injection patterns - ```constant, constructor, factory, singleton```
  * circular depedency detection and resolution
  * made with 💜 and ES2015

## Installation
```npm install epoxy-di```

## Table of Contents
---
  * [ Basic Usage ]( #basic-usage )
  * [ API ]( #api )
      * [ Container ]( #container )
          * [ constructor( [ providers ] ) ]( #constructor-providers-providerscurrentdirectory )
          * [ create( id ) ]( #containercreate-id )
          * [ provide( path ) ]( #containerprovide-path )
          * [ register( id, factory ) ]( #containerregister-id-factory )
      * [ Providers ]( #providers )
      * [ Strategies ]( #strategies )
      * [ Types ]( #types )
  * [ License ]( #license )

## Basic Usage
```javascript
// ./index.js

const { Container, Providers } = require( 'epoxy-di' )

const ioc = new Container( [
    Providers.CurrentDirectory,
    Providers.NodeModules
] )

{'fraction_non_alphanumeric': 0.15207035544155367, 'fraction_numerical': 0.005130084279956028, 'mean_word_length': 3.3890675241157555, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3122333', 'n_tokens_mistral': 897, 'n_tokens_neox': 834, 'n_words': 189}