@@ -51,8 +51,8 @@ function Data (type, data) {
51
51
this . blockSizes . forEach ( ( size ) => {
52
52
sum += size
53
53
} )
54
- if ( data ) {
55
- sum += data . length
54
+ if ( this . data ) {
55
+ sum += this . data . length
56
56
}
57
57
return sum
58
58
}
@@ -87,17 +87,13 @@ function Data (type, data) {
87
87
let mode
88
88
89
89
if ( ! isNaN ( this . mode ) ) {
90
- mode = {
91
- value : this . mode
92
- }
90
+ mode = this . mode
93
91
}
94
92
95
93
let mtime
96
94
97
95
if ( this . mtime ) {
98
- mtime = {
99
- seconds : Math . round ( this . mtime . getTime ( ) / 1000 )
100
- }
96
+ mtime = Math . round ( this . mtime . getTime ( ) / 1000 )
101
97
}
102
98
103
99
return unixfsData . encode ( {
@@ -116,20 +112,16 @@ function Data (type, data) {
116
112
// decode from protobuf https://github.com/ipfs/go-ipfs/blob/master/unixfs/format.go#L24
117
113
Data . unmarshal = ( marshaled ) => {
118
114
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 )
125
117
obj . blockSizes = decoded . blocksizes
126
118
127
- if ( decoded . mode ) {
128
- obj . mode = decoded . mode . value
119
+ if ( decoded . hasMode ( ) ) {
120
+ obj . mode = decoded . mode
129
121
}
130
122
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 )
133
125
}
134
126
135
127
return obj
0 commit comments