197 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			197 lines
		
	
	
		
			6.6 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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									The `path` module provides utilities for working with file and directory paths.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@see https://nodejs.org/api/path.html#path_path
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								@:jsRequire("path")
							 | 
						||
| 
								 | 
							
								extern class Path {
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.basename()` methods returns the last portion of a `path`, similar to the Unix `basename` command. Trailing directory separators are ignored, see path.sep.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_basename_path_ext
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function basename(path:String, ?ext:String):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Platform-specific path delimiter:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										`;` for Windows
							 | 
						||
| 
								 | 
							
										`:` for POSIX
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_delimiter
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static var delimiter(default, null):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.dirname()` method returns the directory name of a `path`, similar to the Unix `dirname` command. Trailing directory separators are ignored, see path.sep.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_dirname_path
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function dirname(path:String):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.extname()` method returns the extension of the `path`, from the last occurrence of the `.` (period) character to end of string in the last portion of the `path`.
							 | 
						||
| 
								 | 
							
										If there is no `.` in the last portion of the `path`, or if there are no `.` characters other than the first character of the basename of `path` (see `path.basename()`) ,
							 | 
						||
| 
								 | 
							
										an empty string is returned.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_extname_path
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function extname(path:String):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The path.format() method returns a path string from an object. This is the opposite of path.parse().
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_format_pathobject
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function format(pathObject:PathObject):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.isAbsolute()` method determines if `path` is an absolute path.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_isabsolute_path
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function isAbsolute(path:String):Bool;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.join()` method joins all given `path` segments together using the platform-specific separator as a delimiter, then normalizes the resulting path.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_join_paths
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function join(paths:haxe.extern.Rest<String>):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.normalize()` method normalizes the given `path`, resolving `'..'` and `'.'` segments.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_normalize_path
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function normalize(path:String):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.parse()` method returns an object whose properties represent significant elements of the `path`. Trailing directory separators are ignored, see path.sep.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_parse_path
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function parse(path:String):PathObject;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.posix` property provides access to POSIX specific implementations of the `path` methods.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_posix
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static var posix(default, null):PathModule;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.relative()` method returns the relative path from `from` to `to` based on the current working directory.
							 | 
						||
| 
								 | 
							
										If `from` and `to` each resolve to the same path (after calling path.resolve() on each), a zero-length string is returned.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_relative_from_to
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function relative(from:String, to:String):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The `path.resolve()` method resolves a sequence of paths or path segments into an absolute path.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_resolve_paths
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function resolve(paths:haxe.extern.Rest<String>):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Provides the platform-specific path segment separator:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										`\` on Windows
							 | 
						||
| 
								 | 
							
										`/` on POSIX
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_sep
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static var sep(default, null):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										On Windows systems only, returns an equivalent namespace-prefixed path for the given `path`. If `path` is not a string, `path` will be returned without modifications.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_tonamespacedpath_path
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function toNamespacedPath(path:String):String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										The path.win32 property provides access to Windows-specific implementations of the path methods.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										@see https://nodejs.org/api/path.html#path_path_win32
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static var win32(default, null):PathModule;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Path object returned from `Path.parse` and taken by `Path.format`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@see https://nodejs.org/api/path.html#path_path_format_pathobject
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								typedef PathObject = {
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										E.g. "C:\path\dir" for "C:\path\dir\index.html"
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var dir:String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										E.g. "C:\" for "C:\path\dir\index.html"
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var root:String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										E.g. "index.html" for "C:\path\dir\index.html"
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var base:String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										E.g. "index" for "C:\path\dir\index.html"
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var name:String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										E.g. ".html" for "C:\path\dir\index.html"
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									var ext:String;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// IMPORTANT: this structure should contain a set of fields
							 | 
						||
| 
								 | 
							
								// matching statics of the `Path` class and is used as a type
							 | 
						||
| 
								 | 
							
								// for `posix` and `win32` fields of `Path` class.
							 | 
						||
| 
								 | 
							
								// We should probably generate this from a macro, but let's keep
							 | 
						||
| 
								 | 
							
								// things simple for now.
							 | 
						||
| 
								 | 
							
								private typedef PathModule = {
							 | 
						||
| 
								 | 
							
									function normalize(path:String):String;
							 | 
						||
| 
								 | 
							
									function join(paths:haxe.extern.Rest<String>):String;
							 | 
						||
| 
								 | 
							
									function resolve(paths:haxe.extern.Rest<String>):String;
							 | 
						||
| 
								 | 
							
									function isAbsolute(path:String):Bool;
							 | 
						||
| 
								 | 
							
									function relative(from:String, to:String):String;
							 | 
						||
| 
								 | 
							
									function dirname(path:String):String;
							 | 
						||
| 
								 | 
							
									function basename(path:String, ?ext:String):String;
							 | 
						||
| 
								 | 
							
									function extname(path:String):String;
							 | 
						||
| 
								 | 
							
									var sep(default, null):String;
							 | 
						||
| 
								 | 
							
									var delimiter(default, null):String;
							 | 
						||
| 
								 | 
							
									function parse(pathString:String):PathObject;
							 | 
						||
| 
								 | 
							
									function format(pathObject:PathObject):String;
							 | 
						||
| 
								 | 
							
								}
							 |