async launchHook(hookName, hookArguments) {
    let disabledHooks = this.disabledHooks[hookName] || [];
    if (disabledHooks === true) return;
    if (typeof disabledHooks === 'string') disabledHooks = [disabledHooks];

    const hooks = this.hooks[hookName];
    if (!Array.isArray(hooks)) return;
    const promises = hooks.map(async (hook) => {
      if (typeof hook !== 'function') return;
      if (disabledHooks.includes(hook.name)) return;
      return await hook(this, hookArguments);
    }).filter(Boolean);

    return Promise.all(promises);
  }
Launches all the hooks registered at a given hook point/name.

@param {string} hookName
@param {*} hookArguments
@private