Files
pecklist/wwwroot/js/app.util.js
2018-06-28 23:08:13 +00:00

81 lines
2.1 KiB
JavaScript

/*
* app.util.js
* General JavaScript utilities
*
* Michael S. Mikowski - mmikowski at gmail dot com
* These are routines I have created, compiled, and updated
* since 1998, with inspiration from around the web.
*
* MIT License
*
*/
/*jslint browser : true, continue : true,
devel : true, indent : 2, maxerr : 50,
newcap : true, nomen : true, plusplus : true,
regexp : true, sloppy : true, vars : false,
white : true
*/
/*global $, app */
app.util = (function () {
var makeError, setConfigMap;
// Begin Public constructor /makeError/
// Purpose: a convenience wrapper to create an error object
// Arguments:
// * name_text - the error name
// * msg_text - long error message
// * data - optional data attached to error object
// Returns : newly constructed error object
// Throws : none
//
makeError = function ( name_text, msg_text, data ) {
var error = new Error();
error.name = name_text;
error.message = msg_text;
if ( data ){ error.data = data; }
return error;
};
// End Public constructor /makeError/
// Begin Public method /setConfigMap/
// Purpose: Common code to set configs in feature modules
// Arguments:
// * input_map - map of key-values to set in config
// * settable_map - map of allowable keys to set
// * config_map - map to apply settings to
// Returns: true
// Throws : Exception if input key not allowed
//
setConfigMap = function ( arg_map ){
var
input_map = arg_map.input_map,
settable_map = arg_map.settable_map,
config_map = arg_map.config_map,
key_name, error;
for ( key_name in input_map ){
if ( input_map.hasOwnProperty( key_name ) ){
if ( settable_map.hasOwnProperty( key_name ) ){
config_map[key_name] = input_map[key_name];
}
else {
error = makeError( 'Bad Input',
'Setting config key |' + key_name + '| is not supported'
);
throw error;
}
}
}
};
// End Public method /setConfigMap/
return {
makeError : makeError,
setConfigMap : setConfigMap
};
}());