summaryrefslogtreecommitdiff
path: root/config/helpers/vendor_dll_hash.js
blob: cfd7be66ad33a5e8a9a76099f04eb1a10e02c227 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');

const CACHE_PATHS = [
  './config/webpack.config.js',
  './config/webpack.vendor.config.js',
  './package.json',
  './yarn.lock',
];

const resolvePath = file => path.resolve(__dirname, '../..', file);
const readFile = file => fs.readFileSync(file);
const fileHash = buffer =>
  crypto
    .createHash('md5')
    .update(buffer)
    .digest('hex');

module.exports = () => {
  const fileBuffers = CACHE_PATHS.map(resolvePath).map(readFile);
  return fileHash(Buffer.concat(fileBuffers)).substr(0, 12);
};