UNPKG

astx

Version:

super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring

22 lines (18 loc) 2.6 kB
import { diffLines } from 'diff' export default function omitBlankLineChanges(oldStr, newStr) { const changes = diffLines(oldStr, newStr, { newlineIsToken: true, }) const result = [] let lastChange for (const c of changes) { if (c.removed ? !/\S/.test(c.value) : /\S/.test(c.value) || !c.added) { let { value } = c if (c.added && lastChange && !lastChange.added) value = value.replace(/^\n+/, '') result.push(value) } lastChange = c } return result.join('') } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWZmTGluZXMiLCJvbWl0QmxhbmtMaW5lQ2hhbmdlcyIsIm9sZFN0ciIsIm5ld1N0ciIsImNoYW5nZXMiLCJuZXdsaW5lSXNUb2tlbiIsInJlc3VsdCIsImxhc3RDaGFuZ2UiLCJjIiwicmVtb3ZlZCIsInRlc3QiLCJ2YWx1ZSIsImFkZGVkIiwicmVwbGFjZSIsInB1c2giLCJqb2luIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvb21pdEJsYW5rTGluZUNoYW5nZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlmZkxpbmVzIH0gZnJvbSAnZGlmZidcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEJsYW5rTGluZUNoYW5nZXMoXG4gIG9sZFN0cjogc3RyaW5nLFxuICBuZXdTdHI6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgY2hhbmdlcyA9IGRpZmZMaW5lcyhvbGRTdHIsIG5ld1N0ciwgeyBuZXdsaW5lSXNUb2tlbjogdHJ1ZSB9KVxuICBjb25zdCByZXN1bHQgPSBbXVxuICBsZXQgbGFzdENoYW5nZVxuICBmb3IgKGNvbnN0IGMgb2YgY2hhbmdlcykge1xuICAgIGlmIChjLnJlbW92ZWQgPyAhL1xcUy8udGVzdChjLnZhbHVlKSA6IC9cXFMvLnRlc3QoYy52YWx1ZSkgfHwgIWMuYWRkZWQpIHtcbiAgICAgIGxldCB7IHZhbHVlIH0gPSBjXG4gICAgICBpZiAoYy5hZGRlZCAmJiBsYXN0Q2hhbmdlICYmICFsYXN0Q2hhbmdlLmFkZGVkKVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL15cXG4rLywgJycpXG4gICAgICByZXN1bHQucHVzaCh2YWx1ZSlcbiAgICB9XG4gICAgbGFzdENoYW5nZSA9IGNcbiAgfVxuICByZXR1cm4gcmVzdWx0LmpvaW4oJycpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVQsUUFBMEIsTUFBMUI7O0FBRUEsZUFBZSxTQUFTQyxvQkFBVDtBQUNiQyxNQURhO0FBRWJDLE1BRmE7QUFHTDtFQUNSLE1BQU1DLE9BQU8sR0FBR0osU0FBUyxDQUFDRSxNQUFELEVBQVNDLE1BQVQsRUFBaUIsRUFBRUUsY0FBYyxFQUFFLElBQWxCLEVBQWpCLENBQXpCO0VBQ0EsTUFBTUMsTUFBTSxHQUFHLEVBQWY7RUFDQSxJQUFJQyxVQUFKO0VBQ0EsS0FBSyxNQUFNQyxDQUFYLElBQWdCSixPQUFoQixFQUF5QjtJQUN2QixJQUFJSSxDQUFDLENBQUNDLE9BQUYsR0FBWSxDQUFDLEtBQUtDLElBQUwsQ0FBVUYsQ0FBQyxDQUFDRyxLQUFaLENBQWIsR0FBa0MsS0FBS0QsSUFBTCxDQUFVRixDQUFDLENBQUNHLEtBQVosS0FBc0IsQ0FBQ0gsQ0FBQyxDQUFDSSxLQUEvRCxFQUFzRTtNQUNwRSxJQUFJLEVBQUVELEtBQUYsS0FBWUgsQ0FBaEI7TUFDQSxJQUFJQSxDQUFDLENBQUNJLEtBQUYsSUFBV0wsVUFBWCxJQUF5QixDQUFDQSxVQUFVLENBQUNLLEtBQXpDO01BQ0VELEtBQUssR0FBR0EsS0FBSyxDQUFDRSxPQUFOLENBQWMsTUFBZCxFQUFzQixFQUF0QixDQUFSO01BQ0ZQLE1BQU0sQ0FBQ1EsSUFBUCxDQUFZSCxLQUFaO0lBQ0Q7SUFDREosVUFBVSxHQUFHQyxDQUFiO0VBQ0Q7RUFDRCxPQUFPRixNQUFNLENBQUNTLElBQVAsQ0FBWSxFQUFaLENBQVA7QUFDRCJ9