@farmfe/runtime
Version:
Runtime of Farm
34 lines • 1.03 kB
JavaScript
/* eslint-disable @typescript-eslint/no-explicit-any */
export class FarmRuntimePluginContainer {
constructor(plugins) {
this.plugins = [];
this.plugins = plugins;
}
// TODO support async later
// async hookSerial(
hookSerial(hookName, ...args) {
for (const plugin of this.plugins) {
const hook = plugin[hookName];
if (hook) {
// await hook.apply(plugin, args);
hook.apply(plugin, args);
}
}
}
// TODO support async later
// async hookBail<T = any>(
hookBail(hookName, ...args) {
for (const plugin of this.plugins) {
const hook = plugin[hookName];
if (hook) {
// const result = await hook.apply(plugin, args);
const result = hook.apply(plugin, args);
if (result) {
return result;
}
}
}
return undefined;
}
}
//# sourceMappingURL=plugin.js.map