import { sample as sample$1 } from "../../array/sample.mjs"; import { toArray } from "../_internal/toArray.mjs"; import { isArrayLike } from "../predicate/isArrayLike.mjs"; //#region src/compat/array/sample.ts /** * The implementation for the overloaded sample function. * * This function takes an array, string, or object and returns a single element selected randomly. * If the input is empty, or if it's null or undefined, the function returns `undefined`. * * @template T - The type of elements in the collection. * @param {ArrayLike | Record} collection - The collection to sample from. * @returns {T | string | undefined} A random element from the collection, or `undefined` if the collection is empty or invalid. */ function sample(collection) { if (collection == null) return; if (isArrayLike(collection)) return sample$1(toArray(collection)); return sample$1(Object.values(collection)); } //#endregion export { sample };