@bemedev/types
Version:
Type definitions for Bemedev projects
55 lines (52 loc) • 1.39 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;
};
exports._unknown = _unknown;
exports.castFn = castFn;
exports.expandFn = expandFn;
exports.isPlainObject = isPlainObject;
exports.partialCall = partialCall;
exports.typeFn = typeFn;
//# sourceMappingURL=utils.cjs.map