Fix SWAM hash (#20240)
This commit is contained in:
parent
18a196bcef
commit
c379bae8e9
|
|
@ -23,7 +23,7 @@
|
|||
Inputs="@(ServiceWorkerAssetsManifestItem)"
|
||||
Outputs="$(_ServiceWorkerAssetsManifestIntermediateOutputPath)"
|
||||
BeforeTargets="_BlazorStaticWebAssetsCopyGeneratedFilesToOutputDirectory"
|
||||
DependsOnTargets="_ComputeServiceWorkerAssetsManifestFileHashes; _ComputeDefaultServiceWorkerAssetsManifestVersion">
|
||||
DependsOnTargets="_ComputeServiceWorkerAssetsManifestFileHashes; _ComputeDefaultServiceWorkerAssetsManifestVersion; _GenerateServiceWorkerIntermediateFiles">
|
||||
|
||||
<GenerateServiceWorkerAssetsManifest
|
||||
Version="$(ServiceWorkerAssetsManifestVersion)"
|
||||
|
|
@ -61,11 +61,19 @@
|
|||
Compute a default ServiceWorkerAssetsManifestVersion value by combining all the asset hashes.
|
||||
This is useful because then clients will only have to repopulate caches if the contents have changed.
|
||||
-->
|
||||
<Target Name="_ComputeDefaultServiceWorkerAssetsManifestVersion" Condition="'$(ServiceWorkerAssetsManifest)' != ''">
|
||||
<Target Name="_ComputeDefaultServiceWorkerAssetsManifestVersion"
|
||||
DependsOnTargets="_ComputeServiceWorkerAssetsManifestFileHashes"
|
||||
Condition="'$(ServiceWorkerAssetsManifest)' != ''">
|
||||
<PropertyGroup>
|
||||
<_CombinedHashIntermediatePath>$(_BlazorIntermediateOutputPath)serviceworkerhashes.txt</_CombinedHashIntermediatePath>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Neither of these should ever happen, but if we do we want to know about it. -->
|
||||
<Error Text="Cannot compute service worker assets manifest version, because no service worker manifest items were defined."
|
||||
Condition="'@(_ServiceWorkerAssetsManifestItemWithHash)' == ''" />
|
||||
<Error Text="While computing service worker assets manifest version, did not find any dll entries in service worker assets manifest."
|
||||
Condition="'@(_ServiceWorkerAssetsManifestItemWithHash->WithMetadataValue('Extension', '.dll'))' == ''" />
|
||||
|
||||
<WriteLinesToFile
|
||||
File="$(_CombinedHashIntermediatePath)"
|
||||
Lines="@(_ServiceWorkerAssetsManifestItemWithHash->'%(FileHash)')"
|
||||
|
|
@ -91,7 +99,7 @@
|
|||
|
||||
<Target Name="_ResolveServiceWorkerOutputs"
|
||||
BeforeTargets="_ResolveBlazorOutputs"
|
||||
DependsOnTargets="_ComputeServiceWorkerOutputs; _GenerateServiceWorkerIntermediateFiles">
|
||||
DependsOnTargets="_ComputeServiceWorkerOutputs">
|
||||
<ItemGroup>
|
||||
<_BlazorOutputWithTargetPath Include="@(_ServiceWorkerIntermediateFile)" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -191,10 +191,11 @@ namespace Templates.Test
|
|||
var serviceWorkerContents = ReadFile(publishDir, "service-worker.js");
|
||||
|
||||
// Parse the "version": "..." value from the SWAM, and check it's in the service worker
|
||||
var serviceWorkerAssetsManifestVersionMatch = new Regex(@"^\s*\""version\"":\s*\""([^\""]+)\""", RegexOptions.Multiline)
|
||||
var serviceWorkerAssetsManifestVersionMatch = new Regex(@"^\s*\""version\"":\s*(\""[^\""]+\"")", RegexOptions.Multiline)
|
||||
.Match(serviceWorkerAssetsManifestContents);
|
||||
Assert.True(serviceWorkerAssetsManifestVersionMatch.Success);
|
||||
var serviceWorkerAssetsManifestVersion = serviceWorkerAssetsManifestVersionMatch.Groups[1].Captures[0];
|
||||
var serviceWorkerAssetsManifestVersionJson = serviceWorkerAssetsManifestVersionMatch.Groups[1].Captures[0].Value;
|
||||
var serviceWorkerAssetsManifestVersion = JsonSerializer.Deserialize<string>(serviceWorkerAssetsManifestVersionJson);
|
||||
Assert.True(serviceWorkerContents.Contains($"/* Manifest version: {serviceWorkerAssetsManifestVersion} */", StringComparison.Ordinal));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue