UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

73 lines (54 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_REGISTRY_AUTH = exports.DEFAULT_REGISTRY = void 0; exports.getImageFromImageWithTag = getImageFromImageWithTag; exports.getRegistryFromImage = getRegistryFromImage; exports.getRepositoryFromImage = getRepositoryFromImage; exports.getTagFromImageWithTag = getTagFromImageWithTag; // docker v2 registry URL const DEFAULT_REGISTRY = 'registry-1.docker.io'; // the url which docker stores in .docker/config.json for auth exports.DEFAULT_REGISTRY = DEFAULT_REGISTRY; const DEFAULT_REGISTRY_AUTH = 'https://index.docker.io/v1/'; // someregistry.com/some/image:latest -> someregistry.com/some/image exports.DEFAULT_REGISTRY_AUTH = DEFAULT_REGISTRY_AUTH; function getImageFromImageWithTag(imageWithTag) { if (imageWithTag.lastIndexOf('/') !== -1) { const lastSlash = imageWithTag.lastIndexOf('/'); if (imageWithTag.indexOf(':', lastSlash) !== -1) { return imageWithTag.substring(0, imageWithTag.indexOf(':', lastSlash)); } return imageWithTag; } if (imageWithTag.indexOf(':') !== -1) { return imageWithTag.substring(0, imageWithTag.indexOf(':')); } return imageWithTag; } // someregistry.com/some/image:latest -> latest function getTagFromImageWithTag(imageWithTag) { if (imageWithTag.lastIndexOf('/') !== -1) { const lastSlash = imageWithTag.lastIndexOf('/'); if (imageWithTag.indexOf(':', lastSlash) !== -1) { return imageWithTag.substring(imageWithTag.indexOf(':', lastSlash) + 1); } return 'latest'; } if (imageWithTag.indexOf(':') !== -1) { return imageWithTag.substring(imageWithTag.indexOf(':') + 1); } return 'latest'; } function getRegistryFromImage(image) { const parsedRegistry = image.match(/([a-zA-Z0-9-.:]+)\/[a-zA-Z0-9-]+\/[a-zA-Z0-9-]+/); const registry = parsedRegistry != null && parsedRegistry.length > 1 ? parsedRegistry[1] : DEFAULT_REGISTRY; return registry; } // someregistry.com/some/image -> some/image function getRepositoryFromImage(image) { if (image.lastIndexOf('/') === -1) { return 'library/' + image; } if (image.split('/').length === 3) { return image.substring(image.indexOf('/') + 1); } return image; }