@gram-data/gram-ops
Version:
gram data graph operations
3 lines (2 loc) • 1.76 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(((e=e||self).gram=e.gram||{},e.gram.ops={}))}(this,(function(e){"use strict";function n(){return(n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}var r=function e(n){return void 0===n.children||0===n.children.length?n:e(n.children[0])},t=function e(n){return void 0===n.children||0===n.children.length?n:e(n.children[n.children.length-1])};e.count=function e(n){return n.children.reduce((function(n,r){return n+e(r)}),1)},e.edges=function e(i){return void 0===i||void 0===i.children||0===i.children.length?[]:2===i.children.length?[].concat(e(i.children[0]),void 0!==i.kind&&"pair"!==i.kind?[(c=[t(i.children[0]),r(i.children[1])],d=i.kind,o=i.id,u=i.labels,l=i.record,n({type:"path",id:o},u&&{labels:u},l&&{record:l},{kind:d,children:c}))]:[],e(i.children[1])):i.children.reduce((function(n,r){return[].concat(n,e(r))}),[]);var c,d,o,u,l},e.head=r,e.identity=function(e){return e.id},e.merge=function(e,n){return n},e.nodes=function e(n){if(function(e){return!!e.type&&"path"===e.type}(r=n)&&r.children&&0===r.children.length&&"ø"!==r.id)return[n];var r;if(function(e){return!!e.type&&"seq"===e.type}(n))return e(n.children);if(Array.isArray(n)){var t=[],i=n.map(e).flat().reduce((function(e,n){return n.id?e.has(n.id)?e.set(n.id,Object.assign(e.get(n.id),n)):e.set(n.id,n):t.push(n),e}),new Map);return Array.from(i.values()).concat(t)}return e(n.children)},e.tail=t,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=gram-ops.umd.production.min.js.map