Skip to content

Commit d67ddf0

Browse files
committed
Update: Swap mkdirp/mkdirpStream for fs-mkdirp-stream dependency
1 parent 77508bb commit d67ddf0

File tree

8 files changed

+23
-319
lines changed

8 files changed

+23
-319
lines changed

lib/constants.js

-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@
33
module.exports = {
44
MASK_MODE: parseInt('7777', 8),
55
DEFAULT_FILE_MODE: parseInt('0666', 8),
6-
DEFAULT_DIR_MODE: parseInt('0777', 8),
76
};

lib/dest/index.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
var lead = require('lead');
44
var pumpify = require('pumpify');
55
var prepare = require('vinyl-prepare');
6+
var mkdirpStream = require('fs-mkdirp-stream');
7+
var number = require('value-or-function').number;
68

7-
var fo = require('../file-operations');
89
var sourcemap = require('./sourcemap');
910
var writeContents = require('./write-contents');
1011

@@ -13,10 +14,16 @@ function dest(outFolder, opt) {
1314
opt = {};
1415
}
1516

17+
function dirpath(file, callback) {
18+
var dirMode = number(opt.dirMode, file);
19+
20+
callback(null, file.dirname, dirMode);
21+
}
22+
1623
var saveStream = pumpify.obj(
1724
prepare.dest(outFolder, opt),
1825
sourcemap(opt),
19-
fo.mkdirpStream(opt),
26+
mkdirpStream.obj(dirpath),
2027
writeContents(opt)
2128
);
2229

lib/dest/write-contents/write-dir.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
var fs = require('graceful-fs');
44

5+
var mkdirp = require('fs-mkdirp-stream/mkdirp');
6+
57
var fo = require('../../file-operations');
68

79
function writeDir(file, onWritten) {
8-
fo.mkdirp(file.path, file.stat.mode, onMkdirp);
10+
mkdirp(file.path, file.stat.mode, onMkdirp);
911

1012
function onMkdirp(mkdirpErr) {
1113
if (mkdirpErr) {

lib/file-operations.js

-84
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33
var util = require('util');
44

55
var fs = require('graceful-fs');
6-
var path = require('path');
76
var assign = require('object-assign');
87
var date = require('value-or-function').date;
9-
var number = require('value-or-function').number;
10-
var through = require('through2');
118
var FlushWriteStream = require('flush-write-stream');
129

1310
var constants = require('./constants');
@@ -285,85 +282,6 @@ function writeFile(filepath, data, options, callback) {
285282
}
286283
}
287284

288-
function mkdirp(dirpath, customMode, callback) {
289-
if (typeof customMode === 'function') {
290-
callback = customMode;
291-
customMode = undefined;
292-
}
293-
294-
var mode = customMode || (constants.DEFAULT_DIR_MODE & ~process.umask());
295-
dirpath = path.resolve(dirpath);
296-
297-
fs.mkdir(dirpath, mode, onMkdir);
298-
299-
function onMkdir(mkdirErr) {
300-
if (!mkdirErr) {
301-
return fs.stat(dirpath, onStat);
302-
}
303-
304-
switch (mkdirErr.code) {
305-
case 'ENOENT': {
306-
return mkdirp(path.dirname(dirpath), onRecurse);
307-
}
308-
309-
case 'EEXIST': {
310-
return fs.stat(dirpath, onStat);
311-
}
312-
313-
default: {
314-
return callback(mkdirErr);
315-
}
316-
}
317-
318-
function onStat(statErr, stats) {
319-
if (statErr) {
320-
return callback(statErr);
321-
}
322-
323-
if (!stats.isDirectory()) {
324-
return callback(mkdirErr);
325-
}
326-
327-
if (stats.mode === mode) {
328-
return callback();
329-
}
330-
331-
if (!customMode) {
332-
return callback();
333-
}
334-
335-
fs.chmod(dirpath, mode, callback);
336-
}
337-
}
338-
339-
function onRecurse(recurseErr) {
340-
if (recurseErr) {
341-
return callback(recurseErr);
342-
}
343-
344-
mkdirp(dirpath, mode, callback);
345-
}
346-
}
347-
348-
function mkdirpStream(opt) {
349-
350-
function makeFileDirs(file, enc, callback) {
351-
// TODO: Can this be put on file.stat?
352-
var dirMode = number(opt.dirMode, file);
353-
354-
mkdirp(file.dirname, dirMode, onMkdirp);
355-
356-
function onMkdirp(mkdirpErr) {
357-
if (mkdirpErr) {
358-
return callback(mkdirpErr);
359-
}
360-
callback(null, file);
361-
}
362-
}
363-
364-
return through.obj(makeFileDirs);
365-
}
366-
367285
function createWriteStream(path, options, flush) {
368286
return new WriteStream(path, options, flush);
369287
}
@@ -471,7 +389,5 @@ module.exports = {
471389
isOwner: isOwner,
472390
updateMetadata: updateMetadata,
473391
writeFile: writeFile,
474-
mkdirp: mkdirp,
475-
mkdirpStream: mkdirpStream,
476392
createWriteStream: createWriteStream,
477393
};

lib/symlink/index.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ var prepare = require('vinyl-prepare');
1010
var valueOrFunction = require('value-or-function');
1111
var koalas = require('koalas');
1212
var lead = require('lead');
13+
var mkdirpStream = require('fs-mkdirp-stream');
1314

1415
var fo = require('../file-operations');
1516

17+
var number = valueOrFunction.number;
1618
var boolean = valueOrFunction.boolean;
1719

1820
var isWindows = (os.platform() === 'win32');
@@ -74,9 +76,15 @@ function symlink(outFolder, opt) {
7476
}
7577
}
7678

79+
function dirpath(file, callback) {
80+
var dirMode = number(opt.dirMode, file);
81+
82+
callback(null, file.dirname, dirMode);
83+
}
84+
7785
var stream = pumpify.obj(
7886
prepare.dest(outFolder, opt),
79-
fo.mkdirpStream(opt),
87+
mkdirpStream.obj(dirpath),
8088
through.obj(linkFile)
8189
);
8290

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
},
2828
"dependencies": {
2929
"flush-write-stream": "^1.0.0",
30+
"fs-mkdirp-stream": "^1.0.0",
3031
"glob-stream": "^6.1.0",
3132
"graceful-fs": "^4.0.0",
3233
"is-valid-glob": "^0.3.0",

0 commit comments

Comments
 (0)