var pipeP = /*#__PURE__*/ require("./pipeP"); var reverse = /*#__PURE__*/ require("./reverse"); /** * Performs right-to-left composition of one or more Promise-returning * functions. The last arguments may have any arity; the remaining * arguments must be unary. * * @func * @memberOf R * @since v0.10.0 * @category Function * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z) * @param {...Function} functions The functions to compose * @return {Function} * @see R.pipeP * @deprecated since v0.26.0 * @example * * const db = { * users: { * JOE: { * name: 'Joe', * followers: ['STEVE', 'SUZY'] * } * } * } * * // We'll pretend to do a db lookup which returns a promise * const lookupUser = (userId) => Promise.resolve(db.users[userId]) * const lookupFollowers = (user) => Promise.resolve(user.followers) * lookupUser('JOE').then(lookupFollowers) * * // followersForUser :: String -> Promise [UserId] * const followersForUser = R.composeP(lookupFollowers, lookupUser); * followersForUser('JOE').then(followers => console.log('Followers:', followers)) * // Followers: ["STEVE","SUZY"] */ function composeP() { if (arguments.length === 0) { throw new Error('composeP requires at least one argument'); } return pipeP.apply(this, reverse(arguments)); } module.exports = composeP;