forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			136 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			136 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | /* | ||
|  |  * Copyright (C)2014-2020 Haxe Foundation | ||
|  |  * | ||
|  |  * Permission is hereby granted, free of charge, to any person obtaining a | ||
|  |  * copy of this software and associated documentation files (the "Software"), | ||
|  |  * to deal in the Software without restriction, including without limitation | ||
|  |  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
|  |  * and/or sell copies of the Software, and to permit persons to whom the | ||
|  |  * Software is furnished to do so, subject to the following conditions: | ||
|  |  * | ||
|  |  * The above copyright notice and this permission notice shall be included in | ||
|  |  * all copies or substantial portions of the Software. | ||
|  |  * | ||
|  |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
|  |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
|  |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
|  |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
|  |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
|  |  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
|  |  * DEALINGS IN THE SOFTWARE. | ||
|  |  */ | ||
|  | 
 | ||
|  | package js.node.repl; | ||
|  | 
 | ||
|  | import haxe.DynamicAccess; | ||
|  | import js.node.events.EventEmitter; | ||
|  | #if haxe4 | ||
|  | import js.lib.Error; | ||
|  | #else | ||
|  | import js.Error; | ||
|  | #end | ||
|  | 
 | ||
|  | /** | ||
|  | 	Enumeration of events emitted by the `REPLServer` objects. | ||
|  | **/ | ||
|  | @:enum abstract REPLServerEvent<T:haxe.Constraints.Function>(Event<T>) to Event<T> { | ||
|  | 	/** | ||
|  | 		The `'exit'` event is emitted when the REPL is exited either by receiving the `.exit` command as input, | ||
|  | 		the user pressing `<ctrl>-C` twice to signal `SIGINT`, or by pressing `<ctrl>-D` to signal 'end' on the input stream. | ||
|  | 		The listener callback is invoked without any arguments. | ||
|  | 
 | ||
|  | 		@see https://nodejs.org/api/repl.html#repl_event_exit | ||
|  | 	**/ | ||
|  | 	var Exit:REPLServerEvent<Void->Void> = "exit"; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		The `'reset'` event is emitted when the REPL's context is reset.
 | ||
|  | 		This occurs whenever the `.clear` command is received as input unless the REPL is using the default evaluator | ||
|  | 		and the `repl.REPLServer` instance was created with the `useGlobal` option set to `true`. | ||
|  | 		The listener callback will be called with a reference to the `context` object as the only argument. | ||
|  | 
 | ||
|  | 		@see https://nodejs.org/api/repl.html#repl_event_reset | ||
|  | 	**/ | ||
|  | 	#if haxe4 | ||
|  | 	var Reset:REPLServerEvent<(context:DynamicAccess<Dynamic>) -> Void> = "reset"; | ||
|  | 	#else | ||
|  | 	var Reset:REPLServerEvent<DynamicAccess<Dynamic>->Void> = "reset"; | ||
|  | 	#end | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  | 	Instances of `repl.REPLServer` are created using the `repl.start()` method and should not be created directly using | ||
|  | 	the JavaScript `new` keyword. | ||
|  | 
 | ||
|  | 	@see https://nodejs.org/api/repl.html#repl_class_replserver | ||
|  | **/ | ||
|  | @:jsRequire("repl", "REPLServer") | ||
|  | extern class REPLServer extends EventEmitter<REPLServer> { | ||
|  | 	/** | ||
|  | 		It is possible to expose a variable to the REPL explicitly by assigning it to the `context` object associated | ||
|  | 		with each `REPLServer`. | ||
|  | 
 | ||
|  | 		@see https://nodejs.org/api/repl.html#repl_global_and_local_scope | ||
|  | 	**/ | ||
|  | 	var context(default, null):DynamicAccess<Dynamic>; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		The `replServer.defineCommand()` method is used to add new `.`-prefixed commands to the REPL instance. | ||
|  | 
 | ||
|  | 		@see https://nodejs.org/api/repl.html#repl_replserver_definecommand_keyword_cmd | ||
|  | 	**/ | ||
|  | 	#if haxe4 | ||
|  | 	@:overload(function(keyword:String, cmd:(rest:String) -> Void):Void {}) | ||
|  | 	#else | ||
|  | 	@:overload(function(keyword:String, cmd:String->Void):Void {}) | ||
|  | 	#end | ||
|  | 	function defineCommand(keyword:String, cmd:REPLServerOptions):Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		The `replServer.displayPrompt()` method readies the REPL instance for input from the user, printing the | ||
|  | 		configured `prompt` to a new line in the `output` and resuming the `input` to accept new input. | ||
|  | 
 | ||
|  | 		@see https://nodejs.org/api/repl.html#repl_replserver_displayprompt_preservecursor | ||
|  | 	**/ | ||
|  | 	function displayPrompt(?preserveCursor:Bool):Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		The `replServer.clearBufferedCommand()` method clears any command that has been buffered but not yet executed. | ||
|  | 
 | ||
|  | 		@see https://nodejs.org/api/repl.html#repl_replserver_clearbufferedcommand | ||
|  | 	**/ | ||
|  | 	function clearBufferedCommand():Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Initializes a history log file for the REPL instance. | ||
|  | 
 | ||
|  | 		@see https://nodejs.org/api/repl.html#repl_replserver_setuphistory_historypath_callback | ||
|  | 	**/ | ||
|  | 	#if haxe4 | ||
|  | 	function setupHistory(historyPath:String, callback:(err:Null<Error>, repl:Null<REPLServer>) -> Void):Void; | ||
|  | 	#else | ||
|  | 	function setupHistory(historyPath:String, callback:Null<Error>->Null<REPLServer>->Void):Void; | ||
|  | 	#end | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  | 	Options object used by `REPLServer.defineCommand`. | ||
|  | 
 | ||
|  | 	@see https://nodejs.org/api/repl.html#repl_class_replserver | ||
|  | **/ | ||
|  | typedef REPLServerOptions = { | ||
|  | 	/** | ||
|  | 		Help text to be displayed when `.help` is entered. | ||
|  | 	**/ | ||
|  | 	@:optional var help:String; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		The function to execute. | ||
|  | 	**/ | ||
|  | 	#if haxe4 | ||
|  | 	var action:(rest:String) -> Void; | ||
|  | 	#else | ||
|  | 	var action:String->Void; | ||
|  | 	#end | ||
|  | } |