0.3.3 • Published 6 days ago
@elgato/schemas v0.3.3
Schemas
Collection of schemas, and TypeScript declarations, to support the creation and validation of Stream Deck SDK files.
npm install @elgato/schemas
Stream Deck
Plugin
Manifest
Manifest JSON file responsible for defining a Stream Deck plugin.
import { type Manifest } from "@elgato/schemas/streamdeck/plugins";
import manifestSchema from "@elgato/schemas/streamdeck/plugins/manifest.json";
https://schemas.elgato.com/streamdeck/plugins/manifest.json
Layout
Layout JSON file that defines the layout of an action on Stream Deck +.
import { type Layout } from "@elgato/schemas/streamdeck/plugins";
import layoutSchema from "@elgato/schemas/streamdeck/plugins/layout.json";
https://schemas.elgato.com/streamdeck/plugins/layout.json
Usage
Schemas can be referenced directly within JSON files, providing intellisense and validation, using the $schema
property, for example:
{
"$schema": "https://schemas.elgato.com/streamdeck/plugins/manifest.json",
"Name": "Wave Link",
"Version": "1.9.0.0",
"Author": "Elgato"
// ...
}
Keywords
Custom keywords used within the provided schemas can also be directly imported to assist with constructing a validator, such as Ajv
. Please note, the custom keyword definitions will only register the keyword, and will not provide validation.
import { keywordDefinitions } from "@elgato/schemas";
import Ajv from "ajv";
// add the "filePath" keyword (excluding validation)
ajv.addKeyword(keywordDefinitions.filePath);