1 | const sha1 = require('hash.js/lib/hash/sha/1')
|
2 | const Buffer = require('./buffer').Buffer
|
3 |
|
4 | module.exports = (fileMap) => {
|
5 |
|
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()
|
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 | }
|