@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
45 lines • 5.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveResourceName = resolveResourceName;
/*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0 */
const variants_1 = require("./variants");
const assets_1 = require("../../generated/assets");
const utils_1 = require("../../utils");
/** @internal */
const RESOURCE_LOOKUP = Object.fromEntries([
...Object.keys(assets_1.AwsAsset.Resources).flatMap((key) => {
return [
// constant self lookup
[key, key],
// constant comparable
[(0, utils_1.normalizeComparisonString)(key), key],
];
}),
...Object.entries(variants_1.NORMALIZED_RESOURCE_VARIANTS).flatMap(([key, variants]) => {
if (variants == null)
return [];
return variants.map((variant) => [(0, utils_1.normalizeComparisonString)(variant), key]);
}),
]);
/**
* Resolve resource name value to asset based service key.
* @internal
*/
function resolveResourceName(value, service) {
// constant lookup first for perf
const comparableValue = (0, utils_1.normalizeComparisonString)(value);
if (comparableValue in RESOURCE_LOOKUP) {
return RESOURCE_LOOKUP[comparableValue];
}
if (service) {
const servicePrefixed = `${(0, utils_1.normalizeComparisonString)(service)}${comparableValue}`;
if (servicePrefixed in RESOURCE_LOOKUP) {
const resourceName = RESOURCE_LOOKUP[servicePrefixed];
RESOURCE_LOOKUP[comparableValue] = resourceName;
return resourceName;
}
}
throw new Error(`Failed to resolve resourceName ${value} [${service}] (${comparableValue})`);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQkEsa0RBMEJDO0FBcEREO3NDQUNzQztBQUN0Qyx5Q0FBMEQ7QUFDMUQsbURBQWtEO0FBQ2xELHVDQUF3RDtBQUV4RCxnQkFBZ0I7QUFDaEIsTUFBTSxlQUFlLEdBQThCLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDcEUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDakQsT0FBTztZQUNMLHVCQUF1QjtZQUN2QixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7WUFDVixzQkFBc0I7WUFDdEIsQ0FBQyxJQUFBLGlDQUF5QixFQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztTQUN0QyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBQ0YsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLHVDQUE0QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtRQUMxRSxJQUFJLFFBQVEsSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDaEMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUEsaUNBQXlCLEVBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FDakMsS0FBYSxFQUNiLE9BQTBCO0lBRTFCLGlDQUFpQztJQUNqQyxNQUFNLGVBQWUsR0FBRyxJQUFBLGlDQUF5QixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELElBQUksZUFBZSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBc0IsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLE1BQU0sZUFBZSxHQUFHLEdBQUcsSUFBQSxpQ0FBeUIsRUFDbEQsT0FBTyxDQUNSLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDdEIsSUFBSSxlQUFlLElBQUksZUFBZSxFQUFFLENBQUM7WUFDdkMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUNsQyxlQUFlLENBQ0ssQ0FBQztZQUN2QixlQUFlLENBQUMsZUFBZSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ2hELE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FDYixrQ0FBa0MsS0FBSyxLQUFLLE9BQU8sTUFBTSxlQUFlLEdBQUcsQ0FDNUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgQ29weXJpZ2h0IFtBbWF6b24uY29tXShodHRwOi8vYW1hem9uLmNvbS8pLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgKi9cbmltcG9ydCB7IE5PUk1BTElaRURfUkVTT1VSQ0VfVkFSSUFOVFMgfSBmcm9tIFwiLi92YXJpYW50c1wiO1xuaW1wb3J0IHsgQXdzQXNzZXQgfSBmcm9tIFwiLi4vLi4vZ2VuZXJhdGVkL2Fzc2V0c1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplQ29tcGFyaXNvblN0cmluZyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuXG4vKiogQGludGVybmFsICovXG5jb25zdCBSRVNPVVJDRV9MT09LVVA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSBPYmplY3QuZnJvbUVudHJpZXMoW1xuICAuLi5PYmplY3Qua2V5cyhBd3NBc3NldC5SZXNvdXJjZXMpLmZsYXRNYXAoKGtleSkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBjb25zdGFudCBzZWxmIGxvb2t1cFxuICAgICAgW2tleSwga2V5XSxcbiAgICAgIC8vIGNvbnN0YW50IGNvbXBhcmFibGVcbiAgICAgIFtub3JtYWxpemVDb21wYXJpc29uU3RyaW5nKGtleSksIGtleV0sXG4gICAgXTtcbiAgfSksXG4gIC4uLk9iamVjdC5lbnRyaWVzKE5PUk1BTElaRURfUkVTT1VSQ0VfVkFSSUFOVFMpLmZsYXRNYXAoKFtrZXksIHZhcmlhbnRzXSkgPT4ge1xuICAgIGlmICh2YXJpYW50cyA9PSBudWxsKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHZhcmlhbnRzLm1hcCgodmFyaWFudCkgPT4gW25vcm1hbGl6ZUNvbXBhcmlzb25TdHJpbmcodmFyaWFudCksIGtleV0pO1xuICB9KSxcbl0pO1xuXG4vKipcbiAqIFJlc29sdmUgcmVzb3VyY2UgbmFtZSB2YWx1ZSB0byBhc3NldCBiYXNlZCBzZXJ2aWNlIGtleS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJlc291cmNlTmFtZShcbiAgdmFsdWU6IHN0cmluZyxcbiAgc2VydmljZT86IEF3c0Fzc2V0LlNlcnZpY2Vcbik6IEF3c0Fzc2V0LlJlc291cmNlIHtcbiAgLy8gY29uc3RhbnQgbG9va3VwIGZpcnN0IGZvciBwZXJmXG4gIGNvbnN0IGNvbXBhcmFibGVWYWx1ZSA9IG5vcm1hbGl6ZUNvbXBhcmlzb25TdHJpbmcodmFsdWUpO1xuICBpZiAoY29tcGFyYWJsZVZhbHVlIGluIFJFU09VUkNFX0xPT0tVUCkge1xuICAgIHJldHVybiBSRVNPVVJDRV9MT09LVVBbY29tcGFyYWJsZVZhbHVlXSBhcyBBd3NBc3NldC5SZXNvdXJjZTtcbiAgfVxuXG4gIGlmIChzZXJ2aWNlKSB7XG4gICAgY29uc3Qgc2VydmljZVByZWZpeGVkID0gYCR7bm9ybWFsaXplQ29tcGFyaXNvblN0cmluZyhcbiAgICAgIHNlcnZpY2VcbiAgICApfSR7Y29tcGFyYWJsZVZhbHVlfWA7XG4gICAgaWYgKHNlcnZpY2VQcmVmaXhlZCBpbiBSRVNPVVJDRV9MT09LVVApIHtcbiAgICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IFJFU09VUkNFX0xPT0tVUFtcbiAgICAgICAgc2VydmljZVByZWZpeGVkXG4gICAgICBdIGFzIEF3c0Fzc2V0LlJlc291cmNlO1xuICAgICAgUkVTT1VSQ0VfTE9PS1VQW2NvbXBhcmFibGVWYWx1ZV0gPSByZXNvdXJjZU5hbWU7XG4gICAgICByZXR1cm4gcmVzb3VyY2VOYW1lO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgRmFpbGVkIHRvIHJlc29sdmUgcmVzb3VyY2VOYW1lICR7dmFsdWV9IFske3NlcnZpY2V9XSAoJHtjb21wYXJhYmxlVmFsdWV9KWBcbiAgKTtcbn1cbiJdfQ==