An open API service indexing awesome lists of open source software.

https://github.com/g-harel/paph

data-flow-graph based tool to transform data
https://github.com/g-harel/paph

data-flow graph shortest-path transform-data

Last synced: about 2 months ago
JSON representation

data-flow-graph based tool to transform data

Awesome Lists containing this project

README

        

# [paph](https://github.com/g-harel/paph)

[![NPM version](https://img.shields.io/npm/v/paph.svg)](https://www.npmjs.com/package/paph)
[![Travis](https://api.travis-ci.org/g-harel/paph.svg?branch=master)](https://travis-ci.org/g-harel/paph)
[![Codecov](https://img.shields.io/codecov/c/github/g-harel/paph.svg)](https://codecov.io/gh/g-harel/paph)

> Data-flow-graph based tool to transform data.

Shortest path between `initial` and `final` is found before returning a combined function of all the transitions.

Built in protection against cycles.

## Install

````
$ npm install --save paph
````

## Usage

````javascript
const paph = require('paph');

const store = paph();

// creating a relationship
store.add({start, end, weight?, transition});
└─┬──┘ │ └┐
String Number Function

// querying relationships
store.query(initial, final); // returns a function
└──┬───┘
String
````

````javascript
const paph = require('paph');

const store = paph();

store.add({
start: 'v1',
end: 'v2',
weight: 1,
transition: (data) => {
return data + '1,2 ';
},
});

store.add({
start: 'v2',
end: 'v3',
weight: 1,
transition: (data) => {
return data + '2,3 ' ;
},
});

store.query('v1', 'v3')('');
//=> '1,2 2,3'
````