aws-param-env
Version:
Module for synchronously loading AWS SSM Parameter Store values into environment variables
61 lines (38 loc) • 1.19 kB
JavaScript
const awsParamStore = require( 'aws-param-store' );
function getName( param ) {
const nameParts = param.Name.split( '/' );
return nameParts[ nameParts.length - 1 ];
}
class EnvInitializer {
constructor( paramPath, options ) {
this._query = awsParamStore.newQuery( paramPath, options );
}
execute( processor = ( parameter ) => parameter ) {
const parameters = this._query.executeSync()
const results = {
added: [],
ignored: [],
conflict: []
};
for( let param of parameters ) {
let name = getName( param );
param = processor( param );
if( param ) {
// update
name = getName( param );
if( !process.env[ name ] ) {
process.env[ name ] = param.Value;
results.added.push( name );
}
else {
results.conflict.push( name );
}
}
else {
results.ignored.push( name );
}
}
return results;
}
}
module.exports = EnvInitializer;