@bianic-ui/utils
Version:
Common utilties and types for Bianic UI
59 lines (53 loc) • 1.36 kB
JavaScript
import memoize from "memoize-one";
import { isFunction, __DEV__ } from "./assertion";
export function runIfFn(valueOrFn) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;
}
export function callAllHandlers() {
for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
fns[_key2] = arguments[_key2];
}
return function (event) {
fns.some(fn => {
fn && fn(event);
return event && event.defaultPrevented;
});
};
}
export { memoize };
export function once(fn) {
var result;
return function () {
if (fn) {
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
result = fn.apply(this, args);
fn = null;
}
return result;
};
}
export var noop = () => {};
export var warn = once(options => {
var {
condition,
message
} = options;
if (condition && __DEV__) {
console.warn(message);
}
});
export var error = once(options => {
var {
condition,
message
} = options;
if (condition && __DEV__) {
console.error(message);
}
});
//# sourceMappingURL=function.js.map