@@ -51,8 +51,8 @@ function Data (type, data) {
5151 this . blockSizes . forEach ( ( size ) => {
5252 sum += size
5353 } )
54- if ( data ) {
55- sum += data . length
54+ if ( this . data ) {
55+ sum += this . data . length
5656 }
5757 return sum
5858 }
@@ -87,17 +87,13 @@ function Data (type, data) {
8787 let mode
8888
8989 if ( ! isNaN ( this . mode ) ) {
90- mode = {
91- value : this . mode
92- }
90+ mode = this . mode
9391 }
9492
9593 let mtime
9694
9795 if ( this . mtime ) {
98- mtime = {
99- seconds : Math . round ( this . mtime . getTime ( ) / 1000 )
100- }
96+ mtime = Math . round ( this . mtime . getTime ( ) / 1000 )
10197 }
10298
10399 return unixfsData . encode ( {
@@ -116,20 +112,16 @@ function Data (type, data) {
116112// decode from protobuf https://github.com/ipfs/go-ipfs/blob/master/unixfs/format.go#L24
117113Data . unmarshal = ( marshaled ) => {
118114 const decoded = unixfsData . decode ( marshaled )
119-
120- if ( ! decoded . Data ) {
121- decoded . Data = undefined
122- }
123-
124- const obj = new Data ( types [ decoded . Type ] , decoded . Data )
115+ const data = decoded . hasData ( ) ? decoded . Data : undefined
116+ const obj = new Data ( types [ decoded . Type ] , data )
125117 obj . blockSizes = decoded . blocksizes
126118
127- if ( decoded . mode ) {
128- obj . mode = decoded . mode . value
119+ if ( decoded . hasMode ( ) ) {
120+ obj . mode = decoded . mode
129121 }
130122
131- if ( decoded . mtime ) {
132- obj . mtime = new Date ( decoded . mtime . seconds * 1000 )
123+ if ( decoded . hasMtime ( ) ) {
124+ obj . mtime = new Date ( decoded . mtime * 1000 )
133125 }
134126
135127 return obj
0 commit comments