|
| 1 | +import type { |
| 2 | + AggregateOffer, |
| 3 | + AggregateRating, |
| 4 | + Article, |
| 5 | + BreadcrumbList, |
| 6 | + Comment, |
| 7 | + Event, |
| 8 | + HowTo, |
| 9 | + HowToStep, |
| 10 | + ImageObject, |
| 11 | + LocalBusiness, |
| 12 | + Offer, |
| 13 | + OpeningHoursSpecification, |
| 14 | + Organization, |
| 15 | + Person, |
| 16 | + Place, |
| 17 | + PostalAddress, |
| 18 | + Product, |
| 19 | + Question, |
| 20 | + Recipe, |
| 21 | + Review, |
| 22 | + VideoObject, |
| 23 | + VirtualLocation, |
| 24 | + WebPage, |
| 25 | + WebSite, |
| 26 | +} from 'schema-org-graph-js' |
| 27 | +import { |
| 28 | + addressResolver, |
| 29 | + aggregateOfferResolver, |
| 30 | + aggregateRatingResolver, |
| 31 | + articleResolver, |
| 32 | + breadcrumbResolver, |
| 33 | + commentResolver, |
| 34 | + eventResolver, |
| 35 | + howToResolver, |
| 36 | + howToStepResolver, |
| 37 | + imageResolver, |
| 38 | + localBusinessResolver, |
| 39 | + offerResolver, |
| 40 | + organizationResolver, |
| 41 | + personResolver, |
| 42 | + placeResolver, |
| 43 | + productResolver, |
| 44 | + questionResolver, |
| 45 | + recipeResolver, |
| 46 | + resolveOpeningHours, |
| 47 | + reviewResolver, |
| 48 | + videoResolver, |
| 49 | + virtualLocationResolver, |
| 50 | + webPageResolver, |
| 51 | + webSiteResolver, |
| 52 | +} from 'schema-org-graph-js' |
| 53 | +import type { Ref } from 'vue-demi' |
| 54 | + |
| 55 | +type MaybeRef<T> = { |
| 56 | + [P in keyof T]?: T[P] | Ref<T[P]>; |
| 57 | +} |
| 58 | + |
| 59 | +export type WithResolver<T> = T & { |
| 60 | + _resolver?: any |
| 61 | + _uid?: number |
| 62 | +} |
| 63 | + |
| 64 | +export const provideResolver = <T>(input?: T, resolver?: any) => { |
| 65 | + return <WithResolver<T>> { |
| 66 | + ...(input || {}), |
| 67 | + _resolver: resolver, |
| 68 | + } |
| 69 | +} |
| 70 | + |
| 71 | +export const defineAddress = <T extends MaybeRef<PostalAddress>>(input?: T) => provideResolver(input, addressResolver) |
| 72 | +export const defineAggregateOffer = <T extends MaybeRef<AggregateOffer>>(input?: T) => provideResolver(input, aggregateOfferResolver) |
| 73 | +export const defineAggregateRating = <T extends MaybeRef<AggregateRating>>(input?: T) => provideResolver(input, aggregateRatingResolver) |
| 74 | +export const defineArticle = <T extends MaybeRef<Article>>(input?: T) => provideResolver(input, articleResolver) |
| 75 | +export const defineBreadcrumb = <T extends MaybeRef<BreadcrumbList>>(input?: T) => provideResolver(input, breadcrumbResolver) |
| 76 | +export const defineComment = <T extends MaybeRef<Comment>>(input?: T) => provideResolver(input, commentResolver) |
| 77 | +export const defineEvent = <T extends MaybeRef<Event>>(input?: T) => provideResolver(input, eventResolver) |
| 78 | +export const defineVirtualLocation = <T extends MaybeRef<VirtualLocation>>(input?: T) => provideResolver(input, virtualLocationResolver) |
| 79 | +export const definePlace = <T extends MaybeRef<Place>>(input?: T) => provideResolver(input, placeResolver) |
| 80 | +export const defineHowTo = <T extends MaybeRef<HowTo>>(input?: T) => provideResolver(input, howToResolver) |
| 81 | +export const defineHowToStep = <T extends MaybeRef<HowToStep>>(input?: T) => provideResolver(input, howToStepResolver) |
| 82 | +export const defineImage = <T extends MaybeRef<ImageObject>>(input?: T) => provideResolver(input, imageResolver) |
| 83 | +export const defineLocalBusiness = <T extends MaybeRef<LocalBusiness>>(input?: T) => provideResolver(input, localBusinessResolver) |
| 84 | +export const defineOffer = <T extends MaybeRef<Offer>>(input?: T) => provideResolver(input, offerResolver) |
| 85 | +export const defineOpeningHours = <T extends MaybeRef<OpeningHoursSpecification>>(input?: T) => provideResolver(input, resolveOpeningHours) |
| 86 | +export const defineOrganization = <T extends MaybeRef<Organization>>(input?: T) => provideResolver(input, organizationResolver) |
| 87 | +export const definePerson = <T extends MaybeRef<Person>>(input?: T) => provideResolver(input, personResolver) |
| 88 | +export const defineProduct = <T extends MaybeRef<Product>>(input?: T) => provideResolver(input, productResolver) |
| 89 | +export const defineQuestion = <T extends MaybeRef<Question>>(input?: T) => provideResolver(input, questionResolver) |
| 90 | +export const defineRecipe = <T extends MaybeRef<Recipe>>(input?: T) => provideResolver(input, recipeResolver) |
| 91 | +export const defineReview = <T extends MaybeRef<Review>>(input?: T) => provideResolver(input, reviewResolver) |
| 92 | +export const defineVideo = <T extends MaybeRef<VideoObject>>(input?: T) => provideResolver(input, videoResolver) |
| 93 | +export const defineWebPage = <T extends MaybeRef<WebPage>>(input?: T) => provideResolver(input, webPageResolver) |
| 94 | +export const defineWebSite = <T extends MaybeRef<WebSite>>(input?: T) => provideResolver(input, webSiteResolver) |
0 commit comments