@soinlabs/secrets
Version:
Key management library for SOIN Labs
43 lines (35 loc) • 1.02 kB
JavaScript
const AmazonProvider = require("./AmazonProvider");
const EnvProvider = require("./EnvProvider");
class SecretsGetter {
static AMAZON = "amazon";
static ENV_VARS = "env";
static VAULT = "vault";
constructor(providerName, configuration) {
this.provider = this.getProvider(providerName, configuration);
}
getProvider(providerName, configuration) {
const providerConstructor = this.chooseProvider(providerName);
return providerConstructor(configuration);
}
chooseProvider(providerName) {
return (configuration) => {
let provider = null;
switch (providerName) {
case "amazon":
provider = new AmazonProvider(configuration);
break;
case "env":
provider = new EnvProvider(configuration);
break;
}
return provider;
};
}
async getSecret(key) {
return await this.provider.getSecret(key);
}
getSecretSync(key) {
return this.provider.getSecretSync(key);
}
}
module.exports = SecretsGetter;