From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- node_modules/webpack/lib/HashedModuleIdsPlugin.js | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 node_modules/webpack/lib/HashedModuleIdsPlugin.js (limited to 'node_modules/webpack/lib/HashedModuleIdsPlugin.js') diff --git a/node_modules/webpack/lib/HashedModuleIdsPlugin.js b/node_modules/webpack/lib/HashedModuleIdsPlugin.js new file mode 100644 index 000000000..40a491b07 --- /dev/null +++ b/node_modules/webpack/lib/HashedModuleIdsPlugin.js @@ -0,0 +1,42 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; +const createHash = require("crypto").createHash; + +class HashedModuleIdsPlugin { + constructor(options) { + this.options = Object.assign({ + hashFunction: "md5", + hashDigest: "base64", + hashDigestLength: 4 + }, options); + } + + apply(compiler) { + const options = this.options; + compiler.plugin("compilation", (compilation) => { + const usedIds = new Set(); + compilation.plugin("before-module-ids", (modules) => { + modules.forEach((module) => { + if(module.id === null && module.libIdent) { + const id = module.libIdent({ + context: this.options.context || compiler.options.context + }); + const hash = createHash(options.hashFunction); + hash.update(id); + const hashId = hash.digest(options.hashDigest); + let len = options.hashDigestLength; + while(usedIds.has(hashId.substr(0, len))) + len++; + module.id = hashId.substr(0, len); + usedIds.add(module.id); + } + }); + }); + }); + } +} + +module.exports = HashedModuleIdsPlugin; -- cgit v1.2.3