Skip to content

Commit d7d6fac

Browse files
committed
feat: lazy-load mods in init
1 parent d99c9d8 commit d7d6fac

1 file changed

Lines changed: 21 additions & 7 deletions

File tree

src/mods/init.lua

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
1-
return {
2-
List = require("mods.List"),
3-
Set = require("mods.Set"),
4-
str = require("mods.str"),
5-
stringcase = require("mods.stringcase"),
6-
tbl = require("mods.tbl"),
7-
}
1+
local mods = {}
2+
for _, name in ipairs({ "List", "Set", "str", "stringcase", "tbl" }) do
3+
mods[name] = "mods." .. name
4+
end
5+
6+
---@type mods
7+
---@diagnostic disable-next-line: missing-fields
8+
local M = {}
9+
10+
setmetatable(M, {
11+
__index = function(t, k)
12+
local mod = mods[k]
13+
if mod then
14+
local v = require(mod)
15+
rawset(t, k, v)
16+
return v
17+
end
18+
end,
19+
})
20+
21+
return M

0 commit comments

Comments
 (0)