1/**
2 * This method invokes `interceptor` and returns `value`. The interceptor
3 * is invoked with one argument; (value). The purpose of this method is to
4 * "tap into" a method chain sequence in order to modify intermediate results.
5 *
6 * @static
7 * @memberOf _
8 * @since 0.1.0
9 * @category Seq
10 * @param {*} value The value to provide to `interceptor`.
11 * @param {Function} interceptor The function to invoke.
12 * @returns {*} Returns `value`.
13 * @example
14 *
15 * _([1, 2, 3])
16 *  .tap(function(array) {
17 *    // Mutate input array.
18 *    array.pop();
19 *  })
20 *  .reverse()
21 *  .value();
22 * // => [2, 1]
23 */
24function tap(value, interceptor) {
25  interceptor(value);
26  return value;
27}
28
29module.exports = tap;
30