Urara-Blog/node_modules/.pnpm-store/v3/files/7e/16b9cc2a251990698413cd4d7b2c3250b2c0a5bde2fcfe48c13be902297baea89931e55b755ef81ed4065c4231b08b455d702f77b88994e761f67320e99c7e
2022-08-14 01:14:53 +08:00

41 lines
723 B
Text

/**
* @callback Map
* @param {string} value
* @param {number} line
* @param {boolean} blank
* @returns {string}
*/
const eol = /\r?\n|\r/g
/**
* @param {string} value
* @param {Map} map
* @returns {string}
*/
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))
}
}