@rimbu/graph
Version:
Immutable Graph data structures for TypeScript
56 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ValuedGraphElement = exports.ValuedLink = void 0;
var common_1 = require("@rimbu/common");
var ValuedLink;
(function (ValuedLink) {
function fromArgs(node1, node2, value) {
return [node1, node2, value];
}
ValuedLink.fromArgs = fromArgs;
})(ValuedLink || (exports.ValuedLink = ValuedLink = {}));
var ValuedGraphElement;
(function (ValuedGraphElement) {
/**
* Returns true if the given graph element `e` is a single node.
* Instructs the compiler that the type is a 1-tuple.
* @param e - the graph element
*/
function isSingleNode(e) {
return e.length === 1;
}
ValuedGraphElement.isSingleNode = isSingleNode;
/**
* Returns true if the given graph element `e` is a 3-tuple.
* Instructs the compiler that the type is a 3-tuple.
* @param e - the graph element
*/
function isLink(e) {
return e.length !== 1;
}
ValuedGraphElement.isLink = isLink;
function getSingleNode(e, otherwise) {
if (isSingleNode(e))
return e[0];
return (0, common_1.OptLazy)(otherwise);
}
ValuedGraphElement.getSingleNode = getSingleNode;
/**
* Returns the nodes of the link graph element if the given element `e` is
* a Link element, or undefined otherwise.
* @param e - the graph element
*/
function getLink(e) {
if (isLink(e))
return e;
return undefined;
}
ValuedGraphElement.getLink = getLink;
function getLinkElement(e, key, otherwise) {
if (isLink(e))
return e[key];
return (0, common_1.OptLazy)(otherwise);
}
ValuedGraphElement.getLinkElement = getLinkElement;
})(ValuedGraphElement || (exports.ValuedGraphElement = ValuedGraphElement = {}));
//# sourceMappingURL=valued-link.cjs.map