import { reverseString } from 'utils/string'; export function extractSubstring( input: string, start: number, length: number, multiLine: boolean, reverse: boolean ): string { if (!input) return ''; // edge Cases if (start <= 0) throw new Error('Start index must be greater than zero.'); if (length < 0) throw new Error('Length value must be greater than or equal to zero.'); if (length === 0) return ''; let array: string[]; let result: string[] = []; const extract = (str: string, start: number, length: number): string => { const end = start - 1 + length; if (start - 1 >= str.length) return ''; return str.substring(start - 1, Math.min(end, str.length)); }; if (!multiLine) { result.push(extract(input, start, length)); } else { array = input.split('\n'); for (const word of array) { result.push(extract(word, start, length)); } } result = reverse ? result.map((word) => reverseString(word)) : result; return result.join('\n'); }