import { KV, KvQuery, ObjectQuery, ObjectValue } from "$sb/types.ts"; import { invokeFunction } from "$sb/silverbullet-syscall/system.ts"; import { ttlCache } from "$sb/lib/memory_cache.ts"; export function indexObjects( page: string, objects: ObjectValue[], ): Promise { return invokeFunction("index.indexObjects", page, objects); } export function batchSet(page: string, kvs: KV[]): Promise { return invokeFunction("index.batchSet", page, kvs); } export function query( query: KvQuery, ): Promise { return invokeFunction("index.query", query); } export function queryObjects( tag: string, query: ObjectQuery, ttlSecs?: number, ): Promise[]> { return ttlCache( query, () => invokeFunction("index.queryObjects", tag, query), ttlSecs, // no-op when undefined ); } export function getObjectByRef( page: string, tag: string, ref: string, ): Promise { return invokeFunction("index.getObjectByRef", page, tag, ref); }