Перейти к содержимому
Разделы
ЯзыкRUEN

v2.1Введение

Миграция с v1 на v2

Что сломалось между 1.x и 2.0, таблица переименований и чек-лист перехода.

Версия 2 меняет форму записи, API потоков и способ подключения. Логика разбора форматов осталась прежней, результаты на тех же данных совпадают, кроме перечисленного ниже.

Что изменилось#

v1v2Комментарий
sverlo.parser(opts)createParser(opts)Новое имя, те же параметры плюс новые
parser.parse(line, cb)parser.parseLine(line)Колбэк убран, результат возвращается
rec.time (строка)rec.ts (Date)Теперь настоящий объект даты
rec.severity ('WARN')rec.level ('warn')Нижний регистр, нормализация
rec.messagerec.msg
rec.datarec.fieldsОбъект без прототипа
sverlo.createStream(opts)createTransform(opts)См. API потоков
require('sverlo')import { createParser } from 'sverlo'Только ESM

Поведение#

  • Нераспознанная строка раньше вызывала колбэк с ошибкой, теперь по умолчанию пропускается. Верните прежнее поведение через onError: 'throw'.
  • Время без зоны в v1 считалось UTC, в v2 — локальным временем процесса. Если вы полагались на старое поведение, задайте timezone: 'UTC'.
  • Фильтры в v1 были функциями-предикатами. В v2 их можно писать запросом, а функции по-прежнему работают.

Чек-лист#

  • Заменить require на import или динамический import().
  • Переименовать свойства записи по таблице выше.
  • Задать timezone явно.
  • Заменить колбэки parse(line, cb) на parseLine(line).
  • Проверить, что никто не зависит от верхнего регистра уровней.
  • Обновить Node.js до версии 20 или новее.

Оба пакета рядом#

Для постепенного перехода установите v1 под другим именем:

bash
npm install sverlo1@npm:sverlo@1

Тогда import legacy from 'sverlo1' и import { createParser } from 'sverlo' работают в одном проекте. Старая документация осталась доступной в архиве v1.

Обновлено: