@serwist/build
Version:
A module that integrates into your build process, helping you generate a manifest of local files that should be precached.
30 lines (23 loc) • 831 B
text/typescript
/*
Copyright 2018 Google LLC
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
*/
import prettyBytes from "pretty-bytes";
import type { ManifestTransform } from "../types.js";
export function maximumSizeTransform(maximumFileSizeToCacheInBytes: number): ManifestTransform {
return (originalManifest) => {
const warnings: string[] = [];
const manifest = originalManifest.filter((entry) => {
if (entry.size <= maximumFileSizeToCacheInBytes) {
return true;
}
warnings.push(
`${entry.url} is ${prettyBytes(entry.size)}, and won't be precached. Configure maximumFileSizeToCacheInBytes to change this limit.`,
);
return false;
});
return { manifest, warnings };
};
}