@enonic/js-utils
Version:
Enonic XP JavaScript Utils
32 lines (29 loc) • 785 B
JavaScript
// 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
};