This commit is contained in:
Dante
2026-05-21 23:40:20 -07:00
parent 3e2915dff7
commit 877a69d844
5737 changed files with 29796 additions and 1589684 deletions

View File

@ -27,11 +27,15 @@ import lua.Result;
@:luaRequire("luv")
extern class FileSystem {
static final constants:Table<String,Int>;
@:native("fs_close")
@:overload(function(file:FileDescriptor, cb:String->Bool->Void):Request {})
static function close(file:FileDescriptor):Result<Bool>;
@:native("fs_open")
@:overload(function(path:String, flags:Int, mode:Int):Result<FileDescriptor> {})
@:overload(function(path:String, flags:Int, mode:Int, ?cb:String->FileDescriptor->Void):Request {})
@:overload(function(path:String, flags:Open, mode:Int, ?cb:String->FileDescriptor->Void):Request {})
static function open(path:String, flags:Open, mode:Int):Result<FileDescriptor>;
@ -40,20 +44,24 @@ extern class FileSystem {
static function read(file:FileDescriptor, len:Int, offset:Int):Result<String>;
@:native("fs_unlink")
@:overload(function(file:FileDescriptor, ?cb:String->String->Void):Request {})
static function unlink(file:FileDescriptor, content:String):Result<String>;
@:overload(function(file:String, ?cb:String->Bool->Void):Request {})
static function unlink(file:String, content:String):Result<Bool>;
@:native("fs_write")
@:overload(function(file:FileDescriptor, content:String, offset:Int, ?cb:String->Bool->Void):Int {})
static function write(file:FileDescriptor, content:String, offset:Int):Result<Bool>;
@:overload(function(file:FileDescriptor, content:String, offset:Int, ?cb:String->Int->Void):Int {})
static function write(file:FileDescriptor, content:String, offset:Int):Result<Int>;
@:native("fs_mkdir")
@:overload(function(path:String, mode:Int, cb:String->Bool->Void):Request {})
static function mkdir(path:String, mode:Int):Result<Bool>;
@:native("fs_mkdtemp")
@:overload(function(data:String, cb:String->Bool->Void):Request {})
static function mkdtemp(data:String):Result<Bool>;
@:overload(function(template:String, cb:String->String->Void):Request {})
static function mkdtemp(template:String):Result<String>;
@:native("fs_mkstemp")
@:overload(function(template:String, cb:String->FileDescriptor->String->Void):Request {})
static function mkstemp(template:String):Result<FileDescriptor>;
@:native("fs_rmdir")
@:overload(function(path:String, cb:String->Bool->Void):Request {})
@ -146,23 +154,27 @@ extern class FileSystem {
Not available on windows
**/
@:native("fs_lchown")
@:overload(function(descriptor:FileDescriptor, uid:Int, gid:Int, cb:String->Bool->Void):Request {})
static function lchown(descriptor:FileDescriptor, uid:Int, gid:Int):Bool;
@:overload(function(descriptor:String, uid:Int, gid:Int, cb:String->Bool->Void):Request {})
static function lchown(descriptor:String, uid:Int, gid:Int):Bool;
@:native("fs_copyfile")
@:overload(function(path:String, newPath:String, flags:Null<CopyFlags>, cb:String->Bool->Void):Request {})
static function copyfile(path:String, newPath:String, ?flags:CopyFlags):Bool;
@:native("fs_statfs")
@:overload(function(path:String, cb:StatFs->Bool->Void):Request {})
static function statfs(path:String):StatFs;
@:native("fs_opendir")
@:overload(function(path:String, cb:Handle->Bool->Void):Request {})
@:overload(function(path:String, cb:String->Handle->Void, ?entries:Int):Request {})
static function opendir(path:String):Handle;
@:native("fs_readdir")
@:overload(function(dir:Handle, cb:Table<Int, NameType>->Bool->Void):Request {})
static function readdir(path:String):Table<Int, NameType>;
@:overload(function(dir:Handle, cb:String->Table<Int, NameType>->Void):Request {})
static function readdir(path:Handle):Table<Int, NameType>;
@:native("fs_closedir")
@:overload(function(dir:Handle, cb:Bool->Void):Request {})
@:overload(function(dir:Handle, cb:String->Bool->Void):Request {})
static function closedir(dir:Handle):Bool;
}
@ -213,3 +225,24 @@ typedef StatFs = {
files:Int,
ffree:Int
}
typedef CopyFlags = {
?excl:Bool,
?ficlone:Bool,
?ficlone_force:Bool
}
enum abstract AccessMode(Int) to Int {
// from libuv sources
/* Test for read permission. */
var R_OK = 4;
/* Test for write permission. */
var W_OK = 2;
/* Test for execute permission. */
var X_OK = 1;
/* Test for existence. */
var F_OK = 0;
@:op(A | B) function or(b:AccessMode):Int;
}