aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/async/uv.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-core/async/uv.lua')
-rw-r--r--lua/mason-core/async/uv.lua49
1 files changed, 49 insertions, 0 deletions
diff --git a/lua/mason-core/async/uv.lua b/lua/mason-core/async/uv.lua
new file mode 100644
index 00000000..f3d25b04
--- /dev/null
+++ b/lua/mason-core/async/uv.lua
@@ -0,0 +1,49 @@
+local a = require "mason-core.async"
+
+---@type table<UvMethod, async fun(...)>
+local M = setmetatable({}, {
+ __index = function(cache, method)
+ cache[method] = a.promisify(vim.loop[method], true)
+ return cache[method]
+ end,
+})
+
+return M
+
+---@alias UvMethod
+---| '"fs_close"'
+---| '"fs_open"'
+---| '"fs_read"'
+---| '"fs_unlink"'
+---| '"fs_write"'
+---| '"fs_mkdir"'
+---| '"fs_mkdtemp"'
+---| '"fs_mkstemp"'
+---| '"fs_rmdir"'
+---| '"fs_scandir"'
+---| '"fs_stat"'
+---| '"fs_fstat"'
+---| '"fs_lstat"'
+---| '"fs_rename"'
+---| '"fs_fsync"'
+---| '"fs_fdatasync"'
+---| '"fs_ftruncate"'
+---| '"fs_sendfile"'
+---| '"fs_access"'
+---| '"fs_chmod"'
+---| '"fs_fchmod"'
+---| '"fs_utime"'
+---| '"fs_futime"'
+---| '"fs_lutime"'
+---| '"fs_link"'
+---| '"fs_symlink"'
+---| '"fs_readlink"'
+---| '"fs_realpath"'
+---| '"fs_chown"'
+---| '"fs_fchown"'
+---| '"fs_lchown"'
+---| '"fs_copyfile"'
+---| '"fs_opendir"'
+---| '"fs_readdir"'
+---| '"fs_closedir"'
+---| '"fs_statfs"'