@lifaon/path
Version:
Useful tool to manage paths like the URL object
32 lines • 1.17 kB
JavaScript
import { isAbsolutePathSegments, } from '../is/is-absolute-path-segments.js';
import { pushSegmentIntoMutablePathSegments } from '../mutate/push-segment-into-mutable-path-segments.js';
/**
* Joins many PathSegments
* - pretty close to convertUncheckedPathSegmentsIntoPathSegments(['a'].concat(['b']))
*/
export function joinManyPathSegments(paths, { strict = true, ...options }) {
const pathsLength = paths.length;
if (pathsLength === 0) {
throw new Error('Expected at least one path');
}
else {
const joined = paths[0].slice();
for (let i = 1; i < pathsLength; i++) {
const path = paths[i];
let j = 0;
if (isAbsolutePathSegments(path, options) && i > 0) {
if (strict) {
throw new Error('Only the first path can be absolute.');
}
else {
j = 1;
}
}
for (; j < path.length; j++) {
pushSegmentIntoMutablePathSegments(joined, path[j], options);
}
}
return joined;
}
}
//# sourceMappingURL=join-many-path-segments.js.map