UNPKG

@dossierhq/sqlite-core

Version:

A library used by concrete SQLite adapters for Dossier.

26 lines 1.34 kB
/// <reference types="./getEntities.d.ts" /> /* eslint-disable @typescript-eslint/no-unused-expressions */ import { ok } from '@dossierhq/core'; import { createSqliteSqlQuery, } from '@dossierhq/database-adapter'; import { queryMany } from '../QueryFunctions.js'; import { assertIsDefined } from '../utils/AssertUtils.js'; import { resolveAdminEntityInfo, resolveEntityFields } from '../utils/CodecUtils.js'; export async function adminEntityGetMultiple(database, context, references) { const { addValueList, query, sql } = createSqliteSqlQuery(); const uuids = addValueList(references.map((it) => it.id)); sql `SELECT e.uuid, e.type, e.name, e.auth_key, e.resolved_auth_key, e.created_at, e.updated_at, e.status, e.invalid, ev.version, ev.schema_version, ev.encode_version, ev.fields`; sql `FROM entities e, entity_versions ev WHERE e.uuid IN ${uuids} AND e.latest_entity_versions_id = ev.id`; const result = await queryMany(database, context, query); if (result.isError()) return result; return ok(result.value.map((row) => { assertIsDefined(row.uuid); return { ...resolveAdminEntityInfo(row), ...resolveEntityFields(row), id: row.uuid, resolvedAuthKey: row.resolved_auth_key, }; })); } //# sourceMappingURL=getEntities.js.map