Aggiunta di pluginId per modificareClass quando viene utilizzato un mixin

Sto cercando di eliminare l’avviso:

[PLUGIN discourse-layouts] Per evitare errori nei test, aggiungi una chiave `pluginId` alla tua chiamata `modifyClass`. Ciò garantirà che la modifica venga applicata una sola volta.

Tuttavia, nel caso del plugin Layouts, c’è un Mixin chiamato Sidebars che viene passato al metodo api.modifyClass() in questo modo:

api.modifyClass(controllerClass, Sidebars) (Vedi codice)

Ho provato molte cose, incluso aggiungere il pluginId a una proprietà sul Mixin:

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

Tuttavia, l’avviso continua ad apparire.

L’unico modo in cui sono riuscito a sopprimere l’avviso è stato utilizzando questo codice invece di modifyClass()

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

Tuttavia, non credo sia l’approccio migliore perché sto essenzialmente saltando il controllo che aiuta a prevenire che modifyClass venga applicato più e più volte.

Qualcuno ha consigli o pensieri su come posso aggiungere il pluginId a api.modifyClass() quando viene utilizzato un mixin e sopprimere con successo quell’avviso?

5 Mi Piace