@elgato/schemas
v0.4.0
Published
Collection of schemas, and TypeScript declarations, to support the creation and validation of Stream Deck SDK files
Downloads
2,423
Maintainers
Readme
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.
// 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.json
Layout
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.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);