---@brief [[ --- NOTE: This API is still under construction. --- It may change in the future :) ---@brief ]] local lookups = { uv = "plenary.async.uv_async", util = "plenary.async.util", lsp = "plenary.async.lsp", api = "plenary.async.api", tests = "plenary.async.tests", control = "plenary.async.control", } local exports = setmetatable(require "plenary.async.async", { __index = function(t, k) local require_path = lookups[k] if not require_path then return end local mod = require(require_path) t[k] = mod return mod end, }) exports.tests.add_globals = function() a = exports async = exports.async await = exports.await await_all = exports.await_all -- must prefix with a or stack overflow, plenary.test harness already added it a.describe = exports.tests.describe -- must prefix with a or stack overflow a.it = exports.tests.it a.before_each = exports.tests.before_each a.after_each = exports.tests.after_each end exports.tests.add_to_env = function() local env = getfenv(2) env.a = exports env.async = exports.async env.await = exports.await env.await_all = exports.await_all -- must prefix with a or stack overflow, plenary.test harness already added it env.a.describe = exports.tests.describe -- must prefix with a or stack overflow env.a.it = exports.tests.it a.before_each = exports.tests.before_each a.after_each = exports.tests.after_each setfenv(2, env) end return exports