Skip to content

Commit eab7cbc

Browse files
erikkempermanphated
authored andcommitted
Update: Use new mkdirpStream in dest & symlink
1 parent 481e746 commit eab7cbc

File tree

4 files changed

+26
-45
lines changed

4 files changed

+26
-45
lines changed

lib/dest/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ var lead = require('lead');
44
var pumpify = require('pumpify');
55
var prepare = require('vinyl-prepare');
66

7+
var fo = require('../file-operations');
78
var sourcemap = require('./sourcemap');
8-
var makeDirs = require('./make-dirs');
99
var writeContents = require('./write-contents');
1010

1111
function dest(outFolder, opt) {
@@ -16,7 +16,7 @@ function dest(outFolder, opt) {
1616
var saveStream = pumpify.obj(
1717
prepare.dest(outFolder, opt),
1818
sourcemap(opt),
19-
makeDirs(opt),
19+
fo.mkdirpStream(opt),
2020
writeContents(opt)
2121
);
2222

lib/dest/make-dirs.js

-29
This file was deleted.

lib/file-operations.js

+22
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ var fs = require('graceful-fs');
66
var path = require('path');
77
var assign = require('object-assign');
88
var date = require('value-or-function').date;
9+
var number = require('value-or-function').number;
10+
var through = require('through2');
911
var FlushWriteStream = require('flush-write-stream');
1012

1113
var constants = require('./constants');
@@ -321,6 +323,25 @@ function mkdirp(dirpath, customMode, callback) {
321323
}
322324
}
323325

326+
function mkdirpStream(opt) {
327+
328+
function makeFileDirs(file, enc, callback) {
329+
// TODO: Can this be put on file.stat?
330+
var dirMode = number(opt.dirMode, file);
331+
332+
mkdirp(file.dirname, dirMode, onMkdirp);
333+
334+
function onMkdirp(mkdirpErr) {
335+
if (mkdirpErr) {
336+
return callback(mkdirpErr);
337+
}
338+
callback(null, file);
339+
}
340+
}
341+
342+
return through.obj(makeFileDirs);
343+
}
344+
324345
function createWriteStream(path, options, flush) {
325346
return new WriteStream(path, options, flush);
326347
}
@@ -427,5 +448,6 @@ module.exports = {
427448
updateMetadata: updateMetadata,
428449
writeFile: writeFile,
429450
mkdirp: mkdirp,
451+
mkdirpStream: mkdirpStream,
430452
createWriteStream: createWriteStream,
431453
};

lib/symlink/index.js

+2-14
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ var lead = require('lead');
1313

1414
var fo = require('../file-operations');
1515

16-
var number = valueOrFunction.number;
1716
var boolean = valueOrFunction.boolean;
1817

1918
var isWindows = (os.platform() === 'win32');
@@ -51,19 +50,7 @@ function symlink(outFolder, opt) {
5150
srcPath = path.relative(file.base, srcPath);
5251
}
5352

54-
// TODO: make DRY with .dest()
55-
var dirMode = number(opt.dirMode, file);
56-
var writeFolder = path.dirname(file.path);
57-
58-
fo.mkdirp(writeFolder, dirMode, onMkdirp);
59-
60-
function onMkdirp(mkdirpErr) {
61-
if (mkdirpErr) {
62-
return callback(mkdirpErr);
63-
}
64-
65-
fs.symlink(srcPath, file.path, symType, onSymlink);
66-
}
53+
fs.symlink(srcPath, file.path, symType, onSymlink);
6754

6855
function onSymlink(symlinkErr) {
6956
if (isErrorFatal(symlinkErr)) {
@@ -75,6 +62,7 @@ function symlink(outFolder, opt) {
7562

7663
var stream = pumpify.obj(
7764
prepare.dest(outFolder, opt),
65+
fo.mkdirpStream(opt),
7866
through.obj(linkFile)
7967
);
8068

0 commit comments

Comments
 (0)