UNPKG

@bareblends/vsf-prismic

Version:

Prismic CMS integration with Vue Storefront

118 lines (108 loc) 2.74 kB
export type PrismicQueryTypes = & FragmentValue & FragmentValues & FragmentBefore & FragmentAfter & FragmentBeforeAfter & FragmentGeo & FragmentYear & FragmentMonth & FragmentDay<any> & FragmentHour & DocumentAndResults export interface PrismicQuery { at?: FragmentValue<DateValue | DateValue[]>; not?: FragmentValue<DateValue | DateValue[]>; missing?: Fragment; has?: Fragment; any?: FragmentValues<DateValue>; in?: FragmentValues<string>; fulltext?: FragmentValue<string>; similar?: DocumentAndResults; dateBefore?: FragmentBefore; dateAfter?: FragmentAfter; dateBetween?: FragmentBeforeAfter; dayOfMonth?: FragmentDay<number>; dayOfMonthAfter?: FragmentDay<number>; dayOfMonthBefore?: FragmentDay<number>; dayOfWeek?: FragmentDay<string | number>; dayOfWeekAfter?: FragmentDay<string | number>; dayOfWeekBefore?: FragmentDay<string | number>; month?: FragmentMonth; monthBefore?: FragmentMonth; monthAfter?: FragmentMonth; year?: FragmentYear; hour?: FragmentHour; hourBefore?: FragmentHour; hourAfter?: FragmentHour; gt?: FragmentValue<number>; lt?: FragmentValue<number>; inRange?: FragmentBeforeAfter<number>; near?: FragmentGeo; } export type PrismicBlockType = 'text' | 'html' | 'image' | 'embed' | 'link' export type PrismicBlock = Record<string, any> // TODO: Find other block types export type PrismicBlockText = Array<{ type: string; text: string | number; spans: string[]; }> export interface PrismicPage { alternate_langauges: any[]; data?: PrismicBlock; first_publication_date: string; href: string; id: string; lang: string; last_publication_date: string; linked_documents: any[]; slugs: string[]; tags: string[]; type: string; uid: string; // TODO: Extend in slices implementation body?: any[]; } export interface PrismicDocument { results: PrismicPage[]; page: number; results_per_page: number; results_size: number; total_results_size: number; total_pages: number; next_page: string | null; prev_page: string | null; } export interface PrismicSlice { slice_type: string; slice_label: string | null; primary: PrismicBlock; items: PrismicBlock[]; } export interface PrismicMeta { page: number; results_per_page: number; results_size: number; total_results_size: number; total_pages: number; next_page: string; prev_page: string; } export interface ContentSearchParams { endpoint: string apiOptions: { accessToken: string } query?: PrismicQuery queryOptions?: any linkResolver?: string } export interface ApiContext { client: any config: ContentSearchParams } export interface Component { component: string } export type TransformBlock<T = any> = (block: T) => string;