v2.1Введение
Миграция с v1 на v2
Что сломалось между 1.x и 2.0, таблица переименований и чек-лист перехода.
Версия 2 меняет форму записи, API потоков и способ подключения. Логика разбора форматов осталась прежней, результаты на тех же данных совпадают, кроме перечисленного ниже.
Что изменилось#
| v1 | v2 | Комментарий |
|---|---|---|
sverlo.parser(opts) | createParser(opts) | Новое имя, те же параметры плюс новые |
parser.parse(line, cb) | parser.parseLine(line) | Колбэк убран, результат возвращается |
rec.time (строка) | rec.ts (Date) | Теперь настоящий объект даты |
rec.severity ('WARN') | rec.level ('warn') | Нижний регистр, нормализация |
rec.message | rec.msg | |
rec.data | rec.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 под другим именем:
npm install sverlo1@npm:sverlo@1Тогда import legacy from 'sverlo1' и import { createParser } from 'sverlo' работают в одном проекте. Старая документация осталась доступной в архиве v1.