tapable/lib/AsyncParallelHook.js
Florent Cailhol 9345fbe854 Improve hook creation speed
Prior this change, it took 6.02s to create 1M hooks on my machine.
Now they are created in 1.72s.
2017-12-28 19:17:42 +01:00

33 lines
766 B
JavaScript

/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
const Hook = require("./Hook");
const HookCodeFactory = require("./HookCodeFactory");
class AsyncParallelHookCodeFactory extends HookCodeFactory {
content({ onError, onDone }) {
return this.callTapsParallel({
onError: (i, err, done, doneBreak) => onError(err) + doneBreak(true),
onDone
});
}
}
const factory = new AsyncParallelHookCodeFactory();
class AsyncParallelHook extends Hook {
compile(options) {
factory.setup(this, options);
return factory.create(options);
}
}
Object.defineProperties(AsyncParallelHook.prototype, {
_call: {value: undefined, configurable: true, writable: true}
});
module.exports = AsyncParallelHook;