81 lines
2.1 KiB
JavaScript
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
|
|
};
|
|
}());
|