You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							862 B
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							862 B
						
					
					
				'use strict'; | 
						|
 | 
						|
var isRelative = require('is-relative'); | 
						|
var isWindows = require('is-windows'); | 
						|
 | 
						|
/** | 
						|
 * Expose `isAbsolute` | 
						|
 */ | 
						|
 | 
						|
module.exports = isAbsolute; | 
						|
 | 
						|
/** | 
						|
 * Returns true if a file path is absolute. | 
						|
 * | 
						|
 * @param  {String} `fp` | 
						|
 * @return {Boolean} | 
						|
 */ | 
						|
 | 
						|
function isAbsolute(fp) { | 
						|
  if (typeof fp !== 'string') { | 
						|
    throw new TypeError('isAbsolute expects a string.'); | 
						|
  } | 
						|
  return isWindows() ? isAbsolute.win32(fp) : isAbsolute.posix(fp); | 
						|
} | 
						|
 | 
						|
/** | 
						|
 * Test posix paths. | 
						|
 */ | 
						|
 | 
						|
isAbsolute.posix = function posixPath(fp) { | 
						|
  return fp.charAt(0) === '/'; | 
						|
}; | 
						|
 | 
						|
/** | 
						|
 * Test windows paths. | 
						|
 */ | 
						|
 | 
						|
isAbsolute.win32 = function win32(fp) { | 
						|
  if (/[a-z]/i.test(fp.charAt(0)) && fp.charAt(1) === ':' && fp.charAt(2) === '\\') { | 
						|
    return true; | 
						|
  } | 
						|
  // Microsoft Azure absolute filepath | 
						|
  if (fp.slice(0, 2) === '\\\\') { | 
						|
    return true; | 
						|
  } | 
						|
  return !isRelative(fp); | 
						|
};
 | 
						|
 |