UNPKG

@almamedia-open-source/cdk-project-target

Version:

![CDK Version](https://img.shields.io/badge/CDK-v2-informational "CDK v2") ![Stability](https://img.shields.io/badge/Stability-Experimental-yellow "Stability: Experimental")

87 lines 9.2 kB
"use strict"; 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==