beyond
Version:
The Full Stack Universal Typescript Framework
38 lines (30 loc) • 1.05 kB
JavaScript
const {equal, crc32} = global.utils;
const DynamicProcessor = global.utils.DynamicProcessor();
module.exports = class extends DynamicProcessor {
get dp() {
return 'bundler.processors.hashes.dependencies';
}
#value;
get value() {
return this.#value;
}
constructor(processors) {
super();
super.setup(new Map([['processors', {child: processors}]]));
}
_prepared(require) {
const processors = this.children.get('processors').child;
processors.forEach(({dependencies}) => dependencies && require(dependencies));
}
_process() {
const processors = this.children.get('processors').child;
const compute = {};
processors.forEach(({dependencies}, name) => {
dependencies && (compute[name] = dependencies.hashes.specifiers);
});
const value = crc32(equal.generate(compute));
const changed = this.#value !== value;
this.#value = value;
return changed;
}
}