@@ -6,14 +6,12 @@ const dagCBOR = require('ipld-dag-cbor')
6
6
const CID = require ( 'cids' )
7
7
8
8
const config = require ( '../config' )
9
- const eventLinkTypes = require ( '../messages/protobuffers' ) . TopicDescriptor . MetaData . EventLinking
10
- const {
11
- linkUnmarshalling,
12
- linkMarshalling
13
- } = require ( './utils' )
9
+ const eventLinkTypes = require ( '../messages/protobuffers' ) . TopicDescriptor
10
+ . MetaData . EventLinking
11
+ const { linkUnmarshalling, linkMarshalling } = require ( './utils' )
14
12
15
13
class TopicNode {
16
- constructor ( name , author , options = { } ) {
14
+ constructor ( name , author , options = { } ) {
17
15
assert ( author , 'Need an author to create a topic node' )
18
16
19
17
this . name = name
@@ -23,19 +21,21 @@ class TopicNode {
23
21
this . parent = options . parent ? new CID ( options . parent ) : null
24
22
if ( options . subTopics ) {
25
23
this . subTopics = Object . entries ( options . subTopics )
26
- . map ( ( [ name , topicB58Str ] ) => ( { [ name ] : new CID ( topicB58Str ) } ) )
27
- . reduce ( ( topics , topic ) => ( { ...topic , ...topics } ) , { } )
24
+ . map ( ( [ name , topicB58Str ] ) => ( { [ name ] : new CID ( topicB58Str ) } ) )
25
+ . reduce ( ( topics , topic ) => ( { ...topic , ...topics } ) , { } )
28
26
}
29
27
30
28
this . metadata = createMetadata ( options . metadata )
31
29
}
32
30
33
- static deserialize ( topic ) {
31
+ static deserialize ( topic ) {
34
32
const author = PeerId . createFromBytes ( topic . author )
35
33
const parent = linkUnmarshalling ( topic . parent )
36
- const subTopics = Object . entries ( topic [ '#' ] ) . map ( ( [ name , dagLink ] ) => {
37
- return { [ name ] : linkUnmarshalling ( dagLink ) }
38
- } ) . reduce ( ( topics , topic ) => ( { ...topic , ...topics } ) , { } )
34
+ const subTopics = Object . entries ( topic [ '#' ] )
35
+ . map ( ( [ name , dagLink ] ) => {
36
+ return { [ name ] : linkUnmarshalling ( dagLink ) }
37
+ } )
38
+ . reduce ( ( topics , topic ) => ( { ...topic , ...topics } ) , { } )
39
39
40
40
return new TopicNode ( topic . name , author , {
41
41
subTopics,
@@ -44,14 +44,14 @@ class TopicNode {
44
44
} )
45
45
}
46
46
47
- static deserializeCBOR ( topic , cb ) {
47
+ static deserializeCBOR ( topic , cb ) {
48
48
dagCBOR . util . deserialize ( topic , ( err , result ) => {
49
49
if ( err ) return cb ( err )
50
50
cb ( null , TopicNode . deserialize ( result ) )
51
51
} )
52
52
}
53
53
54
- getReadableFormat ( ) {
54
+ getReadableFormat ( ) {
55
55
const allowedPublishers = Array . isArray ( this . metadata . allowedPublishers )
56
56
? this . metadata . allowedPublishers . map ( p => p . toB58String ( ) )
57
57
: this . metadata . allowedPublishers
@@ -70,40 +70,44 @@ class TopicNode {
70
70
}
71
71
}
72
72
73
- getCID ( cb ) {
73
+ getCID ( cb ) {
74
74
dagCBOR . util . cid ( this . serialize ( ) , cb )
75
75
}
76
76
77
- serialize ( ) {
77
+ serialize ( ) {
78
78
return {
79
79
name : this . name ,
80
80
author : this . author . toBytes ( ) ,
81
81
parent : linkMarshalling ( this . parent ) ,
82
- '#' : Object . entries ( this . subTopics ) . map ( ( [ name , cid ] ) => {
83
- return { [ name ] : linkMarshalling ( cid ) }
84
- } ) . reduce ( ( topics , topic ) => ( { ...topic , ...topics } ) , { } ) ,
82
+ '#' : Object . entries ( this . subTopics )
83
+ . map ( ( [ name , cid ] ) => {
84
+ return { [ name ] : linkMarshalling ( cid ) }
85
+ } )
86
+ . reduce ( ( topics , topic ) => ( { ...topic , ...topics } ) , { } ) ,
85
87
metadata : serializeMetadata ( this . metadata )
86
88
}
87
89
}
88
90
89
- serializeCBOR ( cb ) {
91
+ serializeCBOR ( cb ) {
90
92
const serialized = this . serialize ( )
91
93
dagCBOR . util . serialize ( serialized , cb )
92
94
}
93
95
}
94
96
95
- function serializeMetadata ( metadata ) {
96
- const allowedPublishers = { enabled : false , peers : [ ] }
97
+ function serializeMetadata ( metadata ) {
98
+ const allowedPublishers = { enabled : false , peers : [ ] }
97
99
if ( metadata . allowedPublishers ) {
98
100
allowedPublishers . enabled = true
99
- allowedPublishers . peers = metadata . allowedPublishers . map ( ( peer ) => peer . toBytes ( ) )
101
+ allowedPublishers . peers = metadata . allowedPublishers . map ( peer =>
102
+ peer . toBytes ( )
103
+ )
100
104
}
101
105
102
- const requestToPublish = { enabled : false , peers : [ ] }
106
+ const requestToPublish = { enabled : false , peers : [ ] }
103
107
if ( metadata . requestToPublish ) {
104
108
requestToPublish . enabled = true
105
109
requestToPublish . peers = Array . isArray ( metadata . requestToPublish )
106
- ? metadata . requestToPublish . map ( ( peer ) => peer . toBytes ( ) )
110
+ ? metadata . requestToPublish . map ( peer => peer . toBytes ( ) )
107
111
: [ ]
108
112
}
109
113
@@ -116,15 +120,22 @@ function serializeMetadata (metadata) {
116
120
}
117
121
}
118
122
119
- function deserializeMetadata ( metadata ) {
123
+ function deserializeMetadata ( metadata ) {
120
124
const allowedPublishers = metadata . allowedPublishers . enabled
121
- ? metadata . allowedPublishers . peers . map ( ( peer ) => PeerId . createFromBytes ( peer ) )
125
+ ? metadata . allowedPublishers . peers . map ( peer => PeerId . createFromBytes ( peer ) )
122
126
: false
123
127
124
128
let requestToPublish
125
129
if ( ! metadata . requestToPublish . enabled ) requestToPublish = false
126
- if ( metadata . requestToPublish . enabled && ! metadata . requestToPublish . peers . length ) requestToPublish = true
127
- else requestToPublish = metadata . requestToPublish . peers . map ( ( peer ) => PeerId . createFromBytes ( peer ) )
130
+ if (
131
+ metadata . requestToPublish . enabled &&
132
+ ! metadata . requestToPublish . peers . length
133
+ )
134
+ requestToPublish = true
135
+ else
136
+ requestToPublish = metadata . requestToPublish . peers . map ( peer =>
137
+ PeerId . createFromBytes ( peer )
138
+ )
128
139
129
140
return {
130
141
...metadata ,
@@ -136,7 +147,7 @@ function deserializeMetadata (metadata) {
136
147
}
137
148
}
138
149
139
- function createMetadata ( {
150
+ function createMetadata ( {
140
151
allowedPublishers = false ,
141
152
requestToPublish = true ,
142
153
eventLinking = 'LAST_SEEN' ,
0 commit comments