turbowatch
Version:
Extremely fast file change detector and task orchestrator for Node.js.
23 lines (16 loc) • 510 B
text/typescript
import { createHash } from 'node:crypto';
import { createReadStream } from 'node:fs';
export const hashFile = (filePath: string): Promise<string | null> => {
return new Promise((resolve) => {
const fileDescriptor = createReadStream(filePath);
const hash = createHash('sha1').setEncoding('hex');
fileDescriptor.on('error', () => {
resolve(null);
});
fileDescriptor.on('end', () => {
hash.end();
resolve(hash.read());
});
fileDescriptor.pipe(hash);
});
};