mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
build(utils): build26 from 45504a2b
This commit is contained in:
Vendored
+24
@@ -0,0 +1,24 @@
|
||||
import { isNil } from "../predicate/predicate.js";
|
||||
//#region src/function/compose-callbacks.ts
|
||||
/**
|
||||
* Composes multiple callbacks into one. All callbacks receive same args, no return value.
|
||||
* Returns undefined if no callbacks provided.
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* const onSetup = composeCallbacks(base.onSetup, extension.onSetup);
|
||||
* onSetup?.(ctx); // Calls both if defined
|
||||
* ```
|
||||
*/
|
||||
function composeCallbacks(...fns) {
|
||||
const defined = fns.filter((fn) => !isNil(fn));
|
||||
if (defined.length === 0) return void 0;
|
||||
if (defined.length === 1) return defined[0];
|
||||
return ((...args) => {
|
||||
defined.forEach((fn) => fn(...args));
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
export { composeCallbacks };
|
||||
|
||||
//# sourceMappingURL=compose-callbacks.js.map
|
||||
Reference in New Issue
Block a user