@visulima/string
Version:
Functions for manipulating strings.
47 lines (44 loc) • 1.19 kB
JavaScript
import { R as RE_FAST_ANSI } from './constants-CKNmLDBQ.mjs';
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
const joinSegments = /* @__PURE__ */ __name((segments, joiner) => {
const { length } = segments;
if (length === 0) {
return "";
}
if (length === 1) {
return segments[0];
}
const result = [];
let ansiStart = "";
let currentContent = "";
for (let index = 0; index < length; index++) {
const segment = segments[index];
if (RE_FAST_ANSI.test(segment)) {
if (ansiStart) {
result.push(ansiStart + currentContent + segment);
ansiStart = "";
currentContent = "";
} else {
if (result.length > 0) {
result.push(joiner);
}
ansiStart = segment;
}
continue;
}
if (ansiStart) {
if (currentContent) {
currentContent += joiner;
}
currentContent += segment;
} else {
if (result.length > 0) {
result.push(joiner);
}
result.push(segment);
}
}
return result.join("");
}, "joinSegments");
export { joinSegments as default };