UNPKG

@rimbu/graph

Version:

Immutable Graph data structures for TypeScript

56 lines 1.89 kB
"use strict"; 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