deep-package-manager
Version:
DEEP Package Manager
84 lines (71 loc) • 1.65 kB
JavaScript
/**
* Created by AlexanderC on 2/19/16.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Tag = undefined;
var _TagMetadata = require('./TagMetadata');
class Tag {
/**
* @param {String} repository
* @param {String} name
* @param {String} sourceUrl
*/
constructor(repository, name, sourceUrl) {
this._repository = repository;
this._name = name;
this._sourceUrl = sourceUrl;
}
/**
* @param {String} repository
* @param {Object[]} tagMetadataVector
* @param {Boolean} failSilently
* @returns {Array}
*/
static createFromMetadataVector(repository, tagMetadataVector, failSilently = true) {
let tags = [];
for (let tagMetadata in tagMetadataVector) {
if (!tagMetadataVector.hasOwnProperty(tagMetadata)) {
continue;
}
try {
tags.push(Tag.createFromRawMetadata(repository, tagMetadataVector[tagMetadata]));
} catch (error) {
if (!failSilently) {
throw error;
}
}
}
return tags;
}
/**
* @param {String} repository
* @param {Object} rawTagMetadata
* @returns {Tag}
*/
static createFromRawMetadata(repository, rawTagMetadata) {
let metadata = new _TagMetadata.TagMetadata(rawTagMetadata).extract();
return new Tag(repository, metadata.name, metadata.tarball_url);
}
/**
* @returns {String}
*/
get repository() {
return this._repository;
}
/**
* @returns {String}
*/
get name() {
return this._name;
}
/**
* @returns {String}
*/
get sourceUrl() {
return this._sourceUrl;
}
}
exports.Tag = Tag;