diff --git a/FrontEnd/scripts/controllers/use_this_package_panel_controller.js b/FrontEnd/scripts/controllers/use_this_package_panel_controller.js index b6acb98e2..6ade1bf3c 100644 --- a/FrontEnd/scripts/controllers/use_this_package_panel_controller.js +++ b/FrontEnd/scripts/controllers/use_this_package_panel_controller.js @@ -26,6 +26,8 @@ export class UseThisPackagePanelController extends Controller { const optionElement = selectElement.options[selectElement.selectedIndex] const packageName = optionElement.dataset.package const productName = optionElement.dataset.product - this.snippetTarget.value = `.product(name: "${productName}", package: "${packageName}")` + const type = optionElement.dataset.type + const prefix = type == "plugin" ? ".plugin" : ".product" + this.snippetTarget.value = `${prefix}(name: "${productName}", package: "${packageName}")` } } diff --git a/Sources/App/Controllers/API/API+PackageController+GetRoute+Model.swift b/Sources/App/Controllers/API/API+PackageController+GetRoute+Model.swift index 7d1f3db11..211e5fb17 100644 --- a/Sources/App/Controllers/API/API+PackageController+GetRoute+Model.swift +++ b/Sources/App/Controllers/API/API+PackageController+GetRoute+Model.swift @@ -230,7 +230,7 @@ extension API.PackageController.GetRoute.Model { self.type = type } - enum ProductType: Codable, Equatable { + enum ProductType: String, Codable, Equatable { case library case executable case plugin diff --git a/Sources/App/Views/PackageController/GetRoute.Model+ext.swift b/Sources/App/Views/PackageController/GetRoute.Model+ext.swift index 0d5603801..d4e77d1ef 100644 --- a/Sources/App/Views/PackageController/GetRoute.Model+ext.swift +++ b/Sources/App/Views/PackageController/GetRoute.Model+ext.swift @@ -415,10 +415,12 @@ extension API.PackageController.GetRoute.Model { .data(named: "action", value: "input->use-this-package-panel#updateProductSnippet"), .attribute(named: "name", value: "products"), .id("products"), - .forEach(products, { product in + // Filter out products of type `executable` until we add support for them. + .forEach(products.filter({ $0.type != .executable }), { product in .option( .data(named: "package", value: package), .data(named: "product", value: product.name), + .data(named: "type", value: product.type.rawValue), .value(product.name), .label(product.name) )