1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const client_sts_1 = require("@aws-sdk/client-sts");
|
4 | const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
|
5 | function createCredentialPreprocessor() {
|
6 | return async function (content, file, done) {
|
7 | const fileName = file.originalPath;
|
8 | const region = process.env.AWS_SMOKE_TEST_REGION || "";
|
9 | const credentials = await credential_provider_node_1.defaultProvider({
|
10 | roleAssumer: client_sts_1.getDefaultRoleAssumer(),
|
11 | roleAssumerWithWebIdentity: client_sts_1.getDefaultRoleAssumerWithWebIdentity(),
|
12 | })();
|
13 | const regionCode = `var defaultRegion = '${region}';`;
|
14 | const credentialsCode = `var credentials = ${JSON.stringify(credentials)};`;
|
15 | const isBrowser = `var isBrowser = true;`;
|
16 | const contents = content.split("\n");
|
17 | let idx = -1;
|
18 | for (let i = 0; i < contents.length; i++) {
|
19 | const line = contents[i];
|
20 | if (line.indexOf(fileName) !== -1) {
|
21 | idx = i;
|
22 | break;
|
23 | }
|
24 | }
|
25 | contents.splice(idx + 1, 0, regionCode, credentialsCode, isBrowser);
|
26 | done(contents.join("\n"));
|
27 | };
|
28 | }
|
29 | module.exports = {
|
30 | "preprocessor:credentials": ["factory", createCredentialPreprocessor],
|
31 | };
|