@bemedev/types
Version:
Type definitions for Bemedev projects
48 lines (46 loc) • 1.27 kB
JavaScript
const partialCall = (f, ...headArgs) => {
return (...tailArgs) => f(...headArgs, ...tailArgs);
};
function isPlainObject(value) {
return (Object.prototype.toString.call(value) == '[object Object]' &&
value.constructor &&
value.constructor.name == 'Object');
}
const _unknown = (value) => value;
const castFn = () => {
const _out = (extensions) => {
const out = expandFn((arg) => arg, {
...extensions,
forceCast: (arg) => {
return _unknown(arg);
},
dynamic: (arg) => {
return arg;
},
});
return out;
};
return _out;
};
const typeFn = () => {
const _out = (extensions) => {
const out = expandFn((_) => _unknown(), {
...extensions,
forceCast: (_) => _unknown(),
dynamic: (_) => _unknown(),
is: (_) => _unknown(),
type: _unknown(),
});
return out;
};
return _out;
};
const expandFn = (main, extensions) => {
const out = main;
if (extensions) {
Object.assign(out, extensions);
}
return out;
};
export { _unknown, castFn, expandFn, isPlainObject, partialCall, typeFn };
//# sourceMappingURL=utils.js.map