rsnext/examples/cms-prismic/types.generated.ts
Angelo Ashmore 3ede313e1f
chore(examples): refresh cms-prismic example (#40121)
## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm lint`
- [x] The examples guidelines are followed from [our contributing
doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)

**Note**: `pnpm lint` fails on code unrelated to the changes in this PR.

This PR updates the [Prismic](https://prismic.io/) CMS example
(`examples/cms-prismic`) to use the latest Prismic libraries, tools, and
conventions.

- Uses `npx @slicemachine/init` to bootstrap new Prismic accounts and
content repositories.

- Uses [Slice
Machine](https://prismic.io/docs/technologies/slice-machine) to model
content.

- Uses [Slices](https://prismic.io/docs/technologies/slice) to write
post content.

- Uses the latest versions of the following packages:

  - `@prismicio/client`
  - `@prismicio/helpers`
  - `@prismicio/react`
  - `@prismicio/next`

- Adds generated TypeScript types for Prismic content. The example
remains as a JavaScript codebase (i.e. not TypeScript), but makes use of
the types via JSDoc.

Co-authored-by: Balázs Orbán <info@balazsorban.com>
2022-10-01 06:06:49 +02:00

228 lines
5.7 KiB
TypeScript

// Code generated by prismic-ts-codegen. DO NOT EDIT.
import type * as prismicT from '@prismicio/types'
import type * as prismic from '@prismicio/client'
type Simplify<T> = {
[KeyType in keyof T]: T[KeyType]
}
/** Content for Author documents */
interface AuthorDocumentData {
/**
* Name field in *Author*
*
* - **Field Type**: Title
* - **Placeholder**: Name of the author
* - **API ID Path**: author.name
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/rich-text-title
*
*/
name: prismicT.TitleField
/**
* Picture field in *Author*
*
* - **Field Type**: Image
* - **Placeholder**: *None*
* - **API ID Path**: author.picture
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/image
*
*/
picture: prismicT.ImageField<never>
}
/**
* Author document from Prismic
*
* - **API ID**: `author`
* - **Repeatable**: `true`
* - **Documentation**: https://prismic.io/docs/core-concepts/custom-types
*
* @typeParam Lang - Language API ID of the document.
*/
export type AuthorDocument<Lang extends string = string> =
prismicT.PrismicDocumentWithoutUID<
Simplify<AuthorDocumentData>,
'author',
Lang
>
/** Content for Post documents */
interface PostDocumentData {
/**
* Title field in *Post*
*
* - **Field Type**: Title
* - **Placeholder**: Title of the post
* - **API ID Path**: post.title
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/rich-text-title
*
*/
title: prismicT.TitleField
/**
* Date field in *Post*
*
* - **Field Type**: Date
* - **Placeholder**: Date of publication
* - **API ID Path**: post.date
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/date
*
*/
date: prismicT.DateField
/**
* Author field in *Post*
*
* - **Field Type**: Content Relationship
* - **Placeholder**: *None*
* - **API ID Path**: post.author
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/link-content-relationship
*
*/
author: prismicT.RelationField<'author'>
/**
* Excerpt field in *Post*
*
* - **Field Type**: Text
* - **Placeholder**: Short summary of the post
* - **API ID Path**: post.excerpt
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/key-text
*
*/
excerpt: prismicT.KeyTextField
/**
* Cover Image field in *Post*
*
* - **Field Type**: Image
* - **Placeholder**: *None*
* - **API ID Path**: post.cover_image
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/image
*
*/
cover_image: prismicT.ImageField<never>
/**
* Slice Zone field in *Post*
*
* - **Field Type**: Slice Zone
* - **Placeholder**: *None*
* - **API ID Path**: post.slices[]
* - **Tab**: Main
* - **Documentation**: https://prismic.io/docs/core-concepts/slices
*
*/
slices: prismicT.SliceZone<PostDocumentDataSlicesSlice>
}
/**
* Slice for *Post → Slice Zone*
*
*/
type PostDocumentDataSlicesSlice = TextSlice | ImageSlice
/**
* Post document from Prismic
*
* - **API ID**: `post`
* - **Repeatable**: `true`
* - **Documentation**: https://prismic.io/docs/core-concepts/custom-types
*
* @typeParam Lang - Language API ID of the document.
*/
export type PostDocument<Lang extends string = string> =
prismicT.PrismicDocumentWithUID<Simplify<PostDocumentData>, 'post', Lang>
export type AllDocumentTypes = AuthorDocument | PostDocument
/**
* Primary content in Image → Primary
*
*/
interface ImageSliceDefaultPrimary {
/**
* Image field in *Image → Primary*
*
* - **Field Type**: Image
* - **Placeholder**: *None*
* - **API ID Path**: image.primary.image
* - **Documentation**: https://prismic.io/docs/core-concepts/image
*
*/
image: prismicT.ImageField<never>
}
/**
* Default variation for Image Slice
*
* - **API ID**: `default`
* - **Description**: `Image`
* - **Documentation**: https://prismic.io/docs/core-concepts/reusing-slices
*
*/
export type ImageSliceDefault = prismicT.SharedSliceVariation<
'default',
Simplify<ImageSliceDefaultPrimary>,
never
>
/**
* Slice variation for *Image*
*
*/
type ImageSliceVariation = ImageSliceDefault
/**
* Image Shared Slice
*
* - **API ID**: `image`
* - **Description**: `Image`
* - **Documentation**: https://prismic.io/docs/core-concepts/reusing-slices
*
*/
export type ImageSlice = prismicT.SharedSlice<'image', ImageSliceVariation>
/**
* Primary content in Text → Primary
*
*/
interface TextSliceDefaultPrimary {
/**
* Text field in *Text → Primary*
*
* - **Field Type**: Rich Text
* - **Placeholder**: Rich text with formatting
* - **API ID Path**: text.primary.text
* - **Documentation**: https://prismic.io/docs/core-concepts/rich-text-title
*
*/
text: prismicT.RichTextField
}
/**
* Default variation for Text Slice
*
* - **API ID**: `default`
* - **Description**: `Text`
* - **Documentation**: https://prismic.io/docs/core-concepts/reusing-slices
*
*/
export type TextSliceDefault = prismicT.SharedSliceVariation<
'default',
Simplify<TextSliceDefaultPrimary>,
never
>
/**
* Slice variation for *Text*
*
*/
type TextSliceVariation = TextSliceDefault
/**
* Text Shared Slice
*
* - **API ID**: `text`
* - **Description**: `Text`
* - **Documentation**: https://prismic.io/docs/core-concepts/reusing-slices
*
*/
export type TextSlice = prismicT.SharedSlice<'text', TextSliceVariation>
declare module '@prismicio/client' {
interface CreateClient {
(
repositoryNameOrEndpoint: string,
options?: prismic.ClientConfig
): prismic.Client<AllDocumentTypes>
}
}