import { both, curryN } from 'ramda'; import isNotNull from './isNotNull'; import isOfTypeObject from './internal/isOfTypeObject'; /* eslint-disable max-len */ /** * Checks if value is object-like. A value is object-like if it's not null and has a typeof result of "object". * * @func isObjLike * @aliases isObjectLike * @memberOf RA * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0} * @category Type * @sig * -> Boolean * @param {*} val The value to test * @return {boolean} * @see {@link RA.isNotObjLike|isNotObjLike}, {@link RA.isObj|isObj}, {@link RA.isPlainObj|isPlainObj} * @example * * RA.isObjLike({}); //=> true * RA.isObjLike([]); //=> true * RA.isObjLike(() => {}); //=> false * RA.isObjLike(null); //=> false * RA.isObjLike(undefined); //=> false */ /* eslint-enable max-len */ const isObjLike = curryN(1, both(isNotNull, isOfTypeObject)); export default isObjLike;