API reference › @evolu/common › local‑first/Query › evoluJsonArrayFrom
function evoluJsonArrayFrom<O>(
expr: SelectQueryBuilderExpression<O>,
): RawBuilder<Simplify<O>[]>;
Defined in: packages/common/src/local-first/Query.ts:115
An improved Evolu version of Kysely's SQLite jsonArrayFrom helper.
Kysely's ParseJSONResultsPlugin heuristically parses any result string that
looks like JSON. Evolu instead prefixes JSON produced by these helpers with a
per-runtime identifier and only parses values carrying that prefix, avoiding
accidental parsing of ordinary string columns that merely happen to start
with { or [.
Example
import { evoluJsonArrayFrom } from "@evolu/common";
const result = await db
.selectFrom("person")
.select((eb) => [
"id",
evoluJsonArrayFrom(
eb
.selectFrom("pet")
.select(["pet.id as pet_id", "pet.name"])
.whereRef("pet.owner_id", "=", "person.id")
.orderBy("pet.name"),
).as("pets"),
])
.execute();
result[0]?.id;
result[0]?.pets[0].pet_id;
result[0]?.pets[0].name;