| /** |
| * upath http://github.com/anodynos/upath/ |
| * |
| * A proxy to `path`, replacing `\` with `/` for all results & new methods to normalize & join keeping leading `./` and add, change, default, trim file extensions. |
| * Version 1.1.1 - Compiled on 2019-03-07 10:45:51 |
| * Repository git://github.com/anodynos/upath |
| * Copyright(c) 2019 Angelos Pikoulas <agelos.pikoulas@gmail.com> |
| * License MIT |
| */ |
| |
| // Generated by uRequire v0.7.0-beta.33 target: 'lib' template: 'nodejs' |
| |
| |
| var VERSION = '1.1.1'; // injected by urequire-rc-inject-version |
| |
| var extraFn, extraFunctions, isFunction, isString, isValidExt, name, path, propName, propValue, toUnix, upath, slice = [].slice, indexOf = [].indexOf || function (item) { |
| for (var i = 0, l = this.length; i < l; i++) { |
| if (i in this && this[i] === item) |
| return i; |
| } |
| return -1; |
| }, hasProp = {}.hasOwnProperty; |
| path = require("path"); |
| isFunction = function (val) { |
| return val instanceof Function; |
| }; |
| isString = function (val) { |
| return typeof val === "string" || !!val && typeof val === "object" && Object.prototype.toString.call(val) === "[object String]"; |
| }; |
| upath = exports; |
| upath.VERSION = typeof VERSION !== "undefined" && VERSION !== null ? VERSION : "NO-VERSION"; |
| toUnix = function (p) { |
| var double; |
| p = p.replace(/\\/g, "/"); |
| double = /\/\//; |
| while (p.match(double)) { |
| p = p.replace(double, "/"); |
| } |
| return p; |
| }; |
| for (propName in path) { |
| propValue = path[propName]; |
| if (isFunction(propValue)) { |
| upath[propName] = function (propName) { |
| return function () { |
| var args, result; |
| args = 1 <= arguments.length ? slice.call(arguments, 0) : []; |
| args = args.map(function (p) { |
| if (isString(p)) { |
| return toUnix(p); |
| } else { |
| return p; |
| } |
| }); |
| result = path[propName].apply(path, args); |
| if (isString(result)) { |
| return toUnix(result); |
| } else { |
| return result; |
| } |
| }; |
| }(propName); |
| } else { |
| upath[propName] = propValue; |
| } |
| } |
| upath.sep = "/"; |
| extraFunctions = { |
| toUnix: toUnix, |
| normalizeSafe: function (p) { |
| p = toUnix(p); |
| if (p.startsWith("./")) { |
| if (p.startsWith("./..") || p === "./") { |
| return upath.normalize(p); |
| } else { |
| return "./" + upath.normalize(p); |
| } |
| } else { |
| return upath.normalize(p); |
| } |
| }, |
| normalizeTrim: function (p) { |
| p = upath.normalizeSafe(p); |
| if (p.endsWith("/")) { |
| return p.slice(0, +(p.length - 2) + 1 || 9000000000); |
| } else { |
| return p; |
| } |
| }, |
| joinSafe: function () { |
| var p, result; |
| p = 1 <= arguments.length ? slice.call(arguments, 0) : []; |
| result = upath.join.apply(null, p); |
| if (p[0].startsWith("./") && !result.startsWith("./")) { |
| result = "./" + result; |
| } |
| return result; |
| }, |
| addExt: function (file, ext) { |
| if (!ext) { |
| return file; |
| } else { |
| if (ext[0] !== ".") { |
| ext = "." + ext; |
| } |
| return file + (file.endsWith(ext) ? "" : ext); |
| } |
| }, |
| trimExt: function (filename, ignoreExts, maxSize) { |
| var oldExt; |
| if (maxSize == null) { |
| maxSize = 7; |
| } |
| oldExt = upath.extname(filename); |
| if (isValidExt(oldExt, ignoreExts, maxSize)) { |
| return filename.slice(0, +(filename.length - oldExt.length - 1) + 1 || 9000000000); |
| } else { |
| return filename; |
| } |
| }, |
| removeExt: function (filename, ext) { |
| if (!ext) { |
| return filename; |
| } else { |
| ext = ext[0] === "." ? ext : "." + ext; |
| if (upath.extname(filename) === ext) { |
| return upath.trimExt(filename); |
| } else { |
| return filename; |
| } |
| } |
| }, |
| changeExt: function (filename, ext, ignoreExts, maxSize) { |
| if (maxSize == null) { |
| maxSize = 7; |
| } |
| return upath.trimExt(filename, ignoreExts, maxSize) + (!ext ? "" : ext[0] === "." ? ext : "." + ext); |
| }, |
| defaultExt: function (filename, ext, ignoreExts, maxSize) { |
| var oldExt; |
| if (maxSize == null) { |
| maxSize = 7; |
| } |
| oldExt = upath.extname(filename); |
| if (isValidExt(oldExt, ignoreExts, maxSize)) { |
| return filename; |
| } else { |
| return upath.addExt(filename, ext); |
| } |
| } |
| }; |
| isValidExt = function (ext, ignoreExts, maxSize) { |
| if (ignoreExts == null) { |
| ignoreExts = []; |
| } |
| return ext && ext.length <= maxSize && indexOf.call(ignoreExts.map(function (e) { |
| return (e && e[0] !== "." ? "." : "") + e; |
| }), ext) < 0; |
| }; |
| for (name in extraFunctions) { |
| if (!hasProp.call(extraFunctions, name)) |
| continue; |
| extraFn = extraFunctions[name]; |
| if (upath[name] !== void 0) { |
| throw new Error("path." + name + " already exists."); |
| } else { |
| upath[name] = extraFn; |
| } |
| } |
| |
| ; |