Convert SQL rows to js objects

Usage no npm install needed!

<script type="module">
  import argile from '';



Convert SQL rows to js object(s).


npm install --save argile

How does it work ?



The figure above pesents a simple database. We want to retrieve all the posts.

SQL request

The following request returns all the data in the database.

    author.username, AS "idTag",
  FROM post
  INNER JOIN author ON = post.author_id
  LEFT JOIN post_tag ON post_tag.post_id =
  LEFT JOIN tag ON = post_tag.tag_id
  ORDER BY, tag.label

Construct the JS result

Now, to convert the SQL result to JS objects, we design an object that will be the returned result.
Here, we want to construct by post, an array of tags and an user object.

A string represents the SQL key that will match the correponding return js object property.
The * character tags the SQL string as a primary key. It is imperative to define a primary key for sub arrays.

    id    : 'id',
    title : 'title',
    author : {
      username : 'username'
    tags : [{
      id    : '*idTag',
      label : 'label'


  var argile = require('argile');

  var res = argile.convert(SQLrows, {
    id    : 'id',
    title : 'title',
    author : {
      username : 'username'
    tags : [{
      id    : 'idTag',
      label : 'label'

We assume SQLrows is an array of JS objects constructed from the SQL request.

The conversion keeps the SQL order defined in the SQL request.


The module has only one function argile.convert(SQLrows, constructedResult).

  • {Array} SQLrows
  • {Object} constructedResult

It returns an Array