Added custom config.js to e2e-environment package

This custom config.js provides all the functionality of the config package along with extending the `get` method to accept an optional second argument that will be used if the property is not found in the config file.
This commit is contained in:
jamelreid 2021-12-13 18:32:15 -05:00
parent 5f85a42057
commit ae2e004c0e
1 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,32 @@
/**
* External Dependencies
*/
const config = require( 'config' );
/**
* Since the 'config' object is not extensible, we create an empty 'e2eConfig' object and map
* its prototype to the 'config' object. This allows us to extend the new 'e2eConfig' object
* while still having access to all the data and methods of 'config'
*/
const e2eConfig = Object.create( config );
/**
*
* @param property { string } - the property to be fetched from the config file
* @param defaultValue { string | number | boolean | null } - default value if 'property' is not found
* @returns { string | number | boolean }
* @throws Error
*/
e2eConfig.get = ( property, defaultValue = null ) => {
if ( config.has( property ) ) {
return config.get( property );
} else if ( defaultValue ) {
return defaultValue;
}
throw new Error(
`Configuration property "${ property }" is not defined and no defaultValue has been provided`
);
};
module.exports = e2eConfig;