TypeORM 1.0 добрался до релиза почти через десять лет после старта проекта в 2016 году. Для экосистемы Node.js это не просто смена цифры в версии: популярная ORM наконец выходит из затянувшегося pre-1.0, обновляет техническую базу и дает разработчикам понятный сигнал, что проект снова кто-то всерьез поддерживает.
Событие само по себе символическое, но за ним есть и практическая часть. Как пишет InfoQ, за 2025 год команда выпустила восемь патч-релизов, смержила 575 pull request против 63 годом ранее и закрыла больше 2300 issues. При этом библиотека держится на уровне почти 2 млн загрузок в неделю. Для тех, кто живет в production, это, пожалуй, важнее красивого номера версии: если ORM годами выглядела как проект в режиме полураспада, теперь у нее снова есть признаки нормального жизненного цикла.
Главное техническое изменение в TypeORM 1.0 довольно прямолинейное: проект поднял минимальную планку платформы. Библиотека теперь компилируется в ECMAScript 2023, а минимально поддерживаемой версией стал Node.js 20. Node 16 и 18 больше не поддерживаются. Заодно команда вычистила старые и тяжелые зависимости: клиент mysql заменили на mysql2, sqlite3 уступил место better-sqlite3, а хеширование перенесли на нативный модуль crypto. Для части команд это будет означать не только обновление пакетов, но и честный пересмотр рантайма на серверах, CI-конфигураций и контейнерных образов. Если у вас сервис все еще цепляется за Node 18, релиз вряд ли получится проглотить без подготовки.
Набор новых возможностей выглядит не как попытка устроить маркетинговый фейерверк, а как инвентаризация реальных болей. В InsertQueryBuilder появился метод valuesFromSelect(), который позволяет запускать сценарии вида INSERT INTO ... SELECT FROM ... без самодельных обходов. Методы update() и upsert() получили опцию returning для баз данных, где поддерживается RETURNING. QueryRunner теперь работает с синтаксисом await using для автоматической очистки ресурсов. Все это не переворачивает ORM-рынок, но закрывает те неловкие места, где разработчики раньше были вынуждены спускаться ниже уровня абстракции и писать ручной SQL или служебный код.
Отдельно команда прошлась по безопасности и предсказуемости поведения. В schema introspection и DDL теперь используются параметризованные запросы и экранирование идентификаторов во всех драйверах. Добавлена runtime-проверка условий orderBy, а для .limit() включены более строгие проверки. Важная, пусть и не самая заметная перемена: некорректные значения в where больше не игнорируются молча, а приводят к ошибке. Для одних проектов это лишний шум при апгрейде, для других шанс поймать баги, которые годами жили тихо и выглядели как “странное поведение ORM”. С точки зрения эксплуатации это скорее плюс: лучше падать явно, чем делать вид, что запрос отработал нормально.
Миграцию постарались не превратить в квест с чтением десятков issue. Для перехода выпустили codemod, который умеет автоматически обновлять импорты, переименования API, синтаксис find options и зависимости. Есть и dry-run режим для предварительной проверки изменений. Но полностью без ручной работы не обойдется: из публичного API убирают alias Connection в пользу DataSource, исчезают findByIds и findOneById, а проектам на NestJS стоит перейти как минимум на @nestjs/typeorm 11.0.1. То есть история здесь типичная для зрелого open source: сначала вам обещают удобный апгрейд, потом вы все равно идете смотреть diff и тесты. Просто в этот раз хотя бы есть ощущение, что авторы релиза это понимают.
Самая интересная часть истории даже не в списке изменений, а в том, как рынок считывает сам факт выхода 1.0. У TypeORM давно была репутация инструмента, который живет по инерции: широко используется, но слишком долго топчется до “настоящего” релиза. На Reddit и Hacker News годами обсуждали, не заброшен ли проект. После смены мейнтейнеров в конце 2024 года команда, похоже, решила отвечать не обещаниями, а скоростью работы. Поэтому цифра 1.0 здесь важна как маркер доверия. Для тимлидов и архитекторов это означает, что TypeORM снова можно рассматривать не как наследство, которое страшно трогать, а как активно поддерживаемый компонент стека.
При этом конкурентная среда стала только плотнее. Prisma продолжает давить качеством developer experience и свежими архитектурными обновлениями, Drizzle уверенно закрепился у команд, которым ближе SQL-first подход и edge-сценарии. На этом фоне ниша TypeORM выглядит довольно земной: существующие кодовые базы, enterprise-паттерны, нетривиальные СУБД и команды, которым нужна ORM без радикальной смены привычек. Библиотека поддерживает широкий набор систем, от PostgreSQL и MySQL до Oracle Database, SAP HANA, MongoDB и Google Cloud Spanner, и именно эта всеядность остается ее сильной стороной. Вопрос не в том, станет ли она снова модной, а в том, сможет ли TypeORM 1.0 превратить возобновившуюся поддержку в длинную серию предсказуемых релизов, а не в разовый жест для успокоения сообщества. Подробности релиза собраны в материале .