An ES module to lazy load javascript. Based on the lazy loader from Vaadin Router.
npm install @internetarchive/lazy-loader-service
import { LazyLoaderService } from '@internetarchive/lazy-loader-service';
const lazyLoaderService = new LazyLoaderService();
await lazyLoaderService.loadScript({ src: 'https://my-server.com/some-service.js' });
// assuming `some-service.js` creates `window.someService`
const response = window.someService.getResponse('foo');
...
document.head
(the default).<div id="script-container"></div>
import { LazyLoaderService } from '@internetarchive/lazy-loader-service';
const container = document.querySelector('#script-container');
const lazyLoaderService = new LazyLoaderService(container);
module
/ nomodule
import { LazyLoaderService } from '@internetarchive/lazy-loader-service';
const lazyLoaderService = new LazyLoaderService();
await lazyLoaderService.loadBundle({
module: 'https://my-server.com/some-service-module.js',
nomodule: 'https://my-server.com/some-service-nomodule.js'
});
const response = window.someService.getResponse('foo');
...
import { LazyLoaderService } from '@internetarchive/lazy-loader-service';
const lazyLoaderService = new LazyLoaderService();
await lazyLoaderService.loadScript({
src: 'https://my-server.com/some-service.js',
attributes: [{ key: 'foo', value: 'bar' }]
});
=>
<script src="https://my-server.com/some-service.js" async foo="bar"></script>
npm install
npm start
npm test
npm test:bs
npm lint
Generated using TypeDoc