| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 'use strict';var Stream = require('stream');var Path = require('path');function gulpRename(obj, options) {  options = options || {};  var stream = new Stream.Transform({objectMode: true});  function parsePath(path) {    var extname = options.multiExt ? Path.basename(path).slice(Path.basename(path).indexOf('.')) : Path.extname(path);    return {      dirname: Path.dirname(path),      basename: Path.basename(path, extname),      extname: extname    };  }  stream._transform = function (originalFile, unused, callback) {    var file = originalFile.clone({contents: false});    var parsedPath = parsePath(file.relative);    var path;    var type = typeof obj;    if (type === 'string' && obj !== '') {      path = obj;    } else if (type === 'function') {      obj(parsedPath, file);      path = Path.join(parsedPath.dirname, parsedPath.basename + parsedPath.extname);    } else if (type === 'object' && obj !== undefined && obj !== null) {      var dirname = 'dirname' in obj ? obj.dirname : parsedPath.dirname,        prefix = obj.prefix || '',        suffix = obj.suffix || '',        basename = 'basename' in obj ? obj.basename : parsedPath.basename,        extname = 'extname' in obj ? obj.extname : parsedPath.extname;      path = Path.join(dirname, prefix + basename + suffix + extname);    } else {      callback(new Error('Unsupported renaming parameter type supplied'), undefined);      return;    }    file.path = Path.join(file.base, path);    // Rename sourcemap if present    if (file.sourceMap) {      file.sourceMap.file = file.relative;    }    callback(null, file);  };  return stream;}module.exports = gulpRename;
 |