function appendExtension(path, extension) { return path + "." + extension; } function appendForwardSlash(path) { return path.endsWith("/") ? path : path + "/"; } function prependForwardSlash(path) { return path[0] === "/" ? path : "/" + path; } function collapseDuplicateSlashes(path) { return path.replace(/(? { if (i === 0) { return removeTrailingForwardSlash(path); } else if (i === paths.length - 1) { return removeLeadingForwardSlash(path); } else { return trimSlashes(path); } }).join("/"); } function removeFileExtension(path) { let idx = path.lastIndexOf("."); return idx === -1 ? path : path.slice(0, idx); } function removeQueryString(path) { const index = path.lastIndexOf("?"); return index > 0 ? path.substring(0, index) : path; } function isRemotePath(src) { return /^(http|ftp|https|ws):?\/\//.test(src) || src.startsWith("data:"); } function slash(path) { return path.replace(/\\/g, "/"); } export { appendExtension, appendForwardSlash, collapseDuplicateSlashes, isRelativePath, isRemotePath, joinPaths, prependForwardSlash, removeFileExtension, removeLeadingForwardSlash, removeLeadingForwardSlashWindows, removeQueryString, removeTrailingForwardSlash, slash, startsWithDotDotSlash, startsWithDotSlash, startsWithForwardSlash, trimSlashes };