UNPKG

@enonic/js-utils

Version:
32 lines (29 loc) 785 B
// storage/indexing/path/join.ts function join(paths, separator = "/") { let parts = []; for (let i = 0; i < paths.length; i += 1) { parts = parts.concat(paths[i].split(separator)); } const newParts = []; for (let i = 0; i < parts.length; i += 1) { const part = parts[i]; if (!part || part === ".") continue; if (part === "..") newParts.pop(); else newParts.push(part); } if (parts[0] === "") newParts.unshift(""); return newParts.join(separator) || (newParts.length ? separator : "."); } // storage/indexing/path/dirname.ts function dirname(path, separator = "/") { return join([path, ".."], separator); } // storage/indexing/path/trimExt.ts function trimExt(s) { return s.replace(/\.[^/.]+$/, ""); } export { dirname, join, trimExt };