UNPKG

@lifaon/path

Version:

Useful tool to manage paths like the URL object

32 lines 1.17 kB
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