shelving
Version:
Toolkit for using data in JavaScript.
14 lines (13 loc) • 536 B
JavaScript
import { isArrayEqual } from "../util/equal.js";
import { getLazy } from "../util/lazy.js";
import { useInternals } from "./useInternals.js";
export function useLazy(value, ...args) {
const internals = useInternals();
// Update `internals` if `args` changes.
if (internals.args === undefined || !isArrayEqual(args, internals.args)) {
internals.value = getLazy(value, ...args);
internals.args = args;
}
// biome-ignore lint/style/noNonNullAssertion: We know this is set.
return internals.value;
}