_initPipes(plugin) {
    const methodsList = getMethods(plugin.instance);

    for (const [event, fn] of Object.entries(plugin.instance.pipes)) {
      const list = Array.isArray(fn) ? fn : [fn];

      for (const target of list) {
        if (
          typeof target !== "function" &&
          typeof plugin.instance[target] !== "function"
        ) {
          const message =
            typeof target === "string" ? didYouMean(target, methodsList) : "";

          throw assertionError.get("invalid_pipe", event, target, message);
        }

        let handler = target;

        if (typeof target === "string") {
          // @deprecated - warn about using a string representing an instance method
          plugin.printDeprecation(
            "Defining pipe handler using a string is deprecated. Pass a function instead.",
          );

          handler = plugin.instance[target].bind(plugin.instance);
        }

        // if the function handler is a plugin instance method,
        // bound the context to the plugin instance
        if (target.name && typeof plugin.instance[target.name] === "function") {
          handler = target.bind(plugin.instance);
        }

        this.registerPipe(plugin, event, handler);
      }
    }
  }
@param {object} plugin
@param {number} pipeWarnTime