import isArray from './isArray.mjs';
import isKey from './_isKey.mjs';
import stringToPath from './_stringToPath.mjs';
import toString from './toString.mjs';

/**
 * Casts `value` to a path array if it's not one.
 *
 * @private
 * @param {*} value The value to inspect.
 * @param {Object} [object] The object to query keys on.
 * @returns {Array} Returns the cast property path array.
 */
function castPath(value, object) {
  if (isArray(value)) {
    return value;
  }
  return isKey(value, object) ? [value] : stringToPath(toString(value));
}

export { castPath as default };
