TypeORM chính thức ra mắt phiên bản 1.0 sau gần một thập kỷ, đánh dấu sự trở lại mạnh mẽ
TypeORM 1.0 đã được phát hành, mang đến bản cập nhật lớn đầu tiên kể từ năm 2016 với việc hiện đại hóa yêu cầu nền tảng, loại bỏ các API lỗi thời và củng cố bảo mật. Phiên bản này yêu cầu Node.js 20 trở lên và cho thấy dự án đang được bảo trì tích cực sau thời gian dài vắng bóng.

TypeORM chính thức ra mắt phiên bản 1.0 sau gần một thập kỷ, đánh dấu sự trở lại mạnh mẽ
Đội ngũ phát triển TypeORM đã chính thức ra mắt TypeORM 1.0, phiên bản chính (major release) đầu tiên của framework ORM này phổ biến cho TypeScript và JavaScript, đánh dấu việc dự án thoát khỏi trạng thái "pre-1.0" vốn kéo dài từ năm 2016 đến nay.
Bản phát hành này không chỉ là một bước đi mang tính biểu tượng mà còn mang đến những thay đổi mang tính chiến lược, loại bỏ các API đã bị đánh dấu lỗi thời (deprecated) từ lâu, hiện đại hóa các yêu cầu nền tảng và khắc phục hàng loạt lỗi bug tích lũy trong chu kỳ 0.3.x.
Hiện đại hóa nền tảng và yêu cầu hệ thống
Thay đổi nổi bật nhất trong TypeORM 1.0 là việc nâng cấp cơ sở mã (codebase). TypeORM hiện được biên dịch sang tiêu chuẩn ECMAScript 2023. Điều này đồng nghĩa với việc Node.js 20 giờ đây là phiên bản tối thiểu được hỗ trợ, trong khi các bản cũ hơn như Node.js 16 và 18 đã bị ngừng hỗ trợ.
Ngoài ra, dự án cũng đã loại bỏ một số thư viện phụ thuộc nặng nề để tối ưu hóa hiệu suất:
- Thay thế thư viện
mysqlcũ bằngmysql2. - Thay thế
sqlite3bằngbetter-sqlite3. - Chuyển đổi các thao tác băm (hashing) sang sử dụng module
cryptonative.
Các tính năng mới và cải tiến bảo mật
Phiên bản 1.0 tập trung vào khả năng xử lý dữ liệu thực tế với các cải tiến hấp dẫn cho lập trình viên:
- InsertQueryBuilder cải tiến: Giờ đây hỗ trợ thực thi lệnh
INSERT INTO ... SELECT FROM ...thông qua phương thức mớivaluesFromSelect(). - Hỗ trợ Returning: Các phương thức
update()vàupsert()giờ đây có tùy chọnreturningtrên các hệ cơ sở dữ liệu hỗ trợ mệnh đề RETURNING. - Cú pháp await using:
QueryRunnerhiện hỗ trợ cú phápawait usingđể dọn dẹp tài nguyên tự động.
Về mặt bảo mật, TypeORM 1.0 đã được củng cố mạnh mẽ. Các truy vấn tham số hóa (parameterised queries) và định danh được thoát (escaped identifiers) hiện được áp dụng trên tất cả các driver cho introspection schema và lệnh DDL. Đồng thời, runtime validation được áp dụng chặt chẽ hơn cho các điều kiện orderBy và phương thức .limit().
Di chuyển và nâng cấp (Migration)
Để hỗ trợ cộng đồng developer chuyển đổi sang phiên bản mới, đội ngũ phát triển đã cung cấp một công cụ codemod tự động. Công cụ này giúp cập nhật các câu lệnh import, đổi tên API, cú pháp find options và các phụ thuộc trực tiếp tại chỗ.
Người dùng có thể xem trước các thay đổi trước khi áp dụng bằng lệnh:
npx @typeorm/codemod v1 src/ --dry
Một số thay đổi thủ công quan trọng cần lưu ý trong hướng dẫn nâng cấp bao gồm:
- Loại bỏ alias
Connection, chuyển sang sử dụngDataSource. - Loại bỏ các phương thức
findByIdsvàfindOneById. - Thay đổi hành vi mặc định đối với các giá trị
wherekhông hợp lệ (thay vì bị âm thầm bỏ qua, giờ đây sẽ ném ra lỗi).
Người dùng NestJS sẽ không bị ảnh hưởng nhiều, tuy nhiên họ nên nâng cấp gói @nestjs/typeorm lên phiên bản v11.0.1 trở lên, việc mà codemod có thể thực hiện tự động.
Phản hồi của cộng đồng và vị thế trên thị trường
Sự ra mắt của phiên bản 1.0 đã mang lại tín hiệu tích cực cho cộng đồng. Trong nhiều năm qua, đã có nhiều lo ngại trên các diễn đàn như Reddit hay Hacker News về việc TypeORM có bị bỏ rơi hay không. Việc nhảy vọt lên phiên bản 1.0 được xem là lời khẳng định rõ ràng rằng việc bảo trì dự án đã đi vào quỹ đạo.
Trong bối cảnh thị trường ORM cho JavaScript/TypeScript đầy cạnh tranh với sự hiện diện của Prisma (vừa viết lại query engine ở phiên bản 7) và Drizzle (được đánh giá cao cho edge deployments), TypeORM vẫn giữ vững vị thế là lựa chọn tối ưu cho các mã nguồn hiện có, các mẫu thiết kế doanh nghiệp (enterprise patterns) và các hệ cơ sở dữ liệu đặc thù.
TypeORM là một dự án mã nguồn mã (open source) hỗ trợ cả mô hình Data Mapper và Active Record, tương thích với nhiều hệ cơ sở dữ liệu phổ biến như PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle, MongoDB, và Google Cloud Spanner.



