UNPKG

@capawesome/cli

Version:

The Capawesome Cloud Command Line Interface (CLI) to manage Live Updates and more.

28 lines (27 loc) 1.08 kB
import { MANIFEST_JSON_FILE_NAME } from '../config/index.js'; import { createBufferFromPath } from './buffer.js'; import { getFilesInDirectoryAndSubdirectories, writeFile } from './file.js'; import { createHash } from './hash.js'; const ignoreFiles = ['.DS_Store', MANIFEST_JSON_FILE_NAME]; export const generateManifestJson = async (path) => { const manifestItems = []; // Get all files const files = await getFilesInDirectoryAndSubdirectories(path); // Iterate over each file for (const [index, file] of files.entries()) { const fileBuffer = await createBufferFromPath(file.path); const checksum = await createHash(fileBuffer); const sizeInBytes = fileBuffer.byteLength; // Skip ignored files if (ignoreFiles.includes(file.name)) { continue; } manifestItems.push({ checksum, href: file.href, sizeInBytes, }); } // Write the manifest file writeFile(`${path}/${MANIFEST_JSON_FILE_NAME}`, JSON.stringify(manifestItems, null, 2)); };