@aws-sdk/karma-credential-loader
Version:
[](https://www.npmjs.com/package/@aws-sdk/karma-credential-loader) [](https://www.n
42 lines (41 loc) • 2.05 kB
JavaScript
import { __awaiter, __generator } from "tslib";
import { getDefaultRoleAssumer, getDefaultRoleAssumerWithWebIdentity } from "@aws-sdk/client-sts";
import { defaultProvider as credentialProvider } from "@aws-sdk/credential-provider-node";
function createCredentialPreprocessor() {
return function (content, file, done) {
return __awaiter(this, void 0, void 0, function () {
var fileName, region, credentials, regionCode, credentialsCode, isBrowser, contents, idx, i, line;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
fileName = file.originalPath;
region = process.env.AWS_SMOKE_TEST_REGION || "";
return [4, credentialProvider({
roleAssumer: getDefaultRoleAssumer(),
roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity(),
})()];
case 1:
credentials = _a.sent();
regionCode = "var defaultRegion = '" + region + "';";
credentialsCode = "var credentials = " + JSON.stringify(credentials) + ";";
isBrowser = "var isBrowser = true;";
contents = content.split("\n");
idx = -1;
for (i = 0; i < contents.length; i++) {
line = contents[i];
if (line.indexOf(fileName) !== -1) {
idx = i;
break;
}
}
contents.splice(idx + 1, 0, regionCode, credentialsCode, isBrowser);
done(contents.join("\n"));
return [2];
}
});
});
};
}
module.exports = {
"preprocessor:credentials": ["factory", createCredentialPreprocessor],
};