UNPKG

@deploystack/docker-to-iac

Version:

Translate docker run and docker compose file to Infrastructure as Code

33 lines (32 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getImageUrl = void 0; const base_parser_1 = require("../parsers/base-parser"); const parseDockerImage_1 = require("./parseDockerImage"); /** * Gets the full URL for a Docker image * * @param imageString The image string to parse * @param includeTag Whether to include the tag in the output. Defaults to true. * @returns Formatted image URL */ const getImageUrl = (imageString, includeTag = true) => { const imageInfo = (0, parseDockerImage_1.parseDockerImage)(imageString); switch (imageInfo.registry_type) { case base_parser_1.RegistryType.GHCR: return `ghcr.io/${imageInfo.repository}${includeTag && imageInfo.tag ? `:${imageInfo.tag}` : ''}`; case base_parser_1.RegistryType.DOCKER_HUB: // For Docker Hub, we need to handle official images differently if (!imageInfo.repository.includes('/')) { return `docker.io/library/${imageInfo.repository}${includeTag && imageInfo.tag ? `:${imageInfo.tag}` : ''}`; } return `docker.io/${imageInfo.repository}${includeTag && imageInfo.tag ? `:${imageInfo.tag}` : ''}`; default: // For custom registries, use the full image string as is if (!includeTag && imageString.includes(':')) { return imageString.split(':')[0]; } return imageString; } }; exports.getImageUrl = getImageUrl;