@zeropress/preview-data-validator
v0.4.4
Published
Shared ZeroPress preview data validation core
Downloads
2,029
Readme
@zeropress/preview-data-validator
Shared validation core for ZeroPress preview data v0.5.
This package is the canonical runtime contract for preview payloads consumed by:
zeropress-theme devzeropress-admin-api-v2
Install
npm install @zeropress/preview-data-validatorExports
import {
PREVIEW_DATA_VERSION,
assertPreviewData,
isPreviewData,
validatePreviewData,
} from '@zeropress/preview-data-validator';Schema export:
import schemaUrl from '@zeropress/preview-data-validator/preview-data.v0.5.schema.json';Published schema files are shipped from the package schemas/ directory.
preview-data v0.5 is data-only:
- no
routesblock - no raw
htmlfields on posts or pages - no preformatted
published_at/updated_at - taxonomy membership is expressed as
category_slugsandtag_slugs - per-post comment policy is expressed as
allow_comments - authors are deduplicated in
content.authors[] - posts reference authors via
author_id - body source is carried as raw
contentwith explicitdocument_type - pages, categories, and tags do not carry internal
idfields site.mediaBaseUrlis required and must be either an empty string or an absolute URI- site locale is carried as
site.locale - site timezone is carried as
site.timezone - comment rendering policy is carried as
site.disallowComments - enabled menus are exported in root
menus menusis keyed by stablemenu_id- menu items use
title,url,type,target, and recursivechildren - menu item
targetis_selfor_blank - menu items do not carry admin-only fields such as
reference_id - enabled widget areas are exported in root
widgets widgetsis keyed by stablewidget_area_id- widget items intentionally fix only the common shell:
type,title, and optionalsettings - widget-type-specific
settingsstructure is not enforced by this validator in v0.5 - optional
custom_csscarries site-level stylesheet input as{ content }
Build tooling is responsible for resolving authors and deriving render-ready route data, including HTML conversion for non-HTML source content.
API
validatePreviewData(data)
Returns:
{
ok: true,
errors: [],
warnings: []
}assertPreviewData(data)
Throws when the payload is invalid.
isPreviewData(data)
Returns true when the payload is valid.
License
MIT
