UNPKG

@serwist/build

Version:

A module that integrates into your build process, helping you generate a manifest of local files that should be precached.

32 lines (24 loc) 786 B
/* 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 crypto from "node:crypto"; import type { FileDetails } from "../types.js"; export const getCompositeDetails = (compositeURL: string, dependencyDetails: FileDetails[]): FileDetails => { let totalSize = 0; let compositeHash = ""; for (const fileDetails of dependencyDetails) { totalSize += fileDetails.size; compositeHash += fileDetails.hash === null ? "" : fileDetails.hash; } const md5 = crypto.createHash("md5"); md5.update(compositeHash); const hashOfHashes = md5.digest("hex"); return { file: compositeURL, hash: hashOfHashes, size: totalSize, }; };