From 6982c168c676192d729f2ed0c19faf5c6fbd96d0 Mon Sep 17 00:00:00 2001 From: Andres Pineda Date: Sat, 14 Dec 2024 20:48:24 -0500 Subject: [PATCH] chore: unify service workers file creation --- src/Uno.Wasm.Bootstrap/ShellTask.cs | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/Uno.Wasm.Bootstrap/ShellTask.cs b/src/Uno.Wasm.Bootstrap/ShellTask.cs index 2751b124..eb01b39c 100644 --- a/src/Uno.Wasm.Bootstrap/ShellTask.cs +++ b/src/Uno.Wasm.Bootstrap/ShellTask.cs @@ -150,8 +150,7 @@ public override bool Execute() ExtractAdditionalCSS(); RemoveDuplicateAssets(); GeneratePackageFolder(); - BuildServiceWorker(); - BuildServiceWorkerClassic(); + BuildServiceWorkers(); GenerateEmbeddedJs(); GenerateIndexHtml(); GenerateConfig(); @@ -295,27 +294,17 @@ private void CopyContent() } } - private void BuildServiceWorker() + private void BuildServiceWorkers() { - using var resourceStream = GetType().Assembly.GetManifestResourceStream("Uno.Wasm.Bootstrap.v0.Embedded.service-worker.js"); - using var reader = new StreamReader(resourceStream); - - var worker = TouchServiceWorker(reader.ReadToEnd()); - var memoryStream = new MemoryStream(); - - using var writer = new StreamWriter(memoryStream, Encoding.UTF8); - writer.Write(worker); - writer.Flush(); - - memoryStream.Position = 0; + BuildServiceWorker(resource: "Uno.Wasm.Bootstrap.v0.Embedded.service-worker.js", outputFile: "service-worker.js"); - CopyStreamToOutput("service-worker.js", memoryStream, DeployMode.Root); + // Case for browsers that do not support modules for service workers: Firefox for example + BuildServiceWorker(resource: "Uno.Wasm.Bootstrap.v0.Embedded.service-worker-classic.js", outputFile: "service-worker-classic.js"); } - // Case for browsers that do not support modules for service workers: Firefox for example - private void BuildServiceWorkerClassic() + private void BuildServiceWorker(string resource, string outputFile) { - using var resourceStream = GetType().Assembly.GetManifestResourceStream("Uno.Wasm.Bootstrap.v0.Embedded.service-worker-classic.js"); + using var resourceStream = GetType().Assembly.GetManifestResourceStream(resource); using var reader = new StreamReader(resourceStream); var worker = TouchServiceWorker(reader.ReadToEnd()); @@ -327,7 +316,7 @@ private void BuildServiceWorkerClassic() memoryStream.Position = 0; - CopyStreamToOutput("service-worker-classic.js", memoryStream, DeployMode.Root); + CopyStreamToOutput(outputFile, memoryStream, DeployMode.Root); } private void ExtractAdditionalJS()