API Reference / @evolu/common / Evolu/Public / kysely / jsonBuildObject

Function: jsonBuildObject()

function jsonBuildObject<O>(obj): RawBuilder<Simplify<{ [K in string | number | symbol]: O[K] extends Expression<V> ? V : never }>>;

Defined in: packages/common/src/Evolu/PublicKysely.ts:177

The SQLite json_object function.

Examples

import { kysely } from "@evolu/common";

// TODO: Update for Evolu
const result = await db
  .selectFrom("person")
  .select((eb) => [
    "id",
    kysely
      .jsonBuildObject({
        first: eb.ref("first_name"),
        last: eb.ref("last_name"),
        full: kysely.sql<string>`first_name || ' ' || last_name`,
      })
      .as("name"),
  ])
  .execute();

result[0]?.id;
result[0]?.name.first;
result[0]?.name.last;
result[0]?.name.full;

The generated SQL (SQLite):

select "id", json_object(
  'first', first_name,
  'last', last_name,
  'full', "first_name" || ' ' || "last_name"
) as "name"
from "person"

Type Parameters

Type Parameter
O extends Record<string, Expression<unknown>>

Parameters

ParameterType
objO

Returns

RawBuilder<Simplify<{ [K in string | number | symbol]: O[K] extends Expression<V> ? V : never }>>

Was this page helpful?