README
UI Metadata Schema
Model the shape of your UI in JSON using a unified schema.
This project is currently only used by @communities-webruntime
and its corresponding validators.
Overview
Metadata-schema validates the shape of different types of JSON metadata for a LWR project.
The current supported schemas include:
base
(canonical metadata)communities
(declarative metadata)
The metadata types include:
branding
routes
theme
view
Usage
To validate against the schema, import the MetadataValidator
:
import MetadataValidator from '@communities-webruntime/metadata-schema';
const schema = 'communities'; // name of the schema to validate against
const metadataType = 'routes'; // name of the metadata type
const data = ...;
new MetadataValidator(schema).validate(data, metadataType);
For an example, see metadata-validation.ts.
Definitions
Name | Description |
---|---|
View | A view on a screen. Also known as a Page. |
Component | A reusable, composable fragment of UI. This is agnostic to technology, i.e. this could be a LWC component or a reusable HTML element. |
Region | A part of the view which may contain one or more Components |
BrandingProperty | A piece of data which stores visual information such as color or font. This is typically a key:value pair |
Route | A route contains metadata about a URL scheme, or any location specifier |
Theme | A theme is a complex type which contains metadata about your application's higher-level visuals |
ThemeLayout | A theme layout is just another name for a view |
For a more detailed rundown of the metadata pieces, see Anatomy of a Communities LWR Template.
Contributing
- Edit only the schema affected by your change. Know that any definition changes can affect all schemas. Ensure you are not breaking someone else by looking at the files in the
/config
folder and verifying the impact of your schema change. - Further ensure you are not breaking someone else by running all tests.
- Add tests for your changes to make sure someone else does not break you.