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;
 | 
						||
}
 |