UNPKG

@unhead/schema-org

Version:

Unhead Schema.org for Simple and Automated Google Rich Results

38 lines (35 loc) 1.49 kB
import { d as defineSchemaOrgResolver, a9 as IdentityId, a6 as setIfEmpty, a7 as idReference, a8 as resolvableDateToIso, e as resolveRelation } from '../shared/schema-org.Cp6bpwL2.mjs'; import { m as monetaryAmountResolver } from '../shared/schema-org.Dg61qWpa.mjs'; import { d as PrimaryWebPageId, o as organizationResolver } from './index3.mjs'; import { placeResolver } from './index8.mjs'; import 'unhead/plugins'; import 'unhead/utils'; import 'ufo'; import './index16.mjs'; import './index28.mjs'; import './index40.mjs'; import './index39.mjs'; const jobPostingResolver = defineSchemaOrgResolver({ defaults: { "@type": "JobPosting" }, idPrefix: ["url", "#job-posting"], resolve(node, ctx) { node.datePosted = resolvableDateToIso(node.datePosted); node.hiringOrganization = resolveRelation(node.hiringOrganization, ctx, organizationResolver); node.jobLocation = resolveRelation(node.jobLocation, ctx, placeResolver); node.baseSalary = resolveRelation(node.baseSalary, ctx, monetaryAmountResolver); node.validThrough = resolvableDateToIso(node.validThrough); return node; }, resolveRootNode(jobPosting, { find }) { const webPage = find(PrimaryWebPageId); const identity = find(IdentityId); if (identity) setIfEmpty(jobPosting, "hiringOrganization", idReference(identity)); if (webPage) setIfEmpty(jobPosting, "mainEntityOfPage", idReference(webPage)); return jobPosting; } }); export { jobPostingResolver };