forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			263 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			263 lines
		
	
	
		
			9.8 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.console; | |||
|  | 
 | |||
|  | import haxe.extern.EitherType; | |||
|  | import haxe.extern.Rest; | |||
|  | import js.node.stream.Writable; | |||
|  | 
 | |||
|  | /** | |||
|  | 	The `Console` class can be used to create a simple logger with configurable output streams | |||
|  | 	and can be accessed using either `require('console').Console` or `console.Console` (or their destructured counterparts): | |||
|  | 
 | |||
|  | 	@see https://nodejs.org/api/console.html#console_class_console | |||
|  | **/ | |||
|  | @:jsRequire("console", "Console") | |||
|  | extern class Console { | |||
|  | 	/** | |||
|  | 		Creates a new `Console` with one or two writable stream instances. `stdout` is a writable stream to print log or info output. | |||
|  | 		`stderr` is used for warning or error output. If `stderr` is not provided, `stdout` is used for stderr. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_new_console_stdout_stderr_ignoreerrors | |||
|  | 	**/ | |||
|  | 	@:overload(function(options:ConsoleOptions):Void {}) | |||
|  | 	function new(stdout:IWritable, ?stderr:IWritable, ?ignoreerrors:Bool):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		A simple assertion test that verifies whether `value` is truthy. If it is not, `Assertion` failed is logged. | |||
|  | 		If provided, the error `message` is formatted using `util.format()` by passing along all message arguments. The output is used as the error message. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_assert_value_message | |||
|  | 	**/ | |||
|  | 	function assert(value:Dynamic, message:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		When `stdout` is a TTY, calling `console.clear()` will attempt to clear the TTY. When `stdout` is not a TTY, this method does nothing. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_clear | |||
|  | 	**/ | |||
|  | 	function clear():Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Maintains an internal counter specific to `label` and outputs to `stdout` the number of times `console.count()` has been called with the given `label`. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_count_label | |||
|  | 	**/ | |||
|  | 	function count(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Resets the internal counter specific to `label`. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_countreset_label | |||
|  | 	**/ | |||
|  | 	function countReset(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		The `console.debug()` function is an alias for `console.log()`. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_debug_data_args | |||
|  | 	**/ | |||
|  | 	function debug(data:Dynamic, args:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Uses util.inspect() on `obj` and prints the resulting string to `stdout`. This function bypasses any custom `inspect()` function defined on `obj`. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_dir_obj_options | |||
|  | 	**/ | |||
|  | 	function dir(obj:Dynamic, ?options:Util.InspectOptionsBase):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		This method calls `console.log()` passing it the arguments received. This method does not produce any XML formatting. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_dirxml_data | |||
|  | 	**/ | |||
|  | 	function dirxml(data:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Prints to `stderr` with newline. Multiple arguments can be passed, | |||
|  | 		with the first used as the primary message and all additional used as substitution values similar to printf(3) | |||
|  | 		(the arguments are all passed to util.format()). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_error_data_args | |||
|  | 	**/ | |||
|  | 	function error(data:Dynamic, args:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		If one or more `label`s are provided, those are printed first without the additional indentation. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_group_label | |||
|  | 	**/ | |||
|  | 	function group(label:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		An alias for console.group(). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_groupcollapsed | |||
|  | 	**/ | |||
|  | 	function groupCollapsed():Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Decreases indentation of subsequent lines by two spaces. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_groupend | |||
|  | 	**/ | |||
|  | 	function groupEnd():Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		The `console.info()` function is an alias for console.log(). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_info_data_args | |||
|  | 	**/ | |||
|  | 	function info(data:Dynamic, args:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Prints to `stdout` with newline. Multiple arguments can be passed, | |||
|  | 		with the first used as the primary message and all additional used as substitution values similar to printf(3) | |||
|  | 		(the arguments are all passed to util.format()). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_log_data_args | |||
|  | 	**/ | |||
|  | 	function log(data:Dynamic, args:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Try to construct a table with the columns of the properties of `tabularData` (or use `properties`) | |||
|  | 		and rows of `tabularData` and log it. Falls back to just logging the argument if it can’t be parsed as tabular. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_table_tabulardata_properties | |||
|  | 	**/ | |||
|  | 	function table(tabularData:Dynamic, ?properties:Array<String>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Starts a timer that can be used to compute the duration of an operation. Timers are identified by a unique `label`. | |||
|  | 		Use the same `label` when calling console.timeEnd() to stop the timer and output the elapsed time in milliseconds to `stdout`. | |||
|  | 		Timer durations are accurate to the sub-millisecond. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_time_label | |||
|  | 	**/ | |||
|  | 	function time(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Stops a timer that was previously started by calling console.time() and prints the result to `stdout`: | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_timeend_label | |||
|  | 	**/ | |||
|  | 	function timeEnd(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		For a timer that was previously started by calling console.time(), prints the elapsed time and other `data` arguments to `stdout`: | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_timelog_label_data | |||
|  | 	**/ | |||
|  | 	function timeLog(?label:String, data:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Prints to `stderr` the string `'Trace: '`, followed by the util.format() formatted message and stack trace to the current position in the code. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_trace_message_args | |||
|  | 	**/ | |||
|  | 	function trace(message:Dynamic, args:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		The `console.warn()` function is an alias for console.error(). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_warn_data_args | |||
|  | 	**/ | |||
|  | 	function warn(data:Dynamic, args:Rest<Dynamic>):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		This method does not display anything unless used in the inspector. The `console.markTimeline()` method is the deprecated form of console.timeStamp(). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_marktimeline_label | |||
|  | 	**/ | |||
|  | 	function markTimeline(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		This method does not display anything unless used in the inspector. | |||
|  | 		The `console.profile()` method starts a JavaScript CPU profile with an optional label until console.profileEnd() is called. | |||
|  | 		The profile is then added to the Profile panel of the inspector. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_profile_label | |||
|  | 	**/ | |||
|  | 	function profile(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		This method does not display anything unless used in the inspector. | |||
|  | 		Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector. | |||
|  | 		See console.profile() for an example. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_profileend_label | |||
|  | 	**/ | |||
|  | 	function profileEnd(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		This method does not display anything unless used in the inspector. | |||
|  | 		The `console.timeStamp()` method adds an event with the label `'label'` to the Timeline panel of the inspector. | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_timestamp_label | |||
|  | 	**/ | |||
|  | 	function timeStamp(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		This method does not display anything unless used in the inspector. The `console.timeline()` method is the deprecated form of console.time(). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_timeline_label | |||
|  | 	**/ | |||
|  | 	function timeline(?label:String):Void; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		This method does not display anything unless used in the inspector. The `console.timelineEnd()` method is the deprecated form of console.timeEnd(). | |||
|  | 
 | |||
|  | 		@see https://nodejs.org/api/console.html#console_console_timelineend_label | |||
|  | 	**/ | |||
|  | 	function timelineEnd(?label:String):Void; | |||
|  | } | |||
|  | 
 | |||
|  | typedef ConsoleOptions = { | |||
|  | 	/** | |||
|  | 		`stdout` is a writable stream to print log or info output. | |||
|  | 	**/ | |||
|  | 	var stdout:IWritable; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		`stderr` is used for warning or error output. If stderr is not provided, stdout is used for stderr. | |||
|  | 	**/ | |||
|  | 	@optional var stderr:IWritable; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Ignore errors when writing to the underlying streams. Default: `true`. | |||
|  | 	**/ | |||
|  | 	@optional var ignoreErrors:Bool; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Set color support for this `Console` instance. Setting to `true` enables coloring while inspecting values, | |||
|  | 		setting to `'auto'` will make color support depend on the value of the `isTTY` property and the value returned by `getColorDepth()` on the respective stream. | |||
|  | 		 This option can not be used, if `inspectOptions.colors` is set as well. Default: `'auto'`. | |||
|  | 	**/ | |||
|  | 	@optional var colorMode:EitherType<Bool, String>; | |||
|  | 
 | |||
|  | 	/** | |||
|  | 		Specifies options that are passed along to util.inspect(). | |||
|  | 	**/ | |||
|  | 	@optional var inspectOptions:Util.InspectOptions; | |||
|  | } |