mirror of
https://github.com/twisterarmy/twister-react.git
synced 2025-02-04 11:04:19 +00:00
33 lines
635 B
JavaScript
Executable File
33 lines
635 B
JavaScript
Executable File
/**
|
|
* Safe chained function
|
|
*
|
|
* Will only create a new function if needed,
|
|
* otherwise will pass back existing functions or null.
|
|
*
|
|
* @param {function} one
|
|
* @param {function} two
|
|
* @returns {function|null}
|
|
*/
|
|
"use strict";
|
|
|
|
function createChainedFunction(one, two) {
|
|
var hasOne = typeof one === "function";
|
|
var hasTwo = typeof two === "function";
|
|
|
|
if (!hasOne && !hasTwo) {
|
|
return null;
|
|
}
|
|
if (!hasOne) {
|
|
return two;
|
|
}
|
|
if (!hasTwo) {
|
|
return one;
|
|
}
|
|
|
|
return function chainedFunction() {
|
|
one.apply(this, arguments);
|
|
two.apply(this, arguments);
|
|
};
|
|
}
|
|
|
|
module.exports = createChainedFunction; |