DI Container for Google Closure with automatic registration and strongly typed object graph resolving.
Dependency Injection Container for Google Closure Library
This plugin requires Grunt
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-closure-dicontainer --save-dev
In your project's Gruntfile, add a section named
closure_dicontainer to the data object passed into
gruntinitConfigclosure_dicontainer:app:options:// Name for generated DI container class.// goog.require('app.DiContainer');name: 'app.DiContainer'// What should be resolved.// new app.DiContainer().resolveApp()resolve: 'App'// Prefix for deps.js.prefix: '../../../../'files:'client/app/build/dicontainer.js': 'client/deps.js'
Generated DI container name.
Array of types to be resolved.
How to use DI container in your app with various resolving configurations.
###*@fileoverview App main method.###googprovide 'app.main'googrequire 'app.DiContainer'= ->container =containerconfigureresolve: Appwith: element: documentbodyresolve: estestorageStorageas: estestorageLocalresolve: foouiLightbox:lightboxsetSomethingresolve: fooIFoo: ->app = containerresolveAppappstartgoogexportSymbol 'app.main'appmain
Add grunt-closure-dicontainer task after deps.js generation task.
There is a pattern: Resolve A as B with C by D.
A is type to be resolved. B is optional type to be returned. C is optional object for run-time configuration, where key is argument name and value is runtime value. D is optional factory method.
Available in Este soon. Stay tuned.