This repository was archived by the owner on Feb 12, 2024. It is now read-only.
File tree 3 files changed +38
-67
lines changed
3 files changed +38
-67
lines changed Original file line number Diff line number Diff line change @@ -50,24 +50,26 @@ module.exports = function files (self) {
50
50
return callback ( new Error ( 'You must supply a multihash' ) )
51
51
}
52
52
53
- pull (
54
- pull . values ( [ hash ] ) ,
55
- pull . asyncMap ( self . _dagS . get . bind ( self . _dagS ) ) ,
56
- pull . take ( 1 ) ,
57
- pull . map ( ( node ) => {
58
- const data = UnixFS . unmarshal ( node . data )
59
- if ( data . type === 'directory' ) {
60
- return pull . error ( new Error ( 'This dag node is a directory' ) )
61
- }
62
-
63
- return exporter ( hash , self . _dagS )
64
- } ) ,
65
- pull . flatten ( ) ,
66
- pull . collect ( ( err , files ) => {
67
- if ( err ) return callback ( err )
68
- callback ( null , toStream . source ( files [ 0 ] . content ) )
69
- } )
70
- )
53
+ self . _dagS . get ( hash , ( err , node ) => {
54
+ if ( err ) {
55
+ return callback ( err )
56
+ }
57
+
58
+ const data = UnixFS . unmarshal ( node . data )
59
+ if ( data . type === 'directory' ) {
60
+ return callback (
61
+ new Error ( 'This dag node is a directory' )
62
+ )
63
+ }
64
+
65
+ pull (
66
+ exporter ( hash , self . _dagS ) ,
67
+ pull . collect ( ( err , files ) => {
68
+ if ( err ) return callback ( err )
69
+ callback ( null , toStream . source ( files [ 0 ] . content ) )
70
+ } )
71
+ )
72
+ } )
71
73
} ) ,
72
74
73
75
get : promisify ( ( hash , callback ) => {
Original file line number Diff line number Diff line change @@ -73,7 +73,15 @@ exports.get = {
73
73
const pack = tar . pack ( )
74
74
75
75
ipfs . files . getPull ( key , ( err , stream ) => {
76
- if ( err ) return handleError ( err )
76
+ if ( err ) {
77
+ log . error ( err )
78
+
79
+ reply ( {
80
+ Message : 'Failed to get file: ' + err ,
81
+ Code : 0
82
+ } ) . code ( 500 )
83
+ return
84
+ }
77
85
78
86
pull (
79
87
stream ,
@@ -91,7 +99,15 @@ exports.get = {
91
99
}
92
100
} ) ,
93
101
pull . onEnd ( ( err ) => {
94
- if ( err ) return handleError ( err )
102
+ if ( err ) {
103
+ log . error ( err )
104
+
105
+ reply ( {
106
+ Message : 'Failed to get file: ' + err ,
107
+ Code : 0
108
+ } ) . code ( 500 )
109
+ return
110
+ }
95
111
96
112
pack . finalize ( )
97
113
} )
@@ -101,15 +117,6 @@ exports.get = {
101
117
// to pull values through
102
118
reply ( pack ) . header ( 'X-Stream-Output' , '1' )
103
119
} )
104
-
105
- function handleError ( err ) {
106
- log . error ( err )
107
-
108
- reply ( {
109
- Message : 'Failed to get file: ' + err ,
110
- Code : 0
111
- } ) . code ( 500 )
112
- }
113
120
}
114
121
}
115
122
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments