From 5a11d740e119d392858b97b69470201e66e66212 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Fri, 7 Jun 2024 22:49:06 +0200 Subject: [PATCH] feat(util): added LazyVim.memoize --- lua/lazyvim/util/init.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lua/lazyvim/util/init.lua b/lua/lazyvim/util/init.lua index e23f9dfd..d8f485ed 100644 --- a/lua/lazyvim/util/init.lua +++ b/lua/lazyvim/util/init.lua @@ -268,4 +268,17 @@ for _, level in ipairs({ "info", "warn", "error" }) do end end +local cache = {} ---@type table +---@generic T: fun() +---@param fn T +---@return T +function M.memoize(fn) + return function(...) + local key = vim.inspect({ ... }) + if cache[key] == nil then + cache[key] = fn(...) + end + return cache[key] + end +end return M