-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup-npmrc.js
More file actions
38 lines (31 loc) · 1.27 KB
/
setup-npmrc.js
File metadata and controls
38 lines (31 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const fs = require("fs");
const { execSync } = require("child_process");
// Load environment variables from .env file
const envFileContent = fs.readFileSync(".env", "utf-8");
const envVariables = envFileContent.split("\n").reduce((acc, line) => {
const [key, value] = line.split("=").map((str) => str.trim());
if (key && value) {
acc[key] = value;
}
return acc;
}, {});
const {
CODEARTIFACT_DOMAIN,
CODEARTIFACT_DOMAIN_OWNER,
AWS_REGION,
CODEARTIFACT_REPOSITORY,
} = envVariables;
// Generate the CodeArtifact auth token using AWS CLI
const CODEARTIFACT_AUTH_TOKEN = execSync(
`aws codeartifact get-authorization-token --domain ${CODEARTIFACT_DOMAIN} --domain-owner ${CODEARTIFACT_DOMAIN_OWNER} --region ${AWS_REGION} --query authorizationToken --output text`
)
.toString()
.trim();
// Create the .npmrc file
const npmrcContent = `
registry=https://registry.npmjs.org/
registry=https://${CODEARTIFACT_DOMAIN}-${CODEARTIFACT_DOMAIN_OWNER}.d.codeartifact.${AWS_REGION}.amazonaws.com/npm/${CODEARTIFACT_REPOSITORY}
//${CODEARTIFACT_DOMAIN}-${CODEARTIFACT_DOMAIN_OWNER}.d.codeartifact.${AWS_REGION}.amazonaws.com/npm/${CODEARTIFACT_REPOSITORY}/:_authToken=${CODEARTIFACT_AUTH_TOKEN}
`;
fs.writeFileSync(".npmrc", npmrcContent);
console.log(".npmrc file has been created.");