Introducing a new NodeJS ORM

Guillaume Daix
2 min readNov 8, 2020

I know, it’s a bad idea to introduce a new tool when existing ones are already in place. BUT, let me introduce you Ilorm, and let me explain you why Ilorm is different and provide new features compared to existing NodeJS’s ORM.

Some core philosophies driving Ilorm;

  • Use of modern javascript: Ilorm is built upon last features of Node and Javascript. Ilorm supports from Node 10.x and above.
  • Easy to overload: Ilorm uses class, you can easily create your own plugin and change the behavior of the ORM or add features.
  • Ilorm provides ways to write clean code: All code you will write with Ilorm will seem crystal clear. The Query Builder allows you to create queries which could easily be understood by almost everyone.
  • Ilorm protects you from making mistake. For example, Query builder does not allow you to target a non-existent field.
  • Data agnostic: Ilorm could work with any source of data. Currently, I implement support for knex and MongoDB. But in the future, I plan to support DynamoDB, Spreadsheet, API…

I have a bit of your interest? Let me show you some examples of what it looks like;

Cool no?

As you see in this example, Ilorm has four core concepts;

  • Schema: To define what our data look like.
  • Model: To manipulate your data. Models are bound with a Schema and a Connector.
  • Query: To fetch mode instance. Queries are instantiated from models.
  • Connector: To define your database.

Why Ilorm? Because I do not have any name in mind when I started working on this project. Ilorm means I love ORM, a short name and easy to remind.

I wrote this article because I think it’s time to be helped on this project. If you are interested, you could help me by;

  • Giving feedback (on this blog post) or on Github.
  • Use Ilorm in your project. Find bugs, give feedback on the API, make it evolve!
  • Contribute! I really search to find contributors and at some point, co-maintainers. You can contribute by implementing a connector, a plugin, fixing bugs, adding documentation, or take one of the tasks in the backlog! It is a very big project, there is room for contributions!

Official website (documentation, example…)

Ilorm on github

--

--