diff options
Diffstat (limited to 'lua/mason-core/functional/init.lua')
| -rw-r--r-- | lua/mason-core/functional/init.lua | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/lua/mason-core/functional/init.lua b/lua/mason-core/functional/init.lua index 97865f05..8d17a572 100644 --- a/lua/mason-core/functional/init.lua +++ b/lua/mason-core/functional/init.lua @@ -1,13 +1,23 @@ local _ = {} +local function lazy_require(module) + return setmetatable({}, { + __index = function(m, k) + return function(...) + return require(module)[k](...) + end + end, + }) +end + -- data -local data = require "mason-core.functional.data" +local data = lazy_require "mason-core.functional.data" _.table_pack = data.table_pack _.enum = data.enum _.set_of = data.set_of -- function -local fun = require "mason-core.functional.function" +local fun = lazy_require "mason-core.functional.function" _.curryN = fun.curryN _.compose = fun.compose _.partial = fun.partial @@ -19,7 +29,7 @@ _.memoize = fun.memoize _.lazy = fun.lazy -- list -local list = require "mason-core.functional.list" +local list = lazy_require "mason-core.functional.list" _.reverse = list.reverse _.list_not_nil = list.list_not_nil _.list_copy = list.list_copy @@ -42,13 +52,13 @@ _.uniq_by = list.uniq_by _.join = list.join -- relation -local relation = require "mason-core.functional.relation" +local relation = lazy_require "mason-core.functional.relation" _.equals = relation.equals _.prop_eq = relation.prop_eq _.prop_satisfies = relation.prop_satisfies -- logic -local logic = require "mason-core.functional.logic" +local logic = lazy_require "mason-core.functional.logic" _.all_pass = logic.all_pass _.any_pass = logic.any_pass _.if_else = logic.if_else @@ -57,7 +67,7 @@ _.complement = logic.complement _.cond = logic.cond -- number -local number = require "mason-core.functional.number" +local number = lazy_require "mason-core.functional.number" _.negate = number.negate _.gt = number.gt _.gte = number.gte @@ -67,7 +77,7 @@ _.inc = number.inc _.dec = number.dec -- string -local string = require "mason-core.functional.string" +local string = lazy_require "mason-core.functional.string" _.matches = string.matches _.format = string.format _.split = string.split @@ -77,7 +87,7 @@ _.dedent = string.dedent _.starts_with = string.starts_with -- table -local tbl = require "mason-core.functional.table" +local tbl = lazy_require "mason-core.functional.table" _.prop = tbl.prop _.pick = tbl.pick _.keys = tbl.keys @@ -86,7 +96,7 @@ _.to_pairs = tbl.to_pairs _.invert = tbl.invert -- type -local typ = require "mason-core.functional.type" +local typ = lazy_require "mason-core.functional.type" _.is_nil = typ.is_nil _.is = typ.is |
