@nivinjoseph/n-data
Version:
Data access library for Postgres based on Knex
29 lines (21 loc) • 617 B
text/typescript
/* eslint-disable @typescript-eslint/no-unsafe-call */
import { given } from "@nivinjoseph/n-defensive";
// @ts-expect-error: no types
import Treeize from "treeize";
// public
export class QueryResult<T>
{
private readonly _rows: Array<T>;
public get rows(): ReadonlyArray<T> { return this._rows; }
public constructor(rows: Array<T>)
{
given(rows, "rows").ensureHasValue().ensureIsArray();
this._rows = rows;
}
public toObjectTree<U>(): Array<U>
{
const tree = new Treeize();
tree.grow(this._rows);
return tree.getData() as Array<U>;
}
}