TypeScript type definitions for the DeskThing application framework.
npm install @deskthing/types
npm create deskthing@latest
npx @deskthing/cli template
npm install @deskthing/client @deskthing/server
-
Action
- Defines an executable action with properties like id, name, value, etc. -
ActionReference
- Reference to an action with minimal properties -
EventMode
- Enum for different input event types (KeyUp, KeyDown, Swipes, etc.) -
Key
- Defines a key mapping with modes and metadata
-
ServerEvent
- Enum for server-side events (MESSAGE, DATA, GET, etc.) -
SEND_TYPES
- Enum for client-to-server communication types -
GetTypes
- Types for 'get' event requests
-
ClientManifest
- Client details like name, version, device info -
ClientPreferences
- User preferences for client appearance/behavior -
App
- Interface for app state in client -
KeyTrigger
- Interface for key trigger events
-
Task
- Defines a task with steps and metadata -
Step
- Base interface for task steps -
TaskStep
- Standard step in a task -
TaskAction
- Step requiring action execution -
TaskSetting
- Step requiring settings input -
STEP_TYPES
- Enum for different step types
-
SettingsType
- Union type of all setting types -
SettingsNumber
- Number input setting -
SettingsBoolean
- Boolean toggle setting -
SettingsString
- Text input setting -
SettingsSelect
- Dropdown select setting -
SettingsMultiSelect
- Multiple selection setting -
SettingsColor
- Color picker setting -
AppSettings
- Record of app settings
-
SongData
- Current playing song information -
ThemeColor
- Color theme information -
AUDIO_REQUESTS
- Enum for audio control requests
-
AppManifest
- Application manifest type -
PlatformTypes
- Supported platform types -
TagTypes
- App categorization tags -
LOGGING_LEVELS
- Log level types -
SocketData
- Socket communication data type
import { Action, ServerEvent, ClientManifest } from "@deskthing/types";
import { DeskThing } from "@deskthing/server";
// Define an action
const myAction: Action = {
id: "my-action",
name: "My Action",
version: "1.0.0",
enabled: true,
};
DeskThing.registerAction(myAction);
DeskThing.on(ServerEvent.ACTION, (event) => {
// Handle action event
});
// Handle server events
function handleEvent(event: ServerEvent) {
switch (event) {
case ServerEvent.DATA:
// Handle data event
break;
case ServerEvent.ACTION:
// Handle action event
break;
}
}
MIT