@dossierhq/sqlite-core
Version:
A library used by concrete SQLite adapters for Dossier.
30 lines • 1.41 kB
JavaScript
/// <reference types="./searchEntities.d.ts" />
import { ok, } from '@dossierhq/core';
import { queryMany } from '../QueryFunctions.js';
import { searchAdminEntitiesQuery, } from '../search/QueryGenerator.js';
import { assertIsDefined } from '../utils/AssertUtils.js';
import { resolveAdminEntityInfo, resolveEntityFields } from '../utils/CodecUtils.js';
import { resolveConnectionPagingAndOrdering } from '../utils/ConnectionUtils.js';
export async function adminEntitySearchEntities(database, schema, context, query, paging, resolvedAuthKeys) {
const sqlQueryResult = searchAdminEntitiesQuery(database, schema, query, paging, resolvedAuthKeys);
if (sqlQueryResult.isError())
return sqlQueryResult;
const { cursorExtractor, sqlQuery } = sqlQueryResult.value;
const connectionResult = await queryMany(database, context, sqlQuery);
if (connectionResult.isError())
return connectionResult;
const { hasMore, edges } = resolveConnectionPagingAndOrdering(paging, connectionResult.value);
return ok({
hasMore,
edges: edges.map((edge) => {
assertIsDefined(edge.uuid);
return {
...resolveAdminEntityInfo(edge),
...resolveEntityFields(edge),
id: edge.uuid,
cursor: cursorExtractor(edge),
};
}),
});
}
//# sourceMappingURL=searchEntities.js.map