Open gajus opened 5 years ago
This should also throw an error if keys are duplicate.
Maybe it's worth to make it more flexible by adding a formatter which formats the rows before returning them?
e.g.:
const formatter = rows =>
rows.reduce(
(obj, value) => {
obj[value.id] = value
return obj
},
{}
)
const dictionary = await connection.any(
sql`
SELECT fuid, id
FROM cinema_foreign_seat_type
WHERE cinema_id = ${cinemaId}
`,
formatter
);
And giving a few formatter for few standard use cases like these { id: row }
transformation or the more specialised use case if { firstColumn: secondColumn }
transformation.
The reason this has remained an open issue is because it feels like an overly specialised feature, that likely better belongs in an abstraction such as https://github.com/gajus/slonik-utilities
I find myself often repeating this pattern:
I think this pattern appears often enough to mandate for a convenience method
dictionary
, i.e.