add docs
This commit is contained in:
		
							
								
								
									
										64
									
								
								docs/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								docs/index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| # smartsystem | ||||
| simplifies lazy loading with TypeScript | ||||
|  | ||||
| ## Availabililty | ||||
| [](https://www.npmjs.com/package/smartsystem) | ||||
| [](https://GitLab.com/pushrocks/smartsystem) | ||||
| [](https://github.com/pushrocks/smartsystem) | ||||
| [](https://pushrocks.gitlab.io/smartsystem/) | ||||
|  | ||||
| ## Status for master | ||||
| [](https://GitLab.com/pushrocks/smartsystem/commits/master) | ||||
| [](https://GitLab.com/pushrocks/smartsystem/commits/master) | ||||
| [](https://www.npmjs.com/package/smartsystem) | ||||
| [](https://david-dm.org/pushrocks/smartsystem) | ||||
| [](https://www.bithound.io/github/pushrocks/smartsystem/master/dependencies/npm) | ||||
| [](https://www.bithound.io/github/pushrocks/smartsystem) | ||||
| [](https://nodejs.org/dist/latest-v6.x/docs/api/) | ||||
| [](https://nodejs.org/dist/latest-v6.x/docs/api/) | ||||
| [](http://standardjs.com/) | ||||
|  | ||||
| ## Usage | ||||
| We recommend the use of TypeScript for best Intellisense | ||||
|  | ||||
| smartsystem supports both npm and SystemJs as module loader. | ||||
|  | ||||
| ```javascript | ||||
| import { LazyModule } from 'smartsystem' | ||||
|  | ||||
| // plugin does not get loaded here at runtime | ||||
| import * as _myPlugin from 'myPlugin' | ||||
|  | ||||
| // define the lazy module | ||||
| let myLazyModule = new LazyModule<typeof _myPlugin>('myPlugin', __dirname) | ||||
|  | ||||
| // set the loader, defaults to npm anyway, can be systemjs alternatively | ||||
| myLazyModule.setLoader('npm')  | ||||
|  | ||||
| // another plugin | ||||
| import * as _anotherPlugin from 'anotherPlugin' // plugin does not get loaded here at runtime | ||||
|  | ||||
| // define lazy module | ||||
| let anotherLazyModule = new LazyModule<typeof _anotherPlugin>('anotherPlugin', __dirname) | ||||
| anotherPluginLazy.setLoader('systemjs') // sets the loader to systemjs | ||||
|  | ||||
| myLazyModule.whenLoaded.then(myPlugin => { | ||||
|     /* do something with myPlugin.  | ||||
|        myPlugin receives the typings flow from LazyModule class | ||||
|        This does NOT load the module during runtime | ||||
|        The promise whenLoaded will be resolved whenever load() is called for the first time */ | ||||
| }) | ||||
|  | ||||
| myLazyModule.load().then(myPlugin => { | ||||
|     /* do something with myPlugin.  | ||||
|        myPlugin receives the typings flow from LazyModule class | ||||
|        This DOES LOAD the module */ | ||||
| }) | ||||
| ``` | ||||
|  | ||||
| For further information read the linked docs at the top of this README. | ||||
|  | ||||
| > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) | ||||
| | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html) | ||||
|  | ||||
| [](https://push.rocks) | ||||
		Reference in New Issue
	
	Block a user