UNPKG

@soinlabs/secrets

Version:

Key management library for SOIN Labs

43 lines (35 loc) 1.02 kB
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;