KnexNest
Takes a Knex.js select query object and hydarates a list of nested objects using the NestHydration npm module.
This can be simply accomplished without this library by doing
return knex ;
However Postgres limits column names to 63 characters and this becomes a problem when trying to nest objects several deep using NestHydration. A column name such as _activeUser_purchases__product_originalManufacturer_logoSmall_url
would be too long and would cause nasty behavior. This module handles this problem by mapping long names to shorter ones and then returning them with a structPropToColumnMap object passed to NestHydration.
Example Usage
var Knex = ;var knexnest = ; var knex = ; var sql = knex ;;/* result should be like:[ {id: '1', title: 'Tabular to Objects', teacher: {id: '1', name: 'David'}, lesson: [ {id: '1', title: 'Defintions'}, {id: '2', title: 'Table Data'}, {id: '3', title: 'Objects'} ]}, {id: '2', title: 'Column Names Define Structure', teacher: {id: '2', name: 'Chris'}, lesson: [ {id: '4', title: 'Column Names'}, {id: '2', title: 'Table Data'}, {id: '3', title: 'Objects'} ]}, {id: '3', title: 'Object On Bottom', teacher: {id: '1', name: 'David'}, lesson: [ {id: '5', title: 'Non Array Input'}, ]}]*/
Related Projects
- NestHydrationJS : The base project