Ajout de pluginId pour modifierClass lorsqu'un mixin est utilisé

J’essaie d’éliminer l’avertissement :

[PLUGIN discourse-layouts] Pour éviter les erreurs dans les tests, ajoutez une clé `pluginId` à votre appel `modifyClass`. Cela garantira que la modification n'est appliquée qu'une seule fois.

Cependant, dans le cas du plugin Layouts, il y a un Mixin appelé Sidebars qui est passé à la méthode api.modifyClass() comme ceci :

api.modifyClass(controllerClass, Sidebars) (Voir le code)

J’ai essayé plusieurs choses, y compris l’ajout du pluginId à une propriété du Mixin :

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

Cependant, l’avertissement continue d’apparaître.

La seule façon dont j’ai pu supprimer l’avertissement a été d’utiliser ce code au lieu de modifyClass()

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

Cependant, je ne pense pas que ce soit la meilleure approche car je saute essentiellement la vérification qui aide à empêcher modifyClass d’être appliqué encore et encore.

Quelqu’un a-t-il des conseils ou des réflexions sur la façon dont je peux ajouter le pluginId à api.modifyClass() lorsqu’un mixin est utilisé et supprimer cet avertissement avec succès ?

5 « J'aime »