mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 11:38:14 +08:00
36 lines
613 B
JavaScript
36 lines
613 B
JavaScript
|
/**
|
||
|
* @import {IndentLines} from '../types.js'
|
||
|
*/
|
||
|
|
||
|
const eol = /\r?\n|\r/g
|
||
|
|
||
|
/**
|
||
|
* @type {IndentLines}
|
||
|
*/
|
||
|
export function indentLines(value, map) {
|
||
|
/** @type {Array<string>} */
|
||
|
const result = []
|
||
|
let start = 0
|
||
|
let line = 0
|
||
|
/** @type {RegExpExecArray | null} */
|
||
|
let match
|
||
|
|
||
|
while ((match = eol.exec(value))) {
|
||
|
one(value.slice(start, match.index))
|
||
|
result.push(match[0])
|
||
|
start = match.index + match[0].length
|
||
|
line++
|
||
|
}
|
||
|
|
||
|
one(value.slice(start))
|
||
|
|
||
|
return result.join('')
|
||
|
|
||
|
/**
|
||
|
* @param {string} value
|
||
|
*/
|
||
|
function one(value) {
|
||
|
result.push(map(value, line, !value))
|
||
|
}
|
||
|
}
|