@uizard/nx-fast-s3-cache
Version:
Nx s3 cache using GNU tar, pigz and multipart s3 uploads/downloads
42 lines (41 loc) • 2.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildS3Client = void 0;
const client_s3_1 = require("@aws-sdk/client-s3");
const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
const client_sts_1 = require("@aws-sdk/client-sts");
const ENV_ENDPOINT = "NXCACHE_S3_ENDPOINT";
const ENV_PROFILE = "NXCACHE_S3_PROFILE";
const ENV_FORCE_PATH_STYLE = "NXCACHE_S3_FORCE_PATH_STYLE";
const ENV_REGION = "NXCACHE_S3_REGION";
const ENV_ACCESS_KEY_ID = "NXCACHE_S3_ACCESS_KEY_ID";
const ENV_SECRET_ACCESS_KEY = "NXCACHE_S3_SECRET_ACCESS_KEY";
const buildS3Client = (options) => {
var _a, _b;
const provider = getCredentialsProvider(options);
return new client_s3_1.S3({
endpoint: (_a = process.env[ENV_ENDPOINT]) !== null && _a !== void 0 ? _a : options.endpoint,
region: (_b = process.env[ENV_REGION]) !== null && _b !== void 0 ? _b : options.region,
credentials: provider,
forcePathStyle: process.env[ENV_FORCE_PATH_STYLE] === "true" || options.forcePathStyle,
});
};
exports.buildS3Client = buildS3Client;
const getCredentialsProvider = (options) => {
var _a;
const awsAccessKeyIdOverride = process.env[ENV_ACCESS_KEY_ID];
const awsSecretAccessKeyOverride = process.env[ENV_SECRET_ACCESS_KEY];
if ((awsAccessKeyIdOverride === null || awsAccessKeyIdOverride === void 0 ? void 0 : awsAccessKeyIdOverride.length) && (awsSecretAccessKeyOverride === null || awsSecretAccessKeyOverride === void 0 ? void 0 : awsSecretAccessKeyOverride.length)) {
return {
accessKeyId: awsAccessKeyIdOverride,
secretAccessKey: awsSecretAccessKeyOverride,
};
}
else {
return (0, credential_provider_node_1.defaultProvider)({
profile: (_a = process.env[ENV_PROFILE]) !== null && _a !== void 0 ? _a : options.profile,
roleAssumerWithWebIdentity: (0, client_sts_1.getDefaultRoleAssumerWithWebIdentity)(),
roleAssumer: (0, client_sts_1.getDefaultRoleAssumer)(),
});
}
};