diff --git a/src/index.ts b/src/index.ts index c75ee6c..f9c8f3e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,9 @@ -import { GetParameterCommand, GetParametersCommand, ParameterNotFound, SSMClient } from '@aws-sdk/client-ssm'; +import { + GetParameterCommand, + GetParametersCommand, + ParameterNotFound, + SSMClient, +} from "@aws-sdk/client-ssm"; function chunk(array: T[], chunkSize: number): Array { const arrays: Array = []; @@ -34,32 +39,36 @@ class SSMParameterStore> { this.ssm = ssm; this.parameterNamesToKeys = parameterNamesToKeys; for (const key of Object.values(parameterNamesToKeys)) { - this.parameterKeysToValues[key] = ''; + this.parameterKeysToValues[key] = ""; this.keyLoaded[key] = false; } } private async fetchOne(key: string) { try { - const ssmResponse = await this.ssm.send(new GetParameterCommand({ Name: key, WithDecryption: true })); + const ssmResponse = await this.ssm.send( + new GetParameterCommand({ Name: key, WithDecryption: true }) + ); return ssmResponse.Parameter!.Value!; } catch (err) { if (err instanceof ParameterNotFound) { - return ''; + return ""; } throw err; } } private async fetchTen(keys: string[]) { - const ssmResponse = await this.ssm.send(new GetParametersCommand({ Names: keys, WithDecryption: true })); + const ssmResponse = await this.ssm.send( + new GetParametersCommand({ Names: keys, WithDecryption: true }) + ); const responseKeysToValues: Record = {}; for (const parameter of ssmResponse.Parameters!) { responseKeysToValues[parameter.Name!] = parameter.Value!; } - return keys.map((key) => responseKeysToValues[key] || ''); + return keys.map((key) => responseKeysToValues[key] || ""); } private async loadAll() { @@ -79,16 +88,28 @@ class SSMParameterStore> { } async preload(options: Options = { ignoreCache: false }) { - if (options.ignoreCache || Object.values(this.keyLoaded).some((keyLoadedState) => keyLoadedState === false)) { + if ( + options.ignoreCache || + Object.values(this.keyLoaded).some( + (keyLoadedState) => keyLoadedState === false + ) + ) { return this.loadAll(); } } - async get(name: keyof TParameters, options: Options = { ignoreCache: false }) { + async get( + name: keyof TParameters, + options: Options = { ignoreCache: false } + ) { const key = this.parameterNamesToKeys[name]; if (!key) { - throw new Error(`Unknown parameter ${String(name)}. Not in new SSMParameterStore({ }) declaration`); + throw new Error( + `Unknown parameter ${String( + name + )}. Not in new SSMParameterStore({ }) declaration` + ); } if (options.ignoreCache || !this.keyLoaded[key]) { diff --git a/test.js b/test.js index dc8c3ea..eac278d 100644 --- a/test.js +++ b/test.js @@ -1,16 +1,16 @@ -const { SSMClient } = require('@aws-sdk/client-ssm'); -const SsmParameterStore = require('./src'); +const { SSMClient } = require("@aws-sdk/client-ssm"); +const SsmParameterStore = require("./src"); async function main() { - const params = new SsmParameterStore(new SSMClient({ region: 'us-east-1' }), { - TestParameter: 'test_parameter', - TestNestedParameter: '/this/is/a/test/nested/parameter', - NonExistentParameter: 'doesntexist', + const params = new SsmParameterStore(new SSMClient({ region: "us-east-1" }), { + TestParameter: "test_parameter", + TestNestedParameter: "/this/is/a/test/nested/parameter", + NonExistentParameter: "doesntexist", }); - console.log(await params.get('NonExistentParameter')); - console.log(await params.get('TestNestedParameter')); - console.log(await params.get('TestNestedParameter', { ignoreCache: true })); + console.log(await params.get("NonExistentParameter")); + console.log(await params.get("TestNestedParameter")); + console.log(await params.get("TestNestedParameter", { ignoreCache: true })); console.log(await params.getAll()); @@ -18,7 +18,7 @@ async function main() { console.log(await params.preload()); - console.log(await params.get('UndeclaredParameter')); + console.log(await params.get("UndeclaredParameter")); } main();