/**
 * Retourne si un objet est de type `Promesse` (c'est-à-dire s'il possède une méthode `then`).
 *
 * @param {Objet} valeur
 *         Un objet qui peut ou non être de type `Promesse`.
 *
 * @return {boolean}
 *         Si l'objet est de type `Promesse` ou non.
 */
export function isPromise(value) {
  return value !== undefined && value !== null && typeof value.then === 'function' ;
}

/**
 * Faire taire un objet de type Promesse.
 *
 * Cela permet d'éviter les "uncaught", qui ne sont pas nuisibles, mais qui peuvent prêter à confusion
 * les messages d'erreur de rejet de "play promise".
 *
 * @param {Objet} valeur
 *         Un objet qui peut ou non être de type `Promesse`.
 */
export function silencePromise(value) {
  if (isPromise(value)) {
    value.then(null, (e) => {}) ;
  }
}