@prismicio/types-internal
Version:
Prismic types for Custom Types and Prismic Data
40 lines (34 loc) • 796 B
text/typescript
import * as t from "io-ts"
import { StringOrNull } from "../../../validators"
import ImageConstraint from "../shared/ImageConstraint"
export const ImageFieldType = "Image"
export const Thumbnail = t.exact(
t.intersection([
t.type({
name: t.string,
}),
ImageConstraint,
]),
)
export type Thumbnail = t.TypeOf<typeof Thumbnail>
export const ImageConfig = t.exact(
t.partial({
label: StringOrNull,
placeholder: t.string,
constraint: ImageConstraint,
thumbnails: t.readonlyArray(Thumbnail),
}),
)
export type ImageConfig = t.TypeOf<typeof ImageConfig>
export const Image = t.exact(
t.intersection([
t.type({
type: t.literal(ImageFieldType),
}),
t.partial({
fieldset: StringOrNull,
config: ImageConfig,
}),
]),
)
export type Image = t.TypeOf<typeof Image>