UNPKG

@bscotch/sprite-source

Version:

Art pipeline scripting module for GameMaker sprites.

28 lines 1.02 kB
import { computePngChecksum } from '@bscotch/pixel-checksum'; import crypto from 'node:crypto'; import fsp from 'node:fs/promises'; /** * A quick checksum for arbitrary text-based file types * (like JSON or atlas), where newlines are first normalized. */ async function textFileChecksum(filePath) { const content = await fsp.readFile(filePath, 'utf8'); const normalized = content.replace(/\r/g, '').trim(); return computeStringChecksum(normalized); } export async function computeFileChecksum(filePath) { if (!filePath.match(/\.png$/i)) { return await textFileChecksum(filePath); } return computePngChecksum(filePath); } export async function computeFilesChecksum(paths) { const checksums = await Promise.all(paths.map(computeFileChecksum)); return computeStringChecksum(checksums.join('-')); } export function computeStringChecksum(str) { const hash = crypto.createHash('md5'); hash.update(str); return hash.digest('hex'); } //# sourceMappingURL=checksum.js.map