@almamedia-open-source/cdk-project-target
Version:
 
87 lines • 9.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCategoryByLabel = exports.getLabelByName = exports.labelToCategory = exports.EnvironmentLabel = exports.EnvironmentCategory = void 0;
class EnvRegExp {
constructor(base) {
this.regexp = new RegExp(`^${base}$`, 'i');
}
test(value) {
return this.regexp.test(value);
}
}
/**
* (experimental) Availalbe Enviroment Categories.
*
* Categories are useful grouping to make distinction between `stable`
* environments (`staging` & `production`) from `feature` or `verification`
* environments (such as `test` or `preproduction`).
*
* @experimental
*/
var EnvironmentCategory;
(function (EnvironmentCategory) {
EnvironmentCategory["MOCK"] = "mock";
EnvironmentCategory["DEVELOPMENT"] = "development";
EnvironmentCategory["FEATURE"] = "feature";
EnvironmentCategory["VERIFICATION"] = "verification";
EnvironmentCategory["STABLE"] = "stable";
})(EnvironmentCategory = exports.EnvironmentCategory || (exports.EnvironmentCategory = {}));
/**
* (experimental) Available Environment Labels.
*
* Labels are useful since Environment Name can be complex,
* such as `feature/foo-bar` or `qa3`,
* but we need to be able to “label” all `feature/*` and `qaN` environments
* as either `feature` or `qa`.
*
* @experimental
*/
var EnvironmentLabel;
(function (EnvironmentLabel) {
EnvironmentLabel["MOCK"] = "mock[0-9]";
EnvironmentLabel["DEVELOPMENT"] = "development";
EnvironmentLabel["FEATURE"] = "feature/[/a-zA-z0-9-]+";
EnvironmentLabel["TEST"] = "test";
EnvironmentLabel["STAGING"] = "staging";
EnvironmentLabel["QA"] = "qa[0-9]";
EnvironmentLabel["PREPRODUCTION"] = "preproduction";
EnvironmentLabel["PRODUCTION"] = "production";
})(EnvironmentLabel = exports.EnvironmentLabel || (exports.EnvironmentLabel = {}));
/**
* Map Environment Type to Environment Category.
* I.e. `staging` and `production` are considered being `stable` environments.
*/
exports.labelToCategory = {
[EnvironmentLabel.MOCK]: EnvironmentCategory.MOCK,
[EnvironmentLabel.DEVELOPMENT]: EnvironmentCategory.DEVELOPMENT,
[EnvironmentLabel.FEATURE]: EnvironmentCategory.FEATURE,
[EnvironmentLabel.TEST]: EnvironmentCategory.VERIFICATION,
[EnvironmentLabel.STAGING]: EnvironmentCategory.STABLE,
[EnvironmentLabel.QA]: EnvironmentCategory.VERIFICATION,
[EnvironmentLabel.PREPRODUCTION]: EnvironmentCategory.VERIFICATION,
[EnvironmentLabel.PRODUCTION]: EnvironmentCategory.STABLE,
};
const ENV_REGEXP_MOCK = new EnvRegExp(EnvironmentLabel.MOCK);
const ENV_REGEXP_FEATURE = new EnvRegExp(EnvironmentLabel.FEATURE);
const ENV_REGEXP_QA = new EnvRegExp(EnvironmentLabel.QA);
/**
* TODO document
*/
function getLabelByName(name) {
if (ENV_REGEXP_MOCK.test(name))
return EnvironmentLabel.MOCK;
if (ENV_REGEXP_FEATURE.test(name))
return EnvironmentLabel.FEATURE;
if (ENV_REGEXP_QA.test(name))
return EnvironmentLabel.QA;
return name;
}
exports.getLabelByName = getLabelByName;
/**
* TODO document
*/
function getCategoryByLabel(label) {
return exports.labelToCategory[label];
}
exports.getCategoryByLabel = getCategoryByLabel;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZ3VyYXRpb25zL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLFNBQVM7SUFHYixZQUFZLElBQVk7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FFRjs7Ozs7Ozs7OztBQUlELElBQVksbUJBTVg7QUFORCxXQUFZLG1CQUFtQjtJQUM3QixvQ0FBYSxDQUFBO0lBQ2Isa0RBQTJCLENBQUE7SUFDM0IsMENBQW1CLENBQUE7SUFDbkIsb0RBQTZCLENBQUE7SUFDN0Isd0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLG1CQUFtQixHQUFuQiwyQkFBbUIsS0FBbkIsMkJBQW1CLFFBTTlCOzs7Ozs7Ozs7OztBQUdELElBQVksZ0JBU1g7QUFURCxXQUFZLGdCQUFnQjtJQUMxQixzQ0FBZ0IsQ0FBQTtJQUNoQiwrQ0FBeUIsQ0FBQTtJQUN6QixzREFBZ0MsQ0FBQTtJQUNoQyxpQ0FBVyxDQUFBO0lBQ1gsdUNBQWlCLENBQUE7SUFDakIsa0NBQVksQ0FBQTtJQUNaLG1EQUE2QixDQUFBO0lBQzdCLDZDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFUVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQVMzQjtBQUVEOzs7R0FHRztBQUNVLFFBQUEsZUFBZSxHQUFrRDtJQUM1RSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQixDQUFDLElBQUk7SUFDakQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXO0lBQy9ELENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsT0FBTztJQUN2RCxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQixDQUFDLFlBQVk7SUFDekQsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO0lBQ3RELENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEVBQUUsbUJBQW1CLENBQUMsWUFBWTtJQUN2RCxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLFlBQVk7SUFDbEUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO0NBQzFELENBQUM7QUFHRixNQUFNLGVBQWUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3RCxNQUFNLGtCQUFrQixHQUFHLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25FLE1BQU0sYUFBYSxHQUFHLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLElBQVk7SUFDekMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQzdELElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ25FLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztJQUN6RCxPQUF5QixJQUFJLENBQUM7QUFDaEMsQ0FBQztBQUxELHdDQUtDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUF1QjtJQUN4RCxPQUFPLHVCQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUZELGdEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRW52UmVnRXhwIHtcbiAgcHJpdmF0ZSByZWdleHA6IFJlZ0V4cDtcblxuICBjb25zdHJ1Y3RvcihiYXNlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlZ2V4cCA9IG5ldyBSZWdFeHAoYF4ke2Jhc2V9JGAsICdpJyk7XG4gIH1cblxuICB0ZXN0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWdleHAudGVzdCh2YWx1ZSk7XG4gIH1cblxufVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gRW52aXJvbm1lbnRDYXRlZ29yeSB7XG4gIE1PQ0sgPSAnbW9jaycsXG4gIERFVkVMT1BNRU5UID0gJ2RldmVsb3BtZW50JyxcbiAgRkVBVFVSRSA9ICdmZWF0dXJlJyxcbiAgVkVSSUZJQ0FUSU9OID0gJ3ZlcmlmaWNhdGlvbicsXG4gIFNUQUJMRSA9ICdzdGFibGUnLFxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgZW51bSBFbnZpcm9ubWVudExhYmVsIHtcbiAgTU9DSz0nbW9ja1swLTldJyxcbiAgREVWRUxPUE1FTlQ9J2RldmVsb3BtZW50JyxcbiAgRkVBVFVSRT0nZmVhdHVyZS9bL2EtekEtejAtOS1dKycsXG4gIFRFU1Q9J3Rlc3QnLCAvLyByZXBsYWNlcyBcInByZXN0YWdpbmdcIlxuICBTVEFHSU5HPSdzdGFnaW5nJyxcbiAgUUE9J3FhWzAtOV0nLFxuICBQUkVQUk9EVUNUSU9OPSdwcmVwcm9kdWN0aW9uJyxcbiAgUFJPRFVDVElPTj0ncHJvZHVjdGlvbicsXG59XG5cbi8qKlxuICogTWFwIEVudmlyb25tZW50IFR5cGUgdG8gRW52aXJvbm1lbnQgQ2F0ZWdvcnkuXG4gKiBJLmUuIGBzdGFnaW5nYCBhbmQgYHByb2R1Y3Rpb25gIGFyZSBjb25zaWRlcmVkIGJlaW5nIGBzdGFibGVgIGVudmlyb25tZW50cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGxhYmVsVG9DYXRlZ29yeTogUmVjb3JkPEVudmlyb25tZW50TGFiZWwsIEVudmlyb25tZW50Q2F0ZWdvcnk+ID0ge1xuICBbRW52aXJvbm1lbnRMYWJlbC5NT0NLXTogRW52aXJvbm1lbnRDYXRlZ29yeS5NT0NLLFxuICBbRW52aXJvbm1lbnRMYWJlbC5ERVZFTE9QTUVOVF06IEVudmlyb25tZW50Q2F0ZWdvcnkuREVWRUxPUE1FTlQsXG4gIFtFbnZpcm9ubWVudExhYmVsLkZFQVRVUkVdOiBFbnZpcm9ubWVudENhdGVnb3J5LkZFQVRVUkUsXG4gIFtFbnZpcm9ubWVudExhYmVsLlRFU1RdOiBFbnZpcm9ubWVudENhdGVnb3J5LlZFUklGSUNBVElPTixcbiAgW0Vudmlyb25tZW50TGFiZWwuU1RBR0lOR106IEVudmlyb25tZW50Q2F0ZWdvcnkuU1RBQkxFLFxuICBbRW52aXJvbm1lbnRMYWJlbC5RQV06IEVudmlyb25tZW50Q2F0ZWdvcnkuVkVSSUZJQ0FUSU9OLFxuICBbRW52aXJvbm1lbnRMYWJlbC5QUkVQUk9EVUNUSU9OXTogRW52aXJvbm1lbnRDYXRlZ29yeS5WRVJJRklDQVRJT04sXG4gIFtFbnZpcm9ubWVudExhYmVsLlBST0RVQ1RJT05dOiBFbnZpcm9ubWVudENhdGVnb3J5LlNUQUJMRSxcbn07XG5cblxuY29uc3QgRU5WX1JFR0VYUF9NT0NLID0gbmV3IEVudlJlZ0V4cChFbnZpcm9ubWVudExhYmVsLk1PQ0spO1xuY29uc3QgRU5WX1JFR0VYUF9GRUFUVVJFID0gbmV3IEVudlJlZ0V4cChFbnZpcm9ubWVudExhYmVsLkZFQVRVUkUpO1xuY29uc3QgRU5WX1JFR0VYUF9RQSA9IG5ldyBFbnZSZWdFeHAoRW52aXJvbm1lbnRMYWJlbC5RQSk7XG5cbi8qKlxuICogVE9ETyBkb2N1bWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFiZWxCeU5hbWUobmFtZTogc3RyaW5nKTogRW52aXJvbm1lbnRMYWJlbCB7XG4gIGlmIChFTlZfUkVHRVhQX01PQ0sudGVzdChuYW1lKSkgcmV0dXJuIEVudmlyb25tZW50TGFiZWwuTU9DSztcbiAgaWYgKEVOVl9SRUdFWFBfRkVBVFVSRS50ZXN0KG5hbWUpKSByZXR1cm4gRW52aXJvbm1lbnRMYWJlbC5GRUFUVVJFO1xuICBpZiAoRU5WX1JFR0VYUF9RQS50ZXN0KG5hbWUpKSByZXR1cm4gRW52aXJvbm1lbnRMYWJlbC5RQTtcbiAgcmV0dXJuIDxFbnZpcm9ubWVudExhYmVsPm5hbWU7XG59XG5cbi8qKlxuICogVE9ETyBkb2N1bWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2F0ZWdvcnlCeUxhYmVsKGxhYmVsOiBFbnZpcm9ubWVudExhYmVsKTogRW52aXJvbm1lbnRDYXRlZ29yeSB7XG4gIHJldHVybiBsYWJlbFRvQ2F0ZWdvcnlbbGFiZWxdO1xufVxuXG5cbiJdfQ==