Service Worker
bit Bswup has a lot of options available in the service worker file to configure its behavior.
Bswup Service Worker
A sample of all configuration available inside of the service worker file is shown here:
assetsInclude: The list of file names from the assets list to include when the Bswup tries to store them in the cache storage (regex supported).
assetsExclude: The list of file names from the assets list to exclude when the Bswup tries to store them in the cache storage (regex supported).
externalAssets: The list of external assets to cache that are not included in the auto-generated assets file. For example, if you're not using index.html (like _host.cshtml), then you should add { "url": "/" }.
defaultUrl: The default page URL. Use / when using _Host.cshtml.
assetsUrl: The file path of the service-worker assets file generated at compile time (the default file name is service-worker-assets.js).
prohibitedUrls: The list of file names that should not be accessed (regex supported).
caseInsensitiveUrl: Enables the case insensitivity in the URL checking of the cache process.
serverHandledUrls: The list of URLs that do not enter the service-worker offline process and will be handled only by server (regex supported). such as /api, /swagger, ...
serverRenderedUrls: The list of URLs that should be rendered by the server and not client while navigating (regex supported). such as /about.html, /privacy, ...
noPrerenderQuery: The query string attached to the default document request to disable the prerendering from the server so an unwanted prerendered result not be cached.
ignoreDefaultInclude: Ignores the default asset includes array which is provided by the Bswup itself which is like this:
ignoreDefaultExclude: Ignores the default asset excludes array which is provided by the Bswup
itself which is like this:
Note: Keep in mind that caching service-worker related files will corrupt the update cycle of the service-worker.
Only the browser should handle these files.
isPassive: Enables the Bswup's passive mode. In this mode, the assets won't be cached in advance but rather upon initial request.
disablePassiveFirstBoot: Disables downloading the Blazor's boot files in first time of Passive mode.
enableIntegrityCheck: Enables the default integrity check available in browsers by setting the integrity attribute of the request object created in the service-worker to fetch the assets.
enableDiagnostics: Enables diagnostics by pushing service-worker logs to the browser console.
enableFetchDiagnostics: Enables fetch event diagnostics by pushing service-worker fetch event logs to the browser console.
self.assetsInclude = [/\data.db$/]; self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.defaultUrl = '/'; self.prohibitedUrls = [/\/admin\//]; self.serverHandledUrls = [/\/api\//]; self.serverRenderedUrls = [/\/privacy$/]; self.externalAssets = [ { "url": "/" }, { "url": "https://www.googletagmanager.com/gtag/js?id=G-G123456789" } ]; self.assetsUrl = '/service-worker-assets.js'; self.noPrerenderQuery = 'no-prerender=true'; self.caseInsensitiveUrl = true; self.ignoreDefaultInclude = true; self.ignoreDefaultExclude = true; self.isPassive = true; self.disablePassiveFirstBoot = true; self.enableIntegrityCheck = true; self.enableDiagnostics = true; self.enableFetchDiagnostics = true; self.importScripts('_content/Bit.Bswup/bit-bswup.sw.js');
Note: The most important line here is the last line which is the only mandatory config in this file
that imports the Bswup service-worker file:
These available configurations are explained below:
self.importScripts('_content/Bit.Bswup/bit-bswup.sw.js');
assetsInclude: The list of file names from the assets list to include when the Bswup tries to store them in the cache storage (regex supported).
assetsExclude: The list of file names from the assets list to exclude when the Bswup tries to store them in the cache storage (regex supported).
externalAssets: The list of external assets to cache that are not included in the auto-generated assets file. For example, if you're not using index.html (like _host.cshtml), then you should add { "url": "/" }.
defaultUrl: The default page URL. Use / when using _Host.cshtml.
assetsUrl: The file path of the service-worker assets file generated at compile time (the default file name is service-worker-assets.js).
prohibitedUrls: The list of file names that should not be accessed (regex supported).
caseInsensitiveUrl: Enables the case insensitivity in the URL checking of the cache process.
serverHandledUrls: The list of URLs that do not enter the service-worker offline process and will be handled only by server (regex supported). such as /api, /swagger, ...
serverRenderedUrls: The list of URLs that should be rendered by the server and not client while navigating (regex supported). such as /about.html, /privacy, ...
noPrerenderQuery: The query string attached to the default document request to disable the prerendering from the server so an unwanted prerendered result not be cached.
ignoreDefaultInclude: Ignores the default asset includes array which is provided by the Bswup itself which is like this:
[/\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/, /\.svg$/, /\.woff2$/, /\.ttf$/, /\.webp$/]
[/^_content\/Bit\.Bswup\/bit-bswup\.sw\.js$/, /^service-worker\.js$/]"
isPassive: Enables the Bswup's passive mode. In this mode, the assets won't be cached in advance but rather upon initial request.
disablePassiveFirstBoot: Disables downloading the Blazor's boot files in first time of Passive mode.
enableIntegrityCheck: Enables the default integrity check available in browsers by setting the integrity attribute of the request object created in the service-worker to fetch the assets.
enableDiagnostics: Enables diagnostics by pushing service-worker logs to the browser console.
enableFetchDiagnostics: Enables fetch event diagnostics by pushing service-worker fetch event logs to the browser console.