Skip to content

Commit

Permalink
fix: dont register service worker if none created (#3170)
Browse files Browse the repository at this point in the history
* fix: dont register service worker if none created

* fix: proper string

* fix: check
  • Loading branch information
bluwy authored Jan 2, 2022
1 parent 8fba147 commit bedd96c
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 10 deletions.
5 changes: 5 additions & 0 deletions .changeset/empty-worms-appear.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@sveltejs/kit': patch
---

Don't register service worker if there is none
27 changes: 18 additions & 9 deletions packages/kit/src/core/build/build_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@ import { s } from '../../utils/misc.js';
* @param {{
* runtime: string,
* hooks: string,
* config: import('types/config').ValidatedConfig
* config: import('types/config').ValidatedConfig,
* has_service_worker: boolean
* }} opts
* @returns
*/
const template = ({ config, hooks, runtime }) => `
const template = ({ config, hooks, runtime, has_service_worker }) => `
import { respond } from '${runtime}';
import root from './generated/root.svelte';
import { set_paths, assets, base } from './runtime/paths.js';
Expand Down Expand Up @@ -73,11 +74,7 @@ export class App {
prerender: ${config.kit.prerender.enabled},
read,
root,
service_worker: ${
config.kit.files.serviceWorker && config.kit.serviceWorker.register
? "'/service-worker.js'"
: 'null'
},
service_worker: ${has_service_worker ? "'/service-worker.js'" : 'null'},
router: ${s(config.kit.router)},
ssr: ${s(config.kit.ssr)},
target: ${s(config.kit.target)},
Expand Down Expand Up @@ -120,12 +117,23 @@ export class App {
* manifest_data: import('types/internal').ManifestData
* build_dir: string;
* output_dir: string;
* service_worker_entry_file: string | null;
* service_worker_register: boolean;
* }} options
* @param {string} runtime
* @param {{ vite_manifest: import('vite').Manifest, assets: import('rollup').OutputAsset[] }} client
*/
export async function build_server(
{ cwd, assets_base, config, manifest_data, build_dir, output_dir },
{
cwd,
assets_base,
config,
manifest_data,
build_dir,
output_dir,
service_worker_entry_file,
service_worker_register
},
runtime,
client
) {
Expand Down Expand Up @@ -173,7 +181,8 @@ export async function build_server(
template({
config,
hooks: app_relative(hooks_file),
runtime
runtime,
has_service_worker: service_worker_register && !!service_worker_entry_file
})
);

Expand Down
9 changes: 9 additions & 0 deletions packages/kit/test/apps/options/source/pages/_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,13 @@ export default function (test, is_dev) {
`Hello from the ${js ? 'client' : 'server'} in ${is_dev ? 'dev' : 'prod'} mode!`
);
});

test(
'does not register service worker if none created',
'/path-base/',
async ({ page }) => {
assert.not.match(await page.content(), /navigator\.serviceWorker/);
},
{ dev: false, js: false }
);
}
4 changes: 3 additions & 1 deletion packages/kit/test/apps/options/svelte.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ const config = {
assets: 'public',
lib: 'source/components',
routes: 'source/pages',
template: 'source/template.html'
template: 'source/template.html',
// while we specify a path for the service worker, we expect it to not exist in the test
serviceWorker: 'source/service-worker'
},
appDir: '_wheee',
floc: true,
Expand Down

0 comments on commit bedd96c

Please sign in to comment.