1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- '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);
- };
|