UNPKG

@paroicms/server

Version:
32 lines 1.56 kB
import { createNoTracker } from "@paroicms/internal-server-lib"; import { searchDocuments as searchDocumentsQuery } from "../admin-backend/lnode/lnode.queries.js"; import { getUrlOfDocument } from "../rendered-site/page-route/make-url.js"; import { loadMinimalDocumentInfo, loadRelatedTerms } from "./document-info.queries.js"; import { getLabelingFieldTypes } from "./programmatic-api-helpers.js"; export async function searchDocumentsProgrammaticApi(siteContext, input) { const results = await searchDocumentsQuery(siteContext, { language: input.language, queryString: input.words.join(" "), offset: input.offset ?? 0, limit: input.limit ?? 20, }); const items = []; for (const item of results.items) { const minimalInfo = await loadMinimalDocumentInfo(siteContext, { nodeId: item.nodeId, language: input.language, }); const url = await getUrlOfDocument(siteContext, createNoTracker(), { nodeId: minimalInfo.nodeId, language: minimalInfo.language }, { returnUndef: true, absoluteUrl: true }); const labelingFields = getLabelingFieldTypes(siteContext, minimalInfo.typeName); const relatedTerms = labelingFields.length > 0 ? await loadRelatedTerms(siteContext, labelingFields, minimalInfo.nodeId, minimalInfo.language) : {}; items.push({ ...minimalInfo, url, relatedTerms, }); } return { items, total: results.total }; } //# sourceMappingURL=search-documents-api.js.map