fix(app-config-writer): extra leading comma in eslint.config.mjs when .eslintrc.json only extends fiori-tools plugin
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- eslint, typescript
- Ambito
- tooling
Direzione di ricerca
Inizia da src/eslint-config/convert.ts, concentrandoti su injectFioriToolsIntoMigratedConfig e sull’output di un array vuoto prodotto dal comando di migrazione. Riproduci il comando con il .eslintrc.json fornito, quindi esegui il test di regressione disponibile sul branch fix/convert-cmd; il lavoro è completato quando l’eslint.config.mjs generato è valido sia per array vuoti sia per array non vuoti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
When running npx --yes @sap-ux/create@latest convert eslint-config --config recommended-for-s4hana on a project whose .eslintrc.json only extends the fiori-tools plugin (no other rules or plugins), the generated eslint.config.mjs contains an invalid leading comma:
import fioriTools from '@sap-ux/eslint-plugin-fiori-tools';
import { defineConfig } from "eslint/config";
export default defineConfig([,
...fioriTools.configs['recommended-for-s4hana'],
]);
Root Cause
Package: @sap-ux/app-config-writer — src/eslint-config/convert.ts
The injectFioriToolsIntoMigratedConfig function always prepends a , before the spread entry:
content =
content.slice(0, lastBracketIndex) +
`,\n ...fioriTools.configs['${config}'],\n` +
content.slice(lastBracketIndex);
When .eslintrc.json only extends plugin:@sap-ux/eslint-plugin-fiori-tools/*, removeFioriToolsFromExistingConfig strips that entry, leaving { "root": true }. The root property has no flat-config equivalent, so @eslint/migrate-config produces an empty array:
import { defineConfig } from "eslint/config";
export default defineConfig([]);
Injecting ,\n ... before ]); into an empty array produces the invalid [, syntax.
Reproducing Input
.eslintrc.json:
{
"extends": "plugin:@sap-ux/eslint-plugin-fiori-tools/defaultJS",
"root": true
}
Fix
Detect an empty array before injecting and omit the leading comma:
const beforeBracket = content.slice(0, lastBracketIndex);
const isEmptyArray = /\[\s*$/.test(beforeBracket);
const separator = isEmptyArray ? '' : ',';
content =
beforeBracket +
`${separator}\n ...fioriTools.configs['${config}'],\n` +
content.slice(lastBracketIndex);
A fix with a regression test is available on branch fix/convert-cmd.
- Lingua principale
- TypeScript
- Stelle
- 161
- Fork
- 72
- Merge medio
- 4g 15h
- PR unite (30g)
- 64
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SAP/open-ux-tools
-
[fiori-mcp-server] CLI help/version flags print no outputForse già presa @wowsofine l’ha presa 160 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
SAP/open-ux-tools#4785 ·
I maintainer di solito rispondono entro 3 giorni
-
BUG - Broken Documentation Links for Rules in @sap-ux/eslint-plugin-fiori-tools Redirect to "Page Not Found"Forse già presa @Xyerophyte l’ha presa 245 giorni fa. Apertaeslint-plugin-fiori-tools
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
SAP/open-ux-tools#4219 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
store
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
SAP/open-ux-tools#3838 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
SAP/open-ux-tools#5417 ·
I maintainer di solito rispondono entro 3 giorni
-
BUG - cf-deploy-config-writer appends a second approuter when one already exists in mta.yamlForse già presa @longieirl l’ha presa 1 giorno fa. Apertabug
SAP/open-ux-tools#5415 · 1 assegnatario ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di SAP/open-ux-tools
Issue simili
-
[analytics-core] getQueryParams does not decode `+` as space and truncates values containing `=`Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
amplitude/Amplitude-TypeScript#2179 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
ci good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
TMHSDigital/GH-Arcade#111 ·
-
AsnIntegerConverter.toASN coerces strings with +value, rounding integers outside safe-integer rangeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PeculiarVentures/asn1-schema#189 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100