1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 'use strict';
- var through = require('through2');
- var mkdirp = require('./mkdirp');
- function toFunction(dirpath) {
- function stringResolver(chunk, callback) {
- callback(null, dirpath);
- }
- return stringResolver;
- }
- function define(options) {
- function mkdirpStream(resolver) {
- // Handle resolver that's just a dirpath
- if (typeof resolver === 'string') {
- resolver = toFunction(resolver);
- }
- function makeFileDirs(chunk, enc, callback) {
- resolver(chunk, onDirpath);
- function onDirpath(dirpathErr, dirpath, mode) {
- if (dirpathErr) {
- return callback(dirpathErr);
- }
- mkdirp(dirpath, mode, onMkdirp);
- }
- function onMkdirp(mkdirpErr) {
- if (mkdirpErr) {
- return callback(mkdirpErr);
- }
- callback(null, chunk);
- }
- }
- return through(options, makeFileDirs);
- }
- return mkdirpStream;
- }
- module.exports = define();
- module.exports.obj = define({ objectMode: true, highWaterMark: 16 });
|