UNPKG

@visulima/string

Version:

Functions for manipulating strings.

49 lines (45 loc) 1.2 kB
'use strict'; const constants = require('./constants-nihvIvk5.cjs'); 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 (constants.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"); module.exports = joinSegments;