Skip to content

Commit 2964319

Browse files
committed
Improve graph representation with proper versioning
1 parent 17ed953 commit 2964319

File tree

11 files changed

+706
-43
lines changed

11 files changed

+706
-43
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { Node } = require('./Node');
2+
3+
class AuthNode extends Node {
4+
constructor() {
5+
super('authNode');
6+
}
7+
8+
serialize(id, data, metadata) {
9+
return {
10+
id,
11+
type: 'authNode',
12+
data,
13+
...metadata,
14+
};
15+
}
16+
17+
deserialize(node) {
18+
const id = node.id;
19+
const data = node.data;
20+
delete node.id;
21+
delete node.data;
22+
const metadata = node;
23+
24+
return {
25+
id,
26+
data,
27+
metadata,
28+
};
29+
}
30+
}
31+
32+
module.exports = {
33+
AuthNode,
34+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { Node } = require('./Node');
2+
3+
class ComplexNode extends Node {
4+
constructor() {
5+
super('complexNode');
6+
}
7+
8+
serialize(id, data, metadata) {
9+
return {
10+
id,
11+
type: 'complexNode',
12+
data,
13+
...metadata,
14+
};
15+
}
16+
17+
deserialize(node) {
18+
const id = node.id;
19+
const data = node.data;
20+
delete node.id;
21+
delete node.data;
22+
const metadata = node;
23+
24+
return {
25+
id,
26+
data,
27+
metadata,
28+
};
29+
}
30+
}
31+
32+
module.exports = {
33+
ComplexNode,
34+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { Node } = require('./Node');
2+
3+
class DelayNode extends Node {
4+
constructor() {
5+
super('delayNode');
6+
}
7+
8+
serialize(id, data, metadata) {
9+
return {
10+
id,
11+
type: 'delayNode',
12+
data,
13+
...metadata,
14+
};
15+
}
16+
17+
deserialize(node) {
18+
const id = node.id;
19+
const data = node.data;
20+
delete node.id;
21+
delete node.data;
22+
const metadata = node;
23+
24+
return {
25+
id,
26+
data,
27+
metadata,
28+
};
29+
}
30+
}
31+
32+
module.exports = {
33+
DelayNode,
34+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { Node } = require('./Node');
2+
3+
class EvaluateNode extends Node {
4+
constructor() {
5+
super('evaluateNode');
6+
}
7+
8+
serialize(id, data, metadata) {
9+
return {
10+
id,
11+
type: 'evaluateNode',
12+
data,
13+
...metadata,
14+
};
15+
}
16+
17+
deserialize(node) {
18+
const id = node.id;
19+
const data = node.data;
20+
delete node.id;
21+
delete node.data;
22+
const metadata = node;
23+
24+
return {
25+
id,
26+
data,
27+
metadata,
28+
};
29+
}
30+
}
31+
32+
module.exports = {
33+
EvaluateNode,
34+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Node {
2+
constructor(type) {
3+
this.type = type;
4+
}
5+
6+
serialize(id, data, metadata) {
7+
throw new Error('Serialize method must be implemented by subclasses');
8+
}
9+
10+
deserialize(node) {
11+
throw new Error('Deserialize method must be implemented by subclasses');
12+
}
13+
}
14+
15+
module.exports = {
16+
Node,
17+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { Node } = require('./Node');
2+
3+
class OutputNode extends Node {
4+
constructor() {
5+
super('outputNode');
6+
}
7+
8+
serialize(id, data, metadata) {
9+
return {
10+
id,
11+
type: 'outputNode',
12+
data,
13+
...metadata,
14+
};
15+
}
16+
17+
deserialize(node) {
18+
const id = node.id;
19+
const { ['output']: _, ...data } = node.data;
20+
delete node.id;
21+
delete node.data;
22+
const metadata = node;
23+
24+
return {
25+
id,
26+
data,
27+
metadata,
28+
};
29+
}
30+
}
31+
32+
module.exports = {
33+
OutputNode,
34+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const { Node } = require('./Node');
2+
3+
class RequestNode extends Node {
4+
constructor() {
5+
super('requestNode');
6+
}
7+
8+
serialize(id, data, metadata) {
9+
return {
10+
id,
11+
type: 'requestNode',
12+
data,
13+
...metadata,
14+
};
15+
}
16+
17+
deserialize(node) {
18+
const id = node.id;
19+
const data = node.data;
20+
delete node.id;
21+
delete node.data;
22+
const metadata = node;
23+
24+
return {
25+
id,
26+
data,
27+
metadata,
28+
};
29+
}
30+
}
31+
32+
module.exports = {
33+
RequestNode,
34+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const { Node } = require('./Node');
2+
3+
class StartNode extends Node {
4+
constructor() {
5+
super('startNode');
6+
}
7+
8+
serialize(id, data, metadata) {
9+
return {
10+
id,
11+
...metadata,
12+
};
13+
}
14+
15+
deserialize(node) {
16+
const id = node.id;
17+
delete node.id;
18+
const metadata = node;
19+
20+
return {
21+
id,
22+
metadata,
23+
};
24+
}
25+
}
26+
27+
module.exports = {
28+
StartNode,
29+
};

0 commit comments

Comments
 (0)