1
1
mirror of https://github.com/kanaka/mal.git synced 2024-10-27 14:52:16 +03:00
mal/impls/haxe/Compat.hx
Joel Martin 99d3ce5464 haxe: fix core readline function: print prompt
Use the prompt provided as a parameter and not just "user> ".
2024-08-13 14:59:18 -05:00

71 lines
1.6 KiB
Haxe

#if js
@:native("console")
extern class Console {
public static function log(s:Dynamic):Void;
}
@:native("process")
extern class Process {
public static var argv(default,null):Array<String>;
public static function exit(code:Int):Void;
}
@:jsRequire("fs")
extern class FS {
static function readFileSync(filename:String,
options:{encoding:String}):String;
}
@:jsRequire("./node_readline")
extern class RL {
static function readline(prompt:String):Null<String>;
}
#end
class Compat {
public static function println(s:String) {
#if js
Console.log(s);
#else
Sys.println(s);
#end
}
public static function slurp(filename:String) {
#if js
return FS.readFileSync(filename, {encoding: "utf-8"});
#else
return sys.io.File.getContent(filename);
#end
}
public static function exit(code:Int) {
#if js
Process.exit(0);
#else
Sys.exit(0);
#end
}
public static function cmdline_args() {
#if js
return Process.argv.slice(2);
#else
return Sys.args();
#end
}
public static function readline(prompt:String) {
#if js
var line = RL.readline(prompt);
if (line == null) { throw new haxe.io.Eof(); }
#else
Sys.print(prompt);
var line = Sys.stdin().readLine();
#end
return line;
}
}