You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
549 B
JavaScript
17 lines
549 B
JavaScript
/**
|
|
* Removes event handlers from the given object.
|
|
* A field is considered an event handler if it is a function with a name beginning with `on`.
|
|
*
|
|
* @param object Object to remove event handlers from.
|
|
* @returns Object with event handlers removed.
|
|
*/
|
|
export function omitEventHandlers(object) {
|
|
if (object === undefined) {
|
|
return {};
|
|
}
|
|
const result = {};
|
|
Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {
|
|
result[prop] = object[prop];
|
|
});
|
|
return result;
|
|
} |