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