this repo has no description
1import { Node, NodeStatic, NodeType } from "../structs/node";
2import { platform } from '@tauri-apps/plugin-os';
3
4import { NodeConditional } from "./Conditional";
5import { NodeDebug } from "./Debug";
6import { NodeOSCActions } from "./OSCActions";
7import { NodeOSCTrigger } from "./OSCTrigger";
8import { NodePressKey } from "./PressKey";
9import { NodeStatics } from "./Statics";
10import { NodeShellCommand } from "./Shell";
11
12export interface NodeDefinition{
13 os: string,
14 isSingle: boolean,
15 name: string,
16 typeId?: string,
17 onStaticsUpdate?: ( node: Node ) => Promise<void>,
18 // build?: ( pos: [ number, number ], onStaticsUpdate: ( node: Node ) => void ) => Promise<Node>,
19 w?: number,
20 statics?: NodeStatic[],
21 inputs?: { name: string, type: NodeType }[],
22 outputs?: { name: string, type: NodeType }[],
23
24 items?: NodeDefinition[]
25}
26
27export interface NodeDefinitionHashMap {
28 [details: string] : NodeDefinition;
29}
30
31// TODO: (Node Additions) Pressing keyboard keys (like to do linux, but has extra steps)
32// TODO: (Node Additions) Getting media state from os
33// TODO: (Node Additions) Sending custom OSC messages
34// TODO: (Node Additions) Sending HTTP requests?
35// TODO: (Node Additions) Voicemeeter integrations (win only)
36// TODO: (Node Additions) Voicemod integrations (win only)
37// TODO: (Node Additions) Executing shell commands? (probably need some kinda popup warning when these are imported about dangerous usage)
38
39export let Nodes: NodeDefinition[] = [];
40let nodes = [
41 NodeOSCTrigger,
42 NodeConditional,
43 NodeStatics,
44 NodeOSCActions,
45 NodeDebug,
46 NodePressKey,
47 NodeShellCommand
48]
49
50let os = platform();
51
52for (let i = 0; i < nodes.length; i++) {
53 let node = nodes[i];
54 if(node.os === 'any' || node.os === os)Nodes.push(node);
55}
56
57export let NodesByID: NodeDefinitionHashMap = {}
58
59Nodes.forEach(node => {
60 if(node.isSingle){
61 NodesByID[node.typeId!] = node;
62 } else{
63 node.items!.forEach(node => {
64 NodesByID[node.typeId!] = node;
65 })
66 }
67})
68
69console.log(NodesByID);