import type { PutInput } from "upend/types"; import { query as queryFn } from "../lib/entity"; import api from "../lib/api"; export function baseSearch(query: string) { return queryFn( `(or (matches (contains "${query}") ? ?) (matches ? (contains "${query}") ?) (matches ? ? (contains "${query}")))` ); } export function baseSearchOnce(query: string) { return api.query( `(or (matches (contains "${query}") ? ?) (matches ? (contains "${query}") ?) (matches ? ? (contains "${query}")))` ); } export async function createLabelled(label: string) { let body: PutInput; if (label.match("^[\\w]+://[\\w]")) { body = { entity: { t: "Url", c: label, }, }; } else { body = { attribute: "LBL", value: { t: "String", c: label, }, }; } try { const [_, entry] = await api.putEntry(body); return entry; } catch (error) { throw new Error(`Failed to create object: ${error}`); } }