UNPKG

js-resolver

Version:

A light weight Inversion of Control(IOC) container for module pattern approch.

109 lines (89 loc) 3.04 kB
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); ```