(imageMetadata: ImageMetadataEntry[])
| 262 | } |
| 263 | |
| 264 | function mergeMounts(imageMetadata: ImageMetadataEntry[]): (Mount | string)[] | undefined { |
| 265 | const seen = new Set<string>(); |
| 266 | const mounts = imageMetadata.map(entry => entry.mounts) |
| 267 | .filter(Boolean) |
| 268 | .flat() |
| 269 | .map(mount => ({ |
| 270 | obj: typeof mount === 'string' ? parseMount(mount) : mount!, |
| 271 | orig: mount!, |
| 272 | })) |
| 273 | .reverse() |
| 274 | .filter(mount => !seen.has(mount.obj.target) && seen.add(mount.obj.target)) |
| 275 | .reverse() |
| 276 | .map(mount => mount.orig); |
| 277 | return mounts.length ? mounts : undefined; |
| 278 | } |
| 279 | |
| 280 | function unionOrUndefined<T>(entries: (T[] | undefined)[]): T[] | undefined { |
| 281 | const values = [...new Set(([] as T[]).concat(...entries.filter(entry => !!entry) as T[][]))]; |
no test coverage detected