UNPKG

@unhead/schema-org

Version:

Unhead Schema.org for Simple and Automated Google Rich Results

54 lines (50 loc) 1.45 kB
import { d as defineSchemaOrgResolver, ac as asArray, ae as dedupeMerge, a7 as idReference, e as resolveRelation, a8 as resolvableDateToIso } from '../shared/schema-org.Cp6bpwL2.mjs'; import { d as PrimaryWebPageId } from './index3.mjs'; import 'unhead/plugins'; import 'unhead/utils'; import 'ufo'; import './index16.mjs'; import './index28.mjs'; import './index40.mjs'; import './index39.mjs'; const answerResolver = defineSchemaOrgResolver({ cast(node) { if (typeof node === "string") { return { text: node }; } return node; }, defaults: { "@type": "Answer" } }); const questionResolver = defineSchemaOrgResolver({ defaults: { "@type": "Question" }, inheritMeta: [ "inLanguage" ], idPrefix: "url", resolve(question, ctx) { if (question.question) { question.name = question.question; delete question.question; } if (question.answer) { question.acceptedAnswer = question.answer; delete question.answer; } question.acceptedAnswer = resolveRelation(question.acceptedAnswer, ctx, answerResolver); question.dateCreated = resolvableDateToIso(question.dateCreated); return question; }, resolveRootNode(question, { find }) { const webPage = find(PrimaryWebPageId); if (webPage && asArray(webPage["@type"]).includes("FAQPage")) dedupeMerge(webPage, "mainEntity", idReference(question)); } }); export { questionResolver };