All files checksum.js

100% Statements 11/11
50% Branches 1/2
100% Functions 3/3
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 302x 2x   2x 2x   2x 6x       4x   2x 4x               2x              
const { basename, dirname, join, format, extname } = require('path')
const { createHash } = require('crypto')
 
const SHA1 = 'sha1'
const DEFAULT_ALGORITHM = SHA1
 
const checksum = (s, algorithm = DEFAULT_ALGORITHM, format = 'hex') =>
  createHash(algorithm)
    .update(s)
    .digest(format)
 
const hashFromFileContent = s => s.trim().split(/\s+/)[0]
 
const checksumFilePath = path =>
  join(
    dirname(path),
    format({
      name: `.${basename(path)}`,
      ext: '.sha',
    }),
  )
 
module.exports = {
  DEFAULT_ALGORITHM,
  SHA1,
  checksum,
  checksumFilePath,
  hashFromFileContent,
}