pinafore/templates/main.js

28 lines
963 B
JavaScript
Raw Normal View History

2018-01-15 02:13:42 +01:00
import { init } from 'sapper/runtime.js'
2018-01-19 05:57:15 +01:00
import { toast } from '../routes/_utils/toast'
2018-01-17 09:06:24 +01:00
import {
importURLSearchParams,
importIntersectionObserver,
2018-01-19 05:57:15 +01:00
importRequestIdleCallback,
importIndexedDBGetAllShim,
2018-01-17 09:06:24 +01:00
} from '../routes/_utils/asyncModules'
2018-01-07 00:51:25 +01:00
2018-01-08 08:00:15 +01:00
// polyfills
Promise.all([
typeof URLSearchParams === 'undefined' && importURLSearchParams(),
2018-01-17 09:06:24 +01:00
typeof IntersectionObserver === 'undefined' && importIntersectionObserver(),
2018-01-19 05:57:15 +01:00
typeof requestIdleCallback === 'undefined' && importRequestIdleCallback(),
!IDBObjectStore.prototype.getAll && importIndexedDBGetAllShim()
2018-01-08 08:00:15 +01:00
]).then(() => {
// `routes` is an array of route objects injected by Sapper
init(document.querySelector('#sapper'), __routes__)
2018-01-15 02:13:42 +01:00
if (navigator.serviceWorker && navigator.serviceWorker.controller) {
navigator.serviceWorker.controller.onstatechange = (e) => {
if (e.target.state === 'redundant') {
2018-01-19 05:57:15 +01:00
toast.say('App update available. Reload to update.');
2018-01-15 02:13:42 +01:00
}
}
}
2018-01-08 08:00:15 +01:00
})