@soinlabs/secrets
Advanced tools
Comparing version 0.0.1 to 0.0.2
@@ -1,2 +0,2 @@ | ||
const { SecretsGetter } = require(".."); | ||
const SecretsGetter = require("../src/SecretsGetter"); | ||
@@ -3,0 +3,0 @@ describe("Secrets Getter Tests", () => { |
{ | ||
"name": "@soinlabs/secrets", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"main": "index.js", | ||
@@ -11,3 +11,4 @@ "repository": "https://github.com/SoinLabs/secrets.git", | ||
"aws-sdk": "^2.918.0", | ||
"standard-error": "^1.1.0" | ||
"standard-error": "^1.1.0", | ||
"synchronized-promise": "^0.3.1" | ||
}, | ||
@@ -14,0 +15,0 @@ "keywords": [ |
const AWS = require("aws-sdk"); | ||
const StandardError = require("standard-error"); | ||
const sp = require("synchronized-promise"); | ||
class AmazonProvider { | ||
#secretManager; | ||
constructor(configOptions) { | ||
this.#secretManager = null; | ||
this.#configureSecretManager(configOptions); | ||
this.secretManager = null; | ||
this.configureSecretManager(configOptions); | ||
} | ||
#configureSecretManager(configOptions) { | ||
configureSecretManager(configOptions) { | ||
if (configOptions && configOptions.region) { | ||
this.#secretManager = new AWS.SecretsManager({ | ||
this.secretManager = new AWS.SecretsManager({ | ||
region: configOptions.region, | ||
}); | ||
this.#validateFile(); | ||
this.validateFile(); | ||
} else { | ||
@@ -25,3 +24,3 @@ throw new StandardError({ | ||
#validateFile() { | ||
validateFile() { | ||
AWS.config.getCredentials(function (err) { | ||
@@ -38,6 +37,6 @@ if (err) { | ||
async #getSecretById(SecretId) { | ||
if (this.#secretManager !== null) { | ||
return await new Promise((resolve, reject) => { | ||
this.#secretManager.getSecretValue({ SecretId }, (err, data) => { | ||
getSecretById(SecretId) { | ||
if (this.secretManager !== null) { | ||
return new Promise((resolve, reject) => { | ||
this.secretManager.getSecretValue({ SecretId }, (err, data) => { | ||
if (err) reject(err); | ||
@@ -55,6 +54,11 @@ else { | ||
async getSecret(key) { | ||
return await this.#getSecretById(key); | ||
return await this.getSecretById(key); | ||
} | ||
getSecretSync(key) { | ||
let getSecret = sp(this.getSecretById.bind(this)); | ||
return getSecret(key); | ||
} | ||
} | ||
module.exports = AmazonProvider; |
@@ -8,11 +8,11 @@ const AmazonProvider = require("./AmazonProvider"); | ||
constructor(providerName, configuration) { | ||
this.provider = this.#getProvider(providerName, configuration); | ||
this.provider = this.getProvider(providerName, configuration); | ||
} | ||
#getProvider(providerName, configuration) { | ||
const providerConstructor = this.#chooseProvider(providerName); | ||
getProvider(providerName, configuration) { | ||
const providerConstructor = this.chooseProvider(providerName); | ||
return providerConstructor(configuration); | ||
} | ||
#chooseProvider(providerName) { | ||
chooseProvider(providerName) { | ||
return (configuration) => { | ||
@@ -32,4 +32,8 @@ let provider = null; | ||
} | ||
getSecretSync(key) { | ||
return this.provider.getSecretSync(key); | ||
} | ||
} | ||
module.exports = SecretsGetter; |
4160
112
3
+ Addedsynchronized-promise@^0.3.1
+ Addedbindings@1.5.0(transitive)
+ Addeddeasync@0.1.29(transitive)
+ Addedfile-uri-to-path@1.0.0(transitive)
+ Addednode-addon-api@1.7.2(transitive)
+ Addedsynchronized-promise@0.3.1(transitive)