js-resolver
Version:
A light weight Inversion of Control(IOC) container for module pattern approch.
109 lines (89 loc) • 3.04 kB
Markdown
js-Resolver($resolver)
===================
A light weight plugin for Inversion of Control(IOC) container for module pattern approch which can resolve an object or a class dynamically without polluting global scope. Adopating SOLID principle for seperation of concerns & single responsibility.
## Features
1. Light weight
2. Dynamically resolve
3. Used Strict IIFE
4. Muliple files
5. SOLID principle
## Demo
1. [Demo](https://muzammilkm.github.io/js-resolver/docs/index.html)
## Installation
### Manual Installation
Download the **js-resolver.js** file or **jq-resolver.min.js** (*recommended*) file from dist folder and include it in your page either in the `<head>` section or just before the closing tag of the `<body>` section.
### NPM
```
> npm install js-resolver
```
### Bower
```
$ bower install js-resolver
```
### Nuget
```
PM> Install-Package js-resolver
```
## Introduction
A light weight plugin for Inversion of Control(IOC) container which can resolve objects or functions dynamically without polluting global scope. Adopating SOLID principle for seperation of concerns & single responsibility. This plugin is best used in Module pattern approch with IIFE & when you load multiple js files in browser.
Basic Example
```javascript
(function (resolver) {
var personModel = {},
_data;
personModel.getFirstName = function() {
return _data.firstName;
};
personModel.getLastName = function() {
return _data.firstName;
};
personModel.setData = function(data) {
_data = data;
};
resolver('person', personModel);
}(window.$resolver));
```
##### Resolving model
```javascript
(function (resolver) {
var person = resolver('person');
person.setData({
firstName: 'Muzammil',
middleName: 'Khaja',
lastName: 'Mohammed'
});
console.log("your first name: " + person.getFirstName());
console.log("your last name: " +person.getLastName());
}(window.$resolver));
```
## Documentation
Add/Register either an object or a function or a value with $resolver to be resolved later
```javascript
window.$resolver('alias name', object or function or value);
```
To resolve an object or a function or a value via alias name
```javascript
var expected = window.$resolver('alias name');
```
To check alias name is added/registered in $resolver.
```javascript
var expected = window.$resolver.has('alias name');
```
To remove an object or a function or a value from $resolver.
```javascript
var expected = window.$resolver.has('alias name');
if(expected){
console.log('Exists');
} else{
console.log('Does not Exists');
}
```
Add/Register singleton/static object in $resolver.
```javascript
var expected = window.$resolver.service('alias name', {});
```
To extend singleton/static object in $resolver.
```javascript
var expected = window.$resolver.service('alias name');
expected.extend(object or function or value);
```