(text: string, tokens: string[], end?: number)
| 116 | } |
| 117 | |
| 118 | export const getSeparatedContent = (text: string, tokens: string[], end?: number): string[] => { |
| 119 | if (!tokens || !tokens.length) { |
| 120 | return null; |
| 121 | } |
| 122 | let match = false; |
| 123 | const separate = (str: string, [token, ...restTokens]: string[]): string[] => { |
| 124 | if (!token) { |
| 125 | return [str]; |
| 126 | } |
| 127 | const list = str.split(token); |
| 128 | match = match || list.length > 1; |
| 129 | return list |
| 130 | .reduce((prevList, unitStr) => [...prevList, ...separate(unitStr, restTokens)], []) |
| 131 | .filter(Boolean); |
| 132 | }; |
| 133 | const list = separate(text, tokens); |
| 134 | if (match) { |
| 135 | return typeof end !== 'undefined' ? list.slice(0, end) : list; |
| 136 | } else { |
| 137 | return null; |
| 138 | } |
| 139 | }; |
no test coverage detected
searching dependent graphs…