public getPropertyValue()

in src/tree/containers/ContainersTreeItem.ts [72:98]


    public getPropertyValue(item: DockerContainerInfo, property: ContainerProperty): string {
        const networks = item.NetworkSettings?.Networks && Object.keys(item.NetworkSettings.Networks).length > 0 ? Object.keys(item.NetworkSettings.Networks) : ['<none>'];
        const ports = item.Ports?.length > 0 ? item.Ports.map(p => p.PublicPort) : ['<none>'];

        switch (property) {
            case 'ContainerId':
                return item.Id.slice(0, 12);
            case 'ImageId':
                return item.ImageID.replace('sha256:', '').slice(0, 12);
            case 'ContainerName':
                return item.Name;
            case 'Networks':
                return networks.join(',');
            case 'Ports':
                return ports.join(',');
            case 'State':
                return item.State;
            case 'Status':
                // The rapidly-refreshing status during a container's first minute causes a lot of problems with excessive refreshing
                // This normalizes things like "10 seconds" to "Less than a minute", meaning the refreshes don't happen constantly
                return item.Status?.replace(/\d+ seconds?/i, localize('vscode-docker.tree.containers.lessThanMinute', 'Less than a minute'));
            case 'Compose Project Name':
                return getComposeProjectName(item);
            default:
                return getImagePropertyValue({ ...item, Name: item.Image }, property);
        }
    }