line_push/node_modules/hard-source-webpack-plugin/lib/SystemParity.js
2022-07-17 13:16:16 +08:00

39 lines
1.0 KiB
JavaScript

const pluginCompat = require('./util/plugin-compat');
const logMessages = require('./util/log-messages');
const { ParityRoot } = require('./util/parity');
class ParitySystem {
apply(compiler) {
pluginCompat.register(compiler, '_hardSourceParityCache', 'sync', [
'parityRoot',
]);
const compilerHooks = pluginCompat.hooks(compiler);
function runParityOrReset(_compiler) {
const parityRoot = new ParityRoot();
compilerHooks._hardSourceParityCache.call(parityRoot);
if (!parityRoot.verify()) {
logMessages.cacheNoParity(compiler, { parityRoot });
// Reset the cache, some part of it is incomplete and using it will lead
// to errors.
compilerHooks._hardSourceResetCache.call();
}
return Promise.resolve();
}
compilerHooks.watchRun.tapPromise(
'HardSource - index - parityOrReset',
runParityOrReset,
);
compilerHooks.run.tapPromise(
'HardSource - index - parityOrReset',
runParityOrReset,
);
}
}
module.exports = ParitySystem;