UNPKG

aws-ssm-parameter-store

Version:

This package resolve parameters from AWS SSM Parameter Store.

55 lines (54 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const aws_sdk_1 = require("aws-sdk"); /** * Extract the parameter needed * * @param result * @return {object} */ function extractParameters(parameters, result) { console.log('Invoke Extract Parameters, From Parameter Store Results '); const parameterStore = {}; (result.Parameters || []).forEach(parameter => { Object.entries(parameters).forEach(p => { if (p[1] === parameter.Name) { parameterStore[p[0]] = parameter.Value; } }); }); return parameterStore; } /** * Reuest parameters from aws parameter store * * @param parameters * @return {Promise} */ function requestParameters(parameters, configuration) { console.log('Invoke Request Parameter, From Parameter Store'); const ssm = new aws_sdk_1.SSM(configuration); const parametersKey = { Names: Object.values(parameters), WithDecryption: true }; return ssm.getParameters(parametersKey).promise(); } /** * Get parameters from parameter store * * @return {Promise<>} */ async function getParameterStore(parameters, configuration = { apiVersion: '2014-11-06' }) { console.log('Invoke Get Parameter, From Parameter Store'); try { const result = await requestParameters(parameters, configuration); console.log('Success when getting parameters from parameter store,'); return extractParameters(parameters, result); } catch (error) { console.log('Failed when getting parameters from parameter store,', error); throw { code: 400, message: 'An error occurred when getting parameter from parameter store' }; } } exports.getParameterStore = getParameterStore;