import prop from "./prop"; import curry2 from "../function/curry2"; import pipe from "../function/pipe"; import id from "../function/identity"; import propSatisfies from "./propSatisfies"; import all from "../list/all"; import map from "../list/map"; import keys from "./keys"; /** * Checks if all of the condition functions in the spec object pass. * * @param {object} specObject * @param {object} testObject * @returns {boolean} */ const where = (specObject, testObject) => pipe( keys, map((key) => propSatisfies(prop(key, specObject), key, testObject)), all(id) )(specObject); export default curry2(where);