pfaffman
(Jay Pfaffman)
10 Julio, 2023 17:35
1
No entiendo por qué prettier no está contento con el siguiente código. El error es SyntaxError: Decorators cannot be used to decorate object literal properties. (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;
},
});
Tengo la misma construcción en otros lugares que parecen, para mí, ser exactamente iguales.
EDITAR: esto parece haber empezado a funcionar por razones completamente inexplicables. Lo eliminaré a continuación. Excepto que no puedo.
5 Me gusta
pfaffman
(Jay Pfaffman)
13 Abril, 2025 17:15
2
Estoy recibiendo el mismo error en un plugin diferente en @action, @on y @discourseComputed. Pensé que podría ser algo con la configuración de prettier, pero acabo de copiarla de discourse-plugin-skeleton.
1 me gusta
¿El plugin todavía usa la sintaxis heredada .extend({})?
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 Me gusta
pfaffman
(Jay Pfaffman)
13 Abril, 2025 18:36
4
¡SÍIIII!
¡Gracias! Acabo de resolverlo y ahora estoy intentando cambiar todas las cosas… oh, espera…
No puede ser.
david:
Gran parte del trabajo se puede hacer usando el ember-native-class-codemod . Dentro de tu repositorio de tema/plugin, ejecuta:
NO_TELEMETRY=true npx ember-native-class-codemod@4.1.1 --no-classic-decorator **/*.js
He estado intentando que mass-pr ayude, pero no ha sido muy… útil. Supongo que tendré que intentarlo un poco más.
¡¡Muchas gracias!!
Pensé que había estado prestando atención a esos temas, pero supongo que me perdí o no entendí ese.
3 Me gusta
pfaffman
(Jay Pfaffman)
Cerrado
13 Mayo, 2025 18:37
5
Este tema se cerró automáticamente 30 días después de la última respuesta. Ya no se permiten nuevas respuestas.