# What is _declarative-js_
_declarative-js_ is modern JavaScript library, that helps to:
-  tackle array transformation with built in JavaScript array api (e.g. `array.filter(toBe.unique())`), 
- provide a type-level solution for representing optional values instead of null references. 

# Why _declarative-js_?
 - performance [(link to benchmarks)](https://github.com/pavel-surinin/performance-bechmark/blob/master/output.md)
 - ability to use with built in api (js array)
 - it is written in `typescript`. All functions provides great type inference
 - declarative code instead of imperative
 - reduces boilerplate code providing performant and tested solutions
 - comprehensive documentation [(link)](https://pavel-surinin.github.io/declarativejs/#/) 
 - Target version of javascript is ES5
 - Internet Explorer 11 compatible 

[![npm version](https://badge.fury.io/js/declarative-js.svg)](https://www.npmjs.com/package/declarative-js)
[![Build Status](https://travis-ci.org/pavel-surinin/declarativejs.svg?branch=master)](https://travis-ci.org/pavel-surinin/declarative-js)
[![Coverage Status](https://coveralls.io/repos/github/pavel-surinin/declarativejs/badge.svg?branch=master)](https://coveralls.io/github/pavel-surinin/declarativejs?branch=master)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/pavel-surinin/declarativejs.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/pavel-surinin/declarativejs/context:javascript)
![](https://shields-staging.herokuapp.com/npm/dm/declarative-js.svg)
![](https://shields-staging.herokuapp.com/npm/types/declarative-js.svg)

# Install
```
npm i declarative-js --save
```

# Documentation
All documentation can be found here: [link](https://pavel-surinin.github.io/declarativejs/)
# License
MIT