"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.composeRef = composeRef;
exports.default = void 0;
exports.fillRef = fillRef;
function createRef() {
  const func = node => {
    func.current = node;
  };
  return func;
}
function fillRef(ref, node) {
  if (typeof ref === 'function') {
    ref(node);
  } else if (typeof ref === 'object' && ref) {
    ref.value = node;
  }
}
/**
 * Merge refs into one ref function to support ref passing.
 */
function composeRef(...refs) {
  return node => {
    refs.forEach(ref => {
      fillRef(ref, node);
    });
  };
}
var _default = exports.default = createRef;