UNPKG

636 BJavaScriptView Raw
1const sha1 = require('hash.js/lib/hash/sha/1')
2const Buffer = require('./buffer').Buffer
3
4module.exports = (fileMap) => {
5 // must add header which contains file names and message
6 const hashes = Object.keys(fileMap)
7 const filenames = Object.keys(fileMap)
8 .map(key => fileMap[key])
9 .sort()
10
11 const header = `${filenames.join(',')}`
12 const dataBufferList = hashes
13 .sort() // <- NB since we need to versionHash to be the same every time
14 .map(h => Buffer.from(h))
15
16 const headerBuffer = Buffer.from(header)
17 const buf = Buffer.concat(dataBufferList.concat(headerBuffer))
18 return sha1().update(buf).digest('hex')
19}