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.
		
		
		
		
		
			
		
			
				
					
					
						
							171 lines
						
					
					
						
							4.6 KiB
						
					
					
				
			
		
		
	
	
							171 lines
						
					
					
						
							4.6 KiB
						
					
					
				/** | 
						|
* 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.2.0 - Compiled on 2019-09-02 23:33:57 | 
						|
* 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.2.0'; // 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; | 
						|
  } | 
						|
} | 
						|
 | 
						|
; |