@locational/micro-loader
v0.0.3
Published
Tiny application caching library
Downloads
3
Readme
MicroLoader
About
MicroLoader is a small app that comes with its own ServiceWorker and configuration file (microloader.json). It manages your application code and assets, taking care of caching for offline use and swapping between versions.
Life cycle
On first run it creates a new ServiceWorker instance, or registers with existing one.
Then saves its current configuration into ServiceWorker and fetches all assets specified in microloader.json
On any subsequent run it will first consult with ServiceWorker instance on which configuration of assets to fetch and will always use cache-first strategy for fetching.
The only exception to this are 'index.html' and 'loader*.js' assets, which are always network-first.
Usage
Configuration file 'microloader.js' specifies current application version, loader version, and all managed assets.
Managed assets are split into three categories:
- initial - must be fetched and executed when loader is starting (URI will change depending on application version)
- runtime - must be cached when requested at runtime (URI will change depending on application version)
- universal - must be cached when requested at runtime (URI does not change between application versions)
Initial assets should specify crucial parts of your application (e.g main js and css bundles). If you have made changes to your js or css and want to release a new version - build new bundles and up the app_version in microloader.json.
MicroLoader will not switch to new version of assets if its ServiceWorker already has some previous version cached and that version is used as current configuration.
To switch to new version use MicroLoader.setCurrentConfig('app version')
Callbacks
MicroLoader.callbacks.onReadinessReport(report)
Will be executed when new readiness report is returned from ServiceWorker. You can initiate new readiness report with MicroLoader.askOfflineReadinessReportFromServiceWorker()
MicroLoader.callbacks.onCurrentConfigChange(config)
Will be executed when new configuration is net as current. This can happen after asking ServiceWorker for cached configuration with MicroLoader.askConfigsFromServiceWorker() Or manually with MicroLoader.setCurrentConfig(app_version)