UNPKG

@electron/universal

Version:

Utility for creating Universal macOS applications from two x64 and arm64 Electron applications

26 lines 1.21 kB
import fs from 'node:fs'; import path from 'node:path'; import { AppFileType, getAllAppFiles } from './file-utils.js'; import { generateAsarIntegrity } from './asar-utils.js'; export async function computeIntegrityData(contentsPath) { const root = await fs.promises.realpath(contentsPath); const resourcesRelativePath = 'Resources'; const resourcesPath = path.resolve(root, resourcesRelativePath); const resources = await getAllAppFiles(resourcesPath); const resourceAsars = resources .filter((file) => file.type === AppFileType.APP_CODE) .reduce((prev, file) => ({ ...prev, [path.join(resourcesRelativePath, file.relativePath)]: path.join(resourcesPath, file.relativePath), }), {}); // sort to produce constant result const allAsars = Object.entries(resourceAsars).sort(([name1], [name2]) => name1.localeCompare(name2)); const hashes = await Promise.all(allAsars.map(async ([, from]) => generateAsarIntegrity(from))); const asarIntegrity = {}; for (let i = 0; i < allAsars.length; i++) { const [asar] = allAsars[i]; asarIntegrity[asar] = hashes[i]; } return asarIntegrity; } //# sourceMappingURL=integrity.js.map