"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.once = once; /** * Wraps a function so it is only executed once. Subsequent calls return the cached result. * * @param fn - The function to execute at most once * @returns A wrapper that lazily evaluates `fn` on first call and caches the result * * @example * ```ts * const getConfig = once(() => loadExpensiveConfig()) * getConfig() // loads config * getConfig() // returns cached result * ``` */ function once(fn) { let result = []; return () => { if (!result.length) { result = [fn()]; } return result[0]; }; } //# sourceMappingURL=once.js.map