intern
Version:
Intern. A next-generation code testing stack for JavaScript.
71 lines • 2.54 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizePathEnding = exports.normalize = exports.join = exports.getPathSep = exports.dirname = void 0;
function dirname(path) {
var sep = getPathSep(path);
var parts = normalize(path).split('/');
parts.pop();
if (parts.length === 1 && parts[0] === '') {
return sep;
}
return parts.join(sep);
}
exports.dirname = dirname;
function getPathSep() {
var paths = [];
for (var _i = 0; _i < arguments.length; _i++) {
paths[_i] = arguments[_i];
}
return paths.some(function (path) { return /\\/.test(path); }) ? '\\' : '/';
}
exports.getPathSep = getPathSep;
function join() {
var paths = [];
for (var _i = 0; _i < arguments.length; _i++) {
paths[_i] = arguments[_i];
}
var sep = getPathSep.apply(void 0, paths);
var normalPaths = paths.map(normalize);
var basePathParts = normalPaths[0].split('/');
if (basePathParts.length > 1 &&
basePathParts[basePathParts.length - 1] === '') {
basePathParts.pop();
}
for (var _a = 0, _b = normalPaths.slice(1); _a < _b.length; _a++) {
var path = _b[_a];
for (var _c = 0, _d = path.split('/'); _c < _d.length; _c++) {
var part = _d[_c];
if (part === '..') {
basePathParts.pop();
}
else if (part !== '.') {
basePathParts.push(part);
}
}
}
return basePathParts.join(sep);
}
exports.join = join;
function normalize(path) {
return path.replace(/\\/g, '/');
}
exports.normalize = normalize;
function normalizePathEnding(path, pathSep) {
if (pathSep === void 0) { pathSep = '/'; }
if (path && path.length > 0 && path[path.length - 1] !== pathSep) {
return "" + path + pathSep;
}
return path;
}
exports.normalizePathEnding = normalizePathEnding;
});
//# sourceMappingURL=path.js.map