Files
OpenNoodl/packages/noodl-runtime/src/noderegister.js
Michael Cartner b9c60b07dc 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>
2024-01-26 11:52:55 +01:00

39 lines
1.1 KiB
JavaScript

"use strict";
function NodeRegister(context) {
this._constructors = {};
this.context = context;
}
NodeRegister.prototype.register = function(nodeDefinition) {
var name = nodeDefinition.metadata.name;
this._constructors[name] = nodeDefinition;
};
NodeRegister.prototype.createNode = function(name, id, nodeScope) {
if(this._constructors.hasOwnProperty(name) === false) {
throw new Error("Unknown node type with name " + name);
}
return this._constructors[name](this.context, id, nodeScope);
};
NodeRegister.prototype.getNodeMetadata = function(type) {
if(this._constructors.hasOwnProperty(type) === false) {
throw new Error("Unknown node type with name " + type);
}
return this._constructors[type].metadata;
};
NodeRegister.prototype.hasNode = function(type) {
return this._constructors.hasOwnProperty(type);
};
NodeRegister.prototype.getInputType = function(type, inputName) {
const metadata = this.getNodeMetadata(type);
return metadata.inputs[inputName] && metadata.inputs[inputName].type;
}
module.exports = NodeRegister;