New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

graphology-gexf

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

graphology-gexf

GEXF parser & writer for graphology.

  • 0.12.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5.1K
decreased by-6.92%
Maintainers
1
Weekly downloads
 
Created
Source

Build Status

Graphology GEXF Utilities

GEXF parser & writer for graphology.

For more information about the GEXF file format, you can head there.

Installation

npm install graphology-gexf

Usage

Parser

The parser must be passed a graphology constructor and is able to read either a string, or an XMLDocument instance.

var Graph = require('graphology');

// Node
var gexf = require('graphology-gexf');
// Browser
var gexf = require('graphology-gexf/browser');

// Reading a string
var graph = gexf.parse(Graph, string);

// Reading a dom document
var graph = gexf.parse(Graph, xmlDocument);

// Passing options
var graph = gexf.parse(Graph, string, {addMissingNodes: true});

Arguments

  • constructor GraphClass: graphology constructor to use.
  • source string|Document: source data to parse.
  • options ?object: parsing options:
    • addMissingNodes ?boolean [false]: whether to add missing nodes referenced in the file's edges.
    • allowUndeclaredAttributes ?boolean [false]: whether to allow undeclared attributes for both nodes & edges, which will be considered as strings.

Writer

The writer must be passed a graphology instance and will output a GEXF string.

// Node
var gexf = require('graphology-gexf');
// Browser
var gexf = require('graphology-gexf/browser');

// Writing the graph
var gexfString = gexf.write(graph);

// Using custom formatting for nodes & edges
var gexfString = gexf.write(graph, {
  formatNode: function (key, attributes) {
    return {
      label: attributes.label,
      attributes: {
        age: attributes.age,
        name: attributes.name
      },
      viz: {
        color: '#FF0',
        x: attributes.x,
        y: attributes.y,
        shape: 'circle',
        size: 20
      }
    };
  },
  formatEdge: function (key, attributes) {
    return {
      label: attributes.label,
      attributes: {
        number: attributes.number
      },
      weight: attributes.weight,
      viz: {
        color: '#FF0',
        x: attributes.x,
        y: attributes.y,
        shape: 'dotted',
        thickness: 20
      }
    };
  }
});

Arguments

  • graph Graph: graphology instance to write.
  • options ?object: Options:
    • encoding ?string [UTF-8]: encoding declaration.
    • formatNode ?function: function returning the node's data to write.
    • formatEdge ?function: function returning the edge's data to write.
    • pretty ?boolean [true]: pretty-print output?
    • pedantic ?boolean [false]: whether to output a stricter gexf file to make sure it can be validated using the most restrictive gexf xsd schemas. Note that the output may lose some graph attributes when doing so.
    • version ?string [1.2]: gexf version to emit. Should be one of 1.2 or 1.3.

Notes

Currently, mutual (a specific gexf type for edges that is seldom used in practice) edges are parsed as undirected ones rather than two directed ones because it could produce a key conflict. An option to deal differently with this may be added in the future if it becomes a problem.

Keywords

FAQs

Package last updated on 09 Dec 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc