serverless/lib/plugins/aws/utils/resolve-cf-import-value.js
Austen 158f644cd0
feat: Refactor logging to reduce complexity (#12432)
* chore: Change logger

* chore: continue refactor

* chore: WIP

* chore: Sync
2024-04-17 13:26:31 -07:00

19 lines
701 B
JavaScript

import ServerlessError from '../../../serverless-error.js';
async function resolveCfImportValue(provider, name, sdkParams = {}) {
return provider.request('CloudFormation', 'listExports', sdkParams).then((result) => {
const targetExportMeta = result.Exports.find((exportMeta) => exportMeta.Name === name);
if (targetExportMeta) return targetExportMeta.Value;
if (result.NextToken) {
return resolveCfImportValue(provider, name, { NextToken: result.NextToken });
}
throw new ServerlessError(
`Could not resolve Fn::ImportValue with name ${name}. Are you sure this value is exported ?`,
'CF_IMPORT_RESOLUTION'
);
});
}
export default resolveCfImportValue;