// SPDX-FileCopyrightText: 2025 The Project Pterodactyl Developers // // SPDX-License-Identifier: MPL-2.0 import Foundation import TSCBasic import llbuild2fx extension Keys { struct UnitMapOfSourceTree: BuildKey { typealias ValueType = UnitMap let sourceTreeId: LLBDataID func computeValue(_ ctx: BuildContext) async throws -> UnitMap { let sourceTree = try await LLBCASFileTree.load(id: sourceTreeId, in: ctx) var units: [UnitName: UnitInfo] = [:] try await sourceTree.traverse(root: .root, in: ctx) { path, blobID, directoryEntry in let unitName = UnitName.fromPath(path) units[unitName] = UnitInfo(path: path, blobId: blobID) } return UnitMap(units: units) } } }