@elgato/schemas
TypeScript icon, indicating that this package has built-in type declarations

0.3.5 • Public • Published

Stream Deck SDK banner

Schemas

Schemas npm package SDK documentation Join the Marketplace Makers Discord Elgato homepage

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);

Package Sidebar

Install

npm i @elgato/schemas

Weekly Downloads

275

Version

0.3.5

License

MIT

Unpacked Size

624 kB

Total Files

14

Last publish

Collaborators

  • elgato-bot