UNPKG

@unhead/schema-org

Version:

Unhead Schema.org for Simple and Automated Google Rich Results

47 lines (44 loc) 1.63 kB
import { d as defineSchemaOrgResolver, a9 as IdentityId, a6 as setIfEmpty, a7 as idReference, e as resolveRelation } from '../shared/schema-org.Cp6bpwL2.mjs'; import { aggregateOfferResolver } from './index.mjs'; import { aggregateRatingResolver } from './index2.mjs'; import { offerResolver } from './index23.mjs'; import { reviewResolver } from './index32.mjs'; import { d as PrimaryWebPageId } from './index3.mjs'; import 'unhead/plugins'; import 'unhead/utils'; import 'ufo'; import '../shared/schema-org.Dg61qWpa.mjs'; import '../shared/schema-org.40UJYB57.mjs'; import './index16.mjs'; import './index28.mjs'; import './index40.mjs'; import './index39.mjs'; const ProductId = "#product"; const productResolver = defineSchemaOrgResolver({ defaults: { "@type": "Product" }, inheritMeta: [ "description", "image", { meta: "title", key: "name" } ], idPrefix: ["url", ProductId], resolve(node, ctx) { node.aggregateOffer = resolveRelation(node.aggregateOffer, ctx, aggregateOfferResolver); node.aggregateRating = resolveRelation(node.aggregateRating, ctx, aggregateRatingResolver); node.offers = resolveRelation(node.offers, ctx, offerResolver); node.review = resolveRelation(node.review, ctx, reviewResolver); return node; }, resolveRootNode(product, { find }) { const webPage = find(PrimaryWebPageId); const identity = find(IdentityId); if (identity) setIfEmpty(product, "brand", idReference(identity)); if (webPage) setIfEmpty(product, "mainEntityOfPage", idReference(webPage)); return product; } }); export { ProductId, productResolver };