@@ -6,11 +6,11 @@ const contentPath = require('./path')
6
6
const fixOwner = require ( '../util/fix-owner' )
7
7
const fs = require ( 'graceful-fs' )
8
8
const moveFile = require ( '../util/move-file' )
9
+ const PassThrough = require ( 'stream' ) . PassThrough
9
10
const path = require ( 'path' )
10
- const pipe = require ( 'mississippi' ) . pipe
11
+ const pipe = BB . promisify ( require ( 'mississippi' ) . pipe )
11
12
const rimraf = BB . promisify ( require ( 'rimraf' ) )
12
13
const ssri = require ( 'ssri' )
13
- const through = require ( 'mississippi' ) . through
14
14
const to = require ( 'mississippi' ) . to
15
15
const uniqueFilename = require ( 'unique-filename' )
16
16
@@ -43,7 +43,7 @@ function write (cache, data, opts) {
43
43
module . exports . stream = writeStream
44
44
function writeStream ( cache , opts ) {
45
45
opts = opts || { }
46
- const inputStream = through ( )
46
+ const inputStream = new PassThrough ( )
47
47
let inputErr = false
48
48
function errCheck ( ) {
49
49
if ( inputErr ) { throw inputErr }
@@ -90,34 +90,23 @@ function handleContent (inputStream, cache, opts, errCheck) {
90
90
}
91
91
92
92
function pipeToTmp ( inputStream , cache , tmpTarget , opts , errCheck ) {
93
- let sri
94
- const hashStream = ssri . integrityStream ( {
95
- integrity : opts . integrity ,
96
- algorithms : opts . algorithms ,
97
- size : opts . size
98
- } ) . on ( 'integrity' , s => {
99
- sri = s
100
- } )
101
-
102
- let outStream = new BB ( ( resolve , reject ) => {
103
- errCheck ( )
104
- resolve ( fs . createWriteStream ( tmpTarget , {
93
+ return BB . resolve ( ) . then ( ( ) => {
94
+ let sri
95
+ const hashStream = ssri . integrityStream ( {
96
+ integrity : opts . integrity ,
97
+ algorithms : opts . algorithms ,
98
+ size : opts . size
99
+ } ) . on ( 'integrity' , s => {
100
+ sri = s
101
+ } )
102
+ const outStream = fs . createWriteStream ( tmpTarget , {
105
103
flags : 'wx'
106
- } ) )
107
- } )
108
- return BB . using ( outStream , outStream => {
104
+ } )
109
105
errCheck ( )
110
- return new BB ( ( resolve , reject ) => {
111
- errCheck ( )
112
- inputStream . on ( 'error' , reject )
113
- pipe ( inputStream , hashStream , outStream , err => {
114
- errCheck ( )
115
- if ( err ) {
116
- rimraf ( tmpTarget ) . then ( ( ) => reject ( err ) , reject )
117
- } else {
118
- resolve ( sri )
119
- }
120
- } )
106
+ return pipe ( inputStream , hashStream , outStream ) . then ( ( ) => {
107
+ return sri
108
+ } , err => {
109
+ return rimraf ( tmpTarget ) . then ( ( ) => { throw err } )
121
110
} )
122
111
} )
123
112
}
0 commit comments