refactor: add handleRegisterServiceWorker fn

This commit is contained in:
Joe Previte 2021-02-11 16:51:35 -07:00
parent 44b9874fbe
commit 21f577d471
No known key found for this signature in database
GPG Key ID: 2C91590C6B742C24
1 changed files with 19 additions and 4 deletions

View File

@ -16,8 +16,23 @@ export async function registerServiceWorker(navigator: Navigator, path: string,
}
}
if (typeof navigator !== "undefined" && "serviceWorker" in navigator) {
interface HandleServiceWorkerRegistration {
getOptions: () => Options
normalize: (url: string, keepTrailing?: boolean) => string
registerServiceWorker: (navigator: Navigator, path: string, options: Options) => Promise<void>
}
export function handleServiceWorkerRegistration({
getOptions,
normalize,
registerServiceWorker,
}: HandleServiceWorkerRegistration): void {
if (typeof navigator !== "undefined" && "serviceWorker" in navigator) {
const options = getOptions()
const path = normalize(`${options.csStaticBase}/dist/serviceWorker.js`)
registerServiceWorker(navigator, path, options)
}
}
// Written this way so that it's easier to test
handleServiceWorkerRegistration({ getOptions, normalize, registerServiceWorker })