navy
Version:
Quick and powerful development environments using Docker and Docker Compose
73 lines (54 loc) • 2.24 kB
JavaScript
;
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;
}