| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 'use strict';var through = require('through2');var writeDir = require('./write-dir');var writeStream = require('./write-stream');var writeBuffer = require('./write-buffer');var writeSymbolicLink = require('./write-symbolic-link');var fo = require('../../file-operations');function writeContents(optResolver) {  function writeFile(file, enc, callback) {    // Write it as a symlink    if (file.isSymbolic()) {      return writeSymbolicLink(file, optResolver, onWritten);    }    // If directory then mkdirp it    if (file.isDirectory()) {      return writeDir(file, optResolver, onWritten);    }    // Stream it to disk yo    if (file.isStream()) {      return writeStream(file, optResolver, onWritten);    }    // Write it like normal    if (file.isBuffer()) {      return writeBuffer(file, optResolver, onWritten);    }    // If no contents then do nothing    if (file.isNull()) {      return onWritten();    }    // This is invoked by the various writeXxx modules when they've finished    // writing the contents.    function onWritten(writeErr) {      var flags = fo.getFlags({        overwrite: optResolver.resolve('overwrite', file),        append: optResolver.resolve('append', file),      });      if (fo.isFatalOverwriteError(writeErr, flags)) {        return callback(writeErr);      }      callback(null, file);    }  }  return through.obj(writeFile);}module.exports = writeContents;
 |