API Reference / @evolu/common / Evolu/Public / kysely / jsonObjectFrom
Function: jsonObjectFrom()
function jsonObjectFrom<O>(expr): RawBuilder<null | Simplify<O>>;
Defined in: packages/common/src/Evolu/PublicKysely.ts:127
A SQLite helper for turning a subquery into a JSON object.
The subquery must only return one row.
Examples
import { kysely } from "@evolu/common";
// TODO: Update for Evolu
const result = await db
.selectFrom("person")
.select((eb) => [
"id",
jsonObjectFrom(
eb
.selectFrom("pet")
.select(["pet.id as pet_id", "pet.name"])
.whereRef("pet.owner_id", "=", "person.id")
.where("pet.is_favorite", "=", true),
).as("favorite_pet"),
])
.execute();
result[0]?.id;
result[0]?.favorite_pet?.pet_id;
result[0]?.favorite_pet?.name;
The generated SQL (SQLite):
select "id", (
select json_object(
'pet_id', "obj"."pet_id",
'name', "obj"."name"
) from (
select "pet"."id" as "pet_id", "pet"."name"
from "pet"
where "pet"."owner_id" = "person"."id"
and "pet"."is_favorite" = ?
) as obj
) as "favorite_pet"
from "person";
Type Parameters
Type Parameter |
---|
O |
Parameters
Parameter | Type |
---|---|
expr | SelectQueryBuilderExpression <O > |
Returns
RawBuilder
<null
| Simplify
<O
>>