const format = require("../../Utilities/Format"); class ImageTreeItem extends TreeItem { constructor(image, options = {}) { super(options.grouped ? image.tag : label(image), TreeItemCollapsibleState.None); this.identifier = image.identifier; this.image = "icons/tag.png"; this.contextValue = "image.tag"; this.tooltip = image.tooltip; this.descriptiveText = [format.bytes(image.size), format.age(image.created)] .filter((part) => part.length > 0) .join(" "); } } class RepositoryTreeItem extends TreeItem { constructor(repository) { super( repository.name, repository.expanded ? TreeItemCollapsibleState.Expanded : TreeItemCollapsibleState.Collapsed ); this.identifier = repository.identifier; this.image = "icons/layers.png"; this.contextValue = "image.repo"; this.descriptiveText = format.bytes(repository.size); this.tooltip = repository.name; } } function label(image) { return nova.config.get("apple_container.images.registry", "boolean") ? image.reference : `${image.short}:${image.tag}`; } module.exports = { ImageTreeItem, RepositoryTreeItem };