lasso
Version:
Lasso.js is a build tool and runtime library for building and bundling all of the resources needed by a web application
44 lines (38 loc) • 1.95 kB
JavaScript
// Copyright Joyent, Inc. and other Node contributors.
//
// 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.
// The following code was adapted from: https://github.com/joyent/node/blob/master/lib/path.js
// Older versions of Node.js do not export isAbsolute() so we added it here
function absUnix (p) {
return p.charAt(0) === '/' || p === '';
}
function absWin (p) {
if (absUnix(p)) return true;
// pull off the device/UNC bit from a windows path.
// from node's lib/path.js
const splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
const result = splitDeviceRe.exec(p);
const device = result[1] || '';
const isUnc = device && device.charAt(1) !== ':';
const isAbsolute = !!result[2] || isUnc; // UNC paths are always absolute
return isAbsolute;
}
const isAbsolute = process.platform === 'win32' ? absWin : absUnix;
exports.isAbsolute = isAbsolute;