@buggyorg/graphtools
Advanced tools
Comparing version 0.2.18 to 0.2.19
@@ -208,33 +208,2 @@ 'use strict'; | ||
// TODO: unfinished | ||
var createLabel = function createLabel(graph, subset, name) { | ||
var label = { id: name, atomic: false, name: name, nodeType: 'process', inputPorts: {}, outputPorts: {} }; | ||
var _iteratorNormalCompletion6 = true; | ||
var _didIteratorError6 = false; | ||
var _iteratorError6 = undefined; | ||
try { | ||
for (var _iterator6 = subset[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { | ||
var n = _step6.value; | ||
n; | ||
} | ||
} catch (err) { | ||
_didIteratorError6 = true; | ||
_iteratorError6 = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion6 && _iterator6.return) { | ||
_iterator6.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError6) { | ||
throw _iteratorError6; | ||
} | ||
} | ||
} | ||
return label; | ||
}; | ||
function isCompoundable(g, subset) { | ||
@@ -262,3 +231,3 @@ var graph = _graphlib2.default.json.read(JSON.parse(JSON.stringify(_graphlib2.default.json.write(g)))); | ||
function compoundify(g, subset) { | ||
function compoundify(g, subset, name, label) { | ||
if (!isCompoundable(g, subset)) { | ||
@@ -271,28 +240,28 @@ throw new Error('This subset cannot be compoundified given this particular subset.'); | ||
var graph = _graphlib2.default.json.read(JSON.parse(JSON.stringify(_graphlib2.default.json.write(g)))); | ||
var comp = 'comp' + (0, _objectHash2.default)(graph); | ||
if (!name) { | ||
name = 'comp' + (0, _objectHash2.default)(graph); | ||
} | ||
graph.setNode(name, label); | ||
markNodes(graph, subset); | ||
graph.setNode(comp, createLabel(graph, subset, comp)); | ||
var _iteratorNormalCompletion6 = true; | ||
var _didIteratorError6 = false; | ||
var _iteratorError6 = undefined; | ||
var _iteratorNormalCompletion7 = true; | ||
var _didIteratorError7 = false; | ||
var _iteratorError7 = undefined; | ||
try { | ||
for (var _iterator7 = subset[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { | ||
var n = _step7.value; | ||
for (var _iterator6 = subset[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { | ||
var n = _step6.value; | ||
graph.setParent(n, comp); | ||
graph.setParent(n, name); | ||
} | ||
} catch (err) { | ||
_didIteratorError7 = true; | ||
_iteratorError7 = err; | ||
_didIteratorError6 = true; | ||
_iteratorError6 = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion7 && _iterator7.return) { | ||
_iterator7.return(); | ||
if (!_iteratorNormalCompletion6 && _iterator6.return) { | ||
_iterator6.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError7) { | ||
throw _iteratorError7; | ||
if (_didIteratorError6) { | ||
throw _iteratorError6; | ||
} | ||
@@ -299,0 +268,0 @@ } |
@@ -26,3 +26,5 @@ 'use strict'; | ||
exports.getAll = getAll; | ||
exports.ports = ports; | ||
exports.portType = portType; | ||
exports.setPortType = setPortType; | ||
exports.portDirectionType = portDirectionType; | ||
@@ -149,7 +151,16 @@ | ||
function portType(graph, node, port) { | ||
function ports(graph, node) { | ||
var curNode = graph.node(node); | ||
return _lodash2.default.merge({}, curNode.inputPorts, curNode.outputPorts)[port]; | ||
return _lodash2.default.merge({}, curNode.inputPorts, curNode.outputPorts); | ||
} | ||
function portType(graph, node, port) { | ||
return ports(graph, node)[port]; | ||
} | ||
function setPortType(graph, node, port, type) { | ||
var ports = graph.node(node).inputPorts[port] ? graph.node(node).inputPorts : graph.node(node).outputPorts; | ||
ports[port] = type; | ||
} | ||
function portDirectionType(graph, node, port) { | ||
@@ -156,0 +167,0 @@ var curNode = graph.node(node); |
{ | ||
"name": "@buggyorg/graphtools", | ||
"version": "0.2.18", | ||
"version": "0.2.19", | ||
"description": "Tools for processing buggy graphs.", | ||
@@ -5,0 +5,0 @@ "main": "lib/api.js", |
@@ -67,11 +67,2 @@ import graphlib from 'graphlib' | ||
// TODO: unfinished | ||
var createLabel = function (graph, subset, name) { | ||
var label = { id: name, atomic: false, name: name, nodeType: 'process', inputPorts: {}, outputPorts: {} } | ||
for (let n of subset) { | ||
n | ||
} | ||
return label | ||
} | ||
export function isCompoundable (g, subset) { | ||
@@ -97,15 +88,15 @@ var graph = graphlib.json.read(JSON.parse(JSON.stringify(graphlib.json.write(g)))) | ||
export function compoundify (g, subset) { | ||
export function compoundify (g, subset, name, label) { | ||
if (!isCompoundable(g, subset)) { throw new Error('This subset cannot be compoundified given this particular subset.') } | ||
if (subset.length < 1) { return g } | ||
var graph = graphlib.json.read(JSON.parse(JSON.stringify(graphlib.json.write(g)))) | ||
var comp = 'comp' + hash(graph) | ||
if (!name) { | ||
name = 'comp' + hash(graph) | ||
} | ||
graph.setNode(name, label) | ||
markNodes(graph, subset) | ||
graph.setNode(comp, createLabel(graph, subset, comp)) | ||
for (let n of subset) { | ||
graph.setParent(n, comp) | ||
graph.setParent(n, name) | ||
} | ||
return graph | ||
} |
@@ -102,7 +102,16 @@ | ||
export function portType (graph, node, port) { | ||
export function ports (graph, node) { | ||
var curNode = graph.node(node) | ||
return _.merge({}, curNode.inputPorts, curNode.outputPorts)[port] | ||
return _.merge({}, curNode.inputPorts, curNode.outputPorts) | ||
} | ||
export function portType (graph, node, port) { | ||
return ports(graph, node)[port] | ||
} | ||
export function setPortType (graph, node, port, type) { | ||
var ports = (graph.node(node).inputPorts[port]) ? graph.node(node).inputPorts : graph.node(node).outputPorts | ||
ports[port] = type | ||
} | ||
export function portDirectionType (graph, node, port) { | ||
@@ -109,0 +118,0 @@ var curNode = graph.node(node) |
338277
48
10922