index.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.isEmptyCredentials = isEmptyCredentials;
  4. exports.refreshKMSCredentials = refreshKMSCredentials;
  5. const aws_1 = require("./aws");
  6. const azure_1 = require("./azure");
  7. const gcp_1 = require("./gcp");
  8. /**
  9. * Auto credential fetching should only occur when the provider is defined on the kmsProviders map
  10. * and the settings are an empty object.
  11. *
  12. * This is distinct from a nullish provider key.
  13. *
  14. * @internal - exposed for testing purposes only
  15. */
  16. function isEmptyCredentials(providerName, kmsProviders) {
  17. const provider = kmsProviders[providerName];
  18. if (provider == null) {
  19. return false;
  20. }
  21. return typeof provider === 'object' && Object.keys(provider).length === 0;
  22. }
  23. /**
  24. * Load cloud provider credentials for the user provided KMS providers.
  25. * Credentials will only attempt to get loaded if they do not exist
  26. * and no existing credentials will get overwritten.
  27. *
  28. * @internal
  29. */
  30. async function refreshKMSCredentials(kmsProviders, credentialProviders) {
  31. let finalKMSProviders = kmsProviders;
  32. if (isEmptyCredentials('aws', kmsProviders)) {
  33. finalKMSProviders = await (0, aws_1.loadAWSCredentials)(finalKMSProviders, credentialProviders?.aws);
  34. }
  35. if (isEmptyCredentials('gcp', kmsProviders)) {
  36. finalKMSProviders = await (0, gcp_1.loadGCPCredentials)(finalKMSProviders);
  37. }
  38. if (isEmptyCredentials('azure', kmsProviders)) {
  39. finalKMSProviders = await (0, azure_1.loadAzureCredentials)(finalKMSProviders);
  40. }
  41. return finalKMSProviders;
  42. }
  43. //# sourceMappingURL=index.js.map