Commit fbc5206
[Fix]
The arrayLimit option is documented as limiting the 'maximum index'
in an array, but was incorrectly being applied to the array length.
This caused inconsistent behavior between indexed (param[0]=val) and
non-indexed (param[]=val) array parameters.
With arrayLimit: 3:
- BEFORE: 4 elements (indices 0-3) would convert to object since
length 4 > limit 3
- AFTER: 4 elements (indices 0-3) stays as array since max index
3 <= limit 3
Changes:
- utils.js combine(): Check 'length - 1 > limit' instead of 'length > limit'
- utils.js merge(): Apply arrayLimit when appending to arrays
- parse.js parseArrayValue(): Use '>' instead of '>=' for throwOnLimitExceeded check
Tests updated to reflect correct behavior per documentation.
Fixes #540.
Co-authored-by: Jordan Harband <ljharb@gmail.com>
Co-authored-by: Kai Gritun <kai@kaigritun.com>parse: fix error message to reflect arrayLimit as max index; remove extraneous comments1 parent 1b9a8b4 commit fbc5206Copy full SHA for fbc5206
5 files changed
+82-37Lines changed: 82 additions & 37 deletions
File tree
Expand file treeCollapse file tree
Open diff view settings
Filter options
- lib
- test
Expand file treeCollapse file tree
Open diff view settings
Collapse file
+1-1Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
7 | 7 | |
8 | 8 | |
9 | 9 | |
10 | | - |
| 10 | + |
11 | 11 | |
12 | 12 | |
13 | 13 | |
|
Collapse file
+2-2Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
40 | 40 | |
41 | 41 | |
42 | 42 | |
43 | | - |
44 | | - |
| 43 | + |
| 44 | + |
45 | 45 | |
46 | 46 | |
47 | 47 | |
|
Collapse file
+11-3Lines changed: 11 additions & 3 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
74 | 74 | |
75 | 75 | |
76 | 76 | |
77 | | - |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | + |
78 | 82 | |
79 | 83 | |
80 | 84 | |
| ||
107 | 111 | |
108 | 112 | |
109 | 113 | |
110 | | - |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | + |
111 | 119 | |
112 | 120 | |
113 | 121 | |
| ||
288 | 296 | |
289 | 297 | |
290 | 298 | |
291 | | - |
| 299 | + |
292 | 300 | |
293 | 301 | |
294 | 302 | |
|
Collapse file
+31-9Lines changed: 31 additions & 9 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
1118 | 1118 | |
1119 | 1119 | |
1120 | 1120 | |
| 1121 | + |
1121 | 1122 | |
1122 | 1123 | |
1123 | | - |
| 1124 | + |
1124 | 1125 | |
1125 | | - |
| 1126 | + |
1126 | 1127 | |
1127 | 1128 | |
1128 | 1129 | |
1129 | 1130 | |
1130 | 1131 | |
| 1132 | + |
| 1133 | + |
| 1134 | + |
| 1135 | + |
| 1136 | + |
| 1137 | + |
| 1138 | + |
| 1139 | + |
1131 | 1140 | |
1132 | 1141 | |
1133 | 1142 | |
| ||
1304 | 1313 | |
1305 | 1314 | |
1306 | 1315 | |
| 1316 | + |
1307 | 1317 | |
1308 | | - |
1309 | | - |
1310 | | - |
| 1318 | + |
| 1319 | + |
| 1320 | + |
| 1321 | + |
1311 | 1322 | |
1312 | 1323 | |
1313 | 1324 | |
1314 | 1325 | |
1315 | | - |
| 1326 | + |
| 1327 | + |
1316 | 1328 | |
1317 | | - |
| 1329 | + |
1318 | 1330 | |
1319 | 1331 | |
1320 | 1332 | |
1321 | 1333 | |
| 1334 | + |
1322 | 1335 | |
| 1336 | + |
| 1337 | + |
| 1338 | + |
| 1339 | + |
| 1340 | + |
| 1341 | + |
| 1342 | + |
| 1343 | + |
1323 | 1344 | |
1324 | | - |
| 1345 | + |
1325 | 1346 | |
1326 | 1347 | |
1327 | 1348 | |
| ||
1384 | 1405 | |
1385 | 1406 | |
1386 | 1407 | |
| 1408 | + |
1387 | 1409 | |
1388 | | - |
| 1410 | + |
1389 | 1411 | |
1390 | 1412 | |
1391 | 1413 | |
|
Collapse file
+37-22Lines changed: 37 additions & 22 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
69 | 69 | |
70 | 70 | |
71 | 71 | |
| 72 | + |
| 73 | + |
72 | 74 | |
73 | | - |
74 | | - |
| 75 | + |
| 76 | + |
75 | 77 | |
76 | | - |
77 | | - |
| 78 | + |
| 79 | + |
78 | 80 | |
79 | 81 | |
80 | 82 | |
| ||
94 | 96 | |
95 | 97 | |
96 | 98 | |
97 | | - |
98 | | - |
| 99 | + |
| 100 | + |
99 | 101 | |
100 | | - |
| 102 | + |
101 | 103 | |
102 | | - |
| 104 | + |
103 | 105 | |
104 | 106 | |
105 | 107 | |
106 | 108 | |
107 | | - |
108 | | - |
| 109 | + |
| 110 | + |
109 | 111 | |
110 | 112 | |
111 | | - |
| 113 | + |
112 | 114 | |
113 | 115 | |
114 | 116 | |
| ||
194 | 196 | |
195 | 197 | |
196 | 198 | |
| 199 | + |
197 | 200 | |
198 | | - |
199 | | - |
| 201 | + |
| 202 | + |
| 203 | + |
200 | 204 | |
201 | 205 | |
202 | 206 | |
203 | 207 | |
204 | 208 | |
205 | | - |
206 | | - |
| 209 | + |
| 210 | + |
| 211 | + |
207 | 212 | |
208 | 213 | |
209 | 214 | |
210 | 215 | |
211 | 216 | |
| 217 | + |
212 | 218 | |
213 | | - |
| 219 | + |
| 220 | + |
| 221 | + |
| 222 | + |
| 223 | + |
| 224 | + |
| 225 | + |
| 226 | + |
| 227 | + |
214 | 228 | |
215 | 229 | |
216 | 230 | |
217 | 231 | |
218 | 232 | |
219 | | - |
220 | | - |
| 233 | + |
| 234 | + |
| 235 | + |
221 | 236 | |
222 | 237 | |
223 | 238 | |
| ||
228 | 243 | |
229 | 244 | |
230 | 245 | |
231 | | - |
232 | | - |
| 246 | + |
| 247 | + |
233 | 248 | |
234 | 249 | |
235 | | - |
| 250 | + |
236 | 251 | |
237 | | - |
| 252 | + |
238 | 253 | |
239 | 254 | |
240 | 255 | |
|
0 commit comments