(
ellipsisComponentIndex: number
)
| 281 | }; |
| 282 | |
| 283 | const replaceComponentIndexWithEllipsis = ( |
| 284 | ellipsisComponentIndex: number |
| 285 | ): PathSlice[] => { |
| 286 | const ellipsisSliceIndices = slices |
| 287 | .map((slice, index) => [slice, index] as [PathSlice, number]) |
| 288 | .filter( |
| 289 | ([slice, index]) => |
| 290 | slice.type === "component" && |
| 291 | slice.componentIndex === ellipsisComponentIndex |
| 292 | ) |
| 293 | .map(([, index]) => index); |
| 294 | |
| 295 | const newEllipsis = slices.map((slice, index) => { |
| 296 | if (ellipsisSliceIndices.includes(index)) { |
| 297 | return { |
| 298 | type: "ellipsis", |
| 299 | }; |
| 300 | } else { |
| 301 | return slice; |
| 302 | } |
| 303 | }) as PathSlice[]; |
| 304 | |
| 305 | return combineAdjacentEllipsis(newEllipsis); |
| 306 | }; |
| 307 | |
| 308 | const componentSlices = Array.keepMap(slices, (slice) => |
| 309 | slice.type === "component" ? slice : null |
no test coverage detected