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