@unhead/schema-org
Version:
Unhead Schema.org for Simple and Automated Google Rich Results
54 lines (50 loc) • 1.45 kB
JavaScript
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 };