npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@communities-webruntime/metadata-schema

v1.66.8

Published

UI metadata schema specs for Lightning Web Runtime

Downloads

1,334

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

  1. 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.
  2. Further ensure you are not breaking someone else by running all tests.
  3. Add tests for your changes to make sure someone else does not break you.