mirror of
https://github.com/fluxscape/fluxscape.git
synced 2026-01-11 14:52:54 +01:00
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:
8
packages/noodl-types/package.json
Normal file
8
packages/noodl-types/package.json
Normal 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
1
packages/noodl-types/src/index.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./runtime/node.d";
|
||||
156
packages/noodl-types/src/runtime/node.d.ts
vendored
Normal file
156
packages/noodl-types/src/runtime/node.d.ts
vendored
Normal 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;
|
||||
}
|
||||
28
packages/noodl-types/src/runtime/timer_scheduler.d.ts
vendored
Normal file
28
packages/noodl-types/src/runtime/timer_scheduler.d.ts
vendored
Normal 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;
|
||||
}
|
||||
3
packages/noodl-types/tsconfig.json
Normal file
3
packages/noodl-types/tsconfig.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json"
|
||||
}
|
||||
Reference in New Issue
Block a user