pluginId beim Ändern der Klasse hinzufügen, wenn ein Mixin verwendet wird

Ich versuche, die Warnung zu beheben:

[PLUGIN discourse-layouts] Um Fehler in Tests zu vermeiden, fügen Sie einen `pluginId`-Schlüssel zu Ihrem `modifyClass`-Aufruf hinzu. Dies stellt sicher, dass die Änderung nur einmal angewendet wird.

Im Fall des Layouts-Plugins wird jedoch ein Mixin namens Sidebars an die Methode api.modifyClass() übergeben, wie folgt:

api.modifyClass(controllerClass, Sidebars) (Siehe Code)

Ich habe viele Dinge versucht, einschließlich des Hinzufügens der pluginId zu einer Eigenschaft des Mixins:

export default Mixin.create({
  pluginId: 'discourse-layouts',
  router: service(),
  path: alias("router._router.currentPath"),
...
});

Die Warnung erscheint jedoch weiterhin.

Die einzige Möglichkeit, die Warnung zu unterdrücken, bestand darin, diesen Code anstelle von modifyClass() zu verwenden:

 const klass = api._resolveClass(controllerClass, {});
 klass.class.reopen(Sidebars);

Ich glaube jedoch nicht, dass dies der beste Ansatz ist, da ich im Wesentlichen die Prüfung überspringe, die verhindert, dass modifyClass immer wieder angewendet wird.

Hat jemand Ratschläge oder Gedanken dazu, wie ich die pluginId zu api.modifyClass() hinzufügen kann, wenn ein Mixin verwendet wird, und diese Warnung erfolgreich unterdrücken kann?

5 „Gefällt mir“