@elgato/schemas
v0.4.11
Published
Collection of schemas, and TypeScript declarations, to support the creation and validation of Stream Deck SDK files
Maintainers
Readme
Schemas
Collection of schemas, and TypeScript declarations, to support the creation and validation of Stream Deck SDK files.
npm install @elgato/schemasStream Deck
Plugin
Manifest
Manifest JSON file responsible for defining a Stream Deck plugin.
// TypeScript type.
import { type Manifest } from "@elgato/schemas/streamdeck/plugins";// Schema as an object.
import manifest from "@elgato/schemas/streamdeck/plugins/json";// Schema as an object, with experimental import attributes
import manifest from "@elgato/schemas/streamdeck/plugins/manifest.json" with { type: "json" };https://schemas.elgato.com/streamdeck/plugins/manifest.jsonLayout
Layout JSON file that defines the layout of an action on Stream Deck +.
// TypeScript type.
import { type Layout } from "@elgato/schemas/streamdeck/plugins";// Schema as an object.
import layout from "@elgato/schemas/streamdeck/plugins/json";// Schema as an object, with experimental import attributes
import layout from "@elgato/schemas/streamdeck/plugins/layout.json" with { type: "json" };https://schemas.elgato.com/streamdeck/plugins/layout.jsonUsage
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);
