UNPKG

@datocms/cma-client

Version:
41 lines (40 loc) 1.96 kB
import { type LocalizedFieldValue } from '../utilities/normalizedFieldValues'; import type { SeoEditorConfiguration } from './appearance/seo'; import type { DescriptionLengthValidator } from './validators/description_length'; import type { FileSizeValidator } from './validators/file_size'; import type { ImageAspectRatioValidator } from './validators/image_aspect_ratio'; import type { ImageDimensionsValidator } from './validators/image_dimensions'; import type { RequiredSeoFieldsValidator } from './validators/required_seo_fields'; import type { TitleLengthValidator } from './validators/title_length'; export type SeoFieldValue = { title?: string | null; description?: string | null; image?: string | null; twitter_card?: 'summary' | 'summary_large_image' | null; no_index?: boolean; } | null; export declare function isSeoFieldValue(value: unknown): value is SeoFieldValue; export declare function isLocalizedSeoFieldValue(value: unknown): value is LocalizedFieldValue<SeoFieldValue>; export type SeoFieldValidators = { /** SEO field has to specify one or more properties, or it won't be valid */ required_seo_fields?: RequiredSeoFieldsValidator; /** Accept assets only within a specified file size range */ file_size?: FileSizeValidator; /** Accept assets only within a specified height and width range */ image_dimensions?: ImageDimensionsValidator; /** Accept assets only within a specified aspect ratio range */ image_aspect_ratio?: ImageAspectRatioValidator; /** Limits the length of the title for a SEO field */ title_length?: TitleLengthValidator; /** Limits the length of the description for a SEO field */ description_length?: DescriptionLengthValidator; }; export type SeoFieldAppearance = { editor: 'seo'; parameters: SeoEditorConfiguration; } | { /** Plugin ID */ editor: string; /** Plugin configuration */ parameters: Record<string, unknown>; };