pfaffman
(Jay Pfaffman)
Juillet 10, 2023, 5:35
1
Je ne comprends pas pourquoi prettier n’est pas content du code suivant. L’erreur est SyntaxError: Les décorateurs ne peuvent pas être utilisés pour décorer les propriétés de littéraux d'objet. (9:3)
import Component from "@ember/component";
import discourseComputed from "discourse-common/utils/decorators";
function splitGroup(item) {
const x = item.split(":");
return { group: x[0], required: x[1] };
}
export default Component.extend({
@discourseComputed("siteSettings.radiant_group_values")
groupStatus(values) {
let required = values.split("|").map(splitGroup);
return required;
},
});
J’ai la même construction à d’autres endroits qui semblent, à mon avis, exactement identiques.
EDIT : cela semble fonctionner pour des raisons totalement obscures. Je vais supprimer ceci ensuite. Sauf que je ne peux pas.
5 « J'aime »
pfaffman
(Jay Pfaffman)
Avril 13, 2025, 5:15
2
Je rencontre la même erreur sur un autre plugin avec @action, @on et @discourseComputed. Je pensais que cela pouvait être lié à la configuration de prettier, mais je viens de la copier depuis discourse-plugin-skeleton.
1 « J'aime »
Le plugin utilise-t-il toujours la syntaxe .extend({}) héritée ?
Over the last few years, we’ve been moving away from Ember’s legacy .extend({ ... }) syntax and towards native-class syntax like class extends Foo {...}.
While the legacy syntax is technically still supported, modern JS tooling including IDEs, and Prettier 3.0, do not support decorators in the legacy object-literal-based syntaxes. In the latest version of our recommended linting config, you’ll see these errors when using legacy syntax:
ESLint: error Native JS classes should be used instead of…
3 « J'aime »
pfaffman
(Jay Pfaffman)
Avril 13, 2025, 6:36
4
YESSSSS !
Merci ! Je viens de comprendre et j’essaie maintenant de tout transférer… oh, attendez…
Non. C’est pas vrai.
david:
Une grande partie du travail peut être effectuée à l’aide de ember-native-class-codemod . Depuis votre dépôt de thème/plugin, exécutez :
NO_TELEMETRY=true npx ember-native-class-codemod@4.1.1 --no-classic-decorator **/*.js
J’ai essayé d’utiliser mass-pr pour aider, mais ce n’a pas été très… utile. Je suppose que je devrai essayer encore un peu.
Merci beaucoup !!
Je pensais avoir suivi ces sujets, mais je suppose que j’ai manqué ou pas compris celui-ci.
3 « J'aime »
pfaffman
(Jay Pfaffman)
A fermé ce sujet ()
Mai 13, 2025, 6:37
5
Ce sujet a été automatiquement fermé 30 jours après la dernière réponse. De nouvelles réponses ne sont plus autorisées.