/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

/**
 * Promise aware conditional function call
 *
 * @param {function} cb - The function to possibily call
 * @param {Promise} [what] - A boolean resolving promise
 * @returns {function} - function when called returns a Promise that resolves the argument it is called with
 */
export default function (cb, what) {
  return function (res) {
    return what.then(function (bool) {
      if (bool) {
        cb();
      }
      return res;
    });
  };
}
