Commit 11fa6ec
committed
fix(engine): apply the JSON→YAML fallback in config-lint's canonical parser too
config-lint had two independent top-level-object parsers for the same manifest
text that disagreed on JSON/YAML fallback. `parseTopLevelObject` (used by
`unknownTopLevelWarnings`) retried with `parseYaml` when `JSON.parse` threw on a
`{`/`[`-prefixed text — YAML flow mappings can start that way while still being
valid manifest syntax. `parseCanonicalTopLevelObject` (used by
`recognizedFieldsFor`) did not: it caught the `JSON.parse` failure and returned
null → [], so `buildConfigLintReport` silently reported zero recognized fields
for a valid YAML-flow-mapping manifest that `unknownTopLevelWarnings` happily
parsed and warned about — the two functions produced inconsistent results for
the same input in the same report call.
De-duplicate the two into one shared `parseManifestTopLevelObject` used by both
callers, so recognizedFieldsFor and unknownTopLevelWarnings can never drift on
whether a given manifest text parses. Add a regression test asserting a valid
YAML flow mapping starting with `{` now yields non-empty recognized fields
consistent with the unknown-field warning for the same text.
Closes #72441 parent 2372739 commit 11fa6ec
2 files changed
Lines changed: 29 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
| 66 | + | |
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| |||
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
| 80 | + | |
84 | 81 | | |
85 | 82 | | |
86 | 83 | | |
| |||
96 | 93 | | |
97 | 94 | | |
98 | 95 | | |
99 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
100 | 101 | | |
101 | 102 | | |
102 | 103 | | |
103 | 104 | | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | 105 | | |
114 | 106 | | |
115 | | - | |
116 | | - | |
| 107 | + | |
117 | 108 | | |
118 | | - | |
| 109 | + | |
119 | 110 | | |
120 | 111 | | |
121 | 112 | | |
122 | | - | |
| 113 | + | |
123 | 114 | | |
124 | 115 | | |
125 | 116 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
271 | 271 | | |
272 | 272 | | |
273 | 273 | | |
274 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
275 | 277 | | |
276 | 278 | | |
277 | 279 | | |
278 | 280 | | |
279 | 281 | | |
280 | 282 | | |
281 | 283 | | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
282 | 299 | | |
283 | 300 | | |
284 | 301 | | |
| |||
0 commit comments