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;
|