Initial commit

Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com>
Co-Authored-By: Johan  <4934465+joolsus@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
This commit is contained in:
Michael Cartner
2024-01-26 11:52:55 +01:00
commit b9c60b07dc
2789 changed files with 868795 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
{
"name": "@noodl/types",
"version": "2.7.0",
"main": "src/index.d.ts",
"description": "",
"author": "Noodl <info@noodl.net>",
"homepage": "https://noodl.net"
}

1
packages/noodl-types/src/index.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
export * from "./runtime/node.d";

View File

@@ -0,0 +1,156 @@
import { TimerScheduler } from "./timer_scheduler.d";
type TSFixme = any;
export interface EventSender {
addChild(child, index);
addInputPort(port);
addOutputPort(port);
getInputPort(portName);
getInputPorts();
getOutputPort(portName);
getOutputPorts();
removeChild(child);
removeInputPortWithName(portName);
removeOutputPortWithName(portName);
reset();
setDefaultStateTransition(stateTransition, state);
setParameter(name, value, state);
setParameters(parameters);
setStateParameters(parameters);
setStateTransitionParamter(parameter, curve, state);
setStateTransitions(stateTransitions);
setVariant(variant);
updateInputPortTypes(ports);
updateOutputPortTypes(ports);
emit(eventName, data): Promise<TSFixme>;
on(eventName, callback, ref);
removeAllListeners(eventName);
removeListenersWithRef(ref);
}
export interface ComponentModel extends EventSender /* TODO: Is this true? */ {
connections: {
sourceId: string;
sourcePort: string;
targetId: string;
targetPort: string;
}[];
inputPorts: {};
listeners: {};
listenersWithRefs: {};
metadata: {};
name: string;
nodes: {};
outputPorts: {};
roots: string[];
}
export interface NodeModel extends EventSender {
children: TSFixme[];
component: ComponentModel;
id: string;
inputPorts: {};
inputs: TSFixme[];
listeners: {};
listenersWithRefs: {};
outputPorts: {};
outputs: TSFixme[];
parameters: {};
parent: NodeModel;
type: string;
}
export interface NodeObject {
addDeleteListener(listener);
connectInput(inputName, sourceNode, sourcePortName);
deregisterInput(name);
deregisterOutput(name);
flagAllOutputsDirty();
flagDirty();
flagOutputDirty(name);
getInput(name);
getInputValue(name);
getOutput(name);
hasInput(name);
hasOutput(name);
isInputConnected(inputName);
model: NodeModel;
queueInput(inputName, value);
registerInput(name, input);
registerInputIfNeeded();
registerInputs(inputs);
registerOutput(name, output);
registerOutputIfNeeded();
registerOutputs(outputs);
removeInputConnection(inputName, sourceNodeId, sourcePortName);
scheduleAfterInputsHaveUpdated(callback);
sendSignalOnOutput(outputName);
sendValue(name, value);
setInputValue(name, value);
setNodeModel(nodeModel);
update();
}
export interface Node extends NodeObject {
name: string;
addChild(child, index);
contains(node);
forceUpdate();
getChildRoot();
getChildren();
getDOMElement();
getParameter(name);
getParametersForStates(states);
getRef();
getStyle(style);
getVisualParentNode();
isChild(child);
removeChild(child);
removeStyle(styles, styleTag);
render();
renderChildren();
scheduleUpdateChildIndices();
setChildIndex(index);
setNodeModel(nodeModel);
setStyle(newStyles, styleTag);
setVariant(variant);
setVisualStates(newStates);
updateAdvancedStyle(params);
updateChildIndices();
}
export interface NodeContext {
timerScheduler: TimerScheduler;
}
export interface NodeScope {}
export interface NodeConstructor extends Node {
/** @deprecated This is only the graph parent, not the active parent. */
parent?: NodeConstructor;
getVisualParentNode(): NodeConstructor | undefined;
cachedChildren: TSFixme;
childIndex: number;
children: NodeConstructor[];
clientBoundingRect: TSFixme;
context: NodeContext;
forceUpdateScheduled: boolean;
id: string;
nodeScope: NodeScope;
noodlNodeAsProp: boolean;
outputPropValues: TSFixme;
props: TSFixme;
reactComponent: () => TSFixme;
reactComponentRef: TSFixme;
reactKey: string;
renderedAtFrame: number;
style: TSFixme;
updateChildIndiciesScheduled: boolean;
useFrame: boolean;
wantsToBeMounted: boolean;
}

View File

@@ -0,0 +1,28 @@
export interface TimerOptions {
duration?: number;
repeatCount?: number;
delay?: number;
onStart?: () => void;
onFinished?: () => void;
onRunning: (time: number) => void;
}
export interface Timer {
scheduler: TimerScheduler;
repeatCount: number;
delay: number;
start(): Timer;
stop(): void;
isRunning(): boolean;
durationLeft(): number;
}
export interface TimerScheduler {
createTimer(args: TimerOptions): Timer;
scheduleTimer(timer: Timer): void;
stopTimer(timer: Timer): void;
runTimers(currentTime: number): void;
hasPendingTimers(): boolean;
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}