git-off

git off handles large files in git repos
git clone https://noulin.net/git/git-off.git
Log | Files | Refs | README

transform.js (1146B)


      1 var Transform = require('stream').Transform;
      2 var collector = require('./service-collector');
      3 var license = require('./browser-builder').license;
      4 
      5 module.exports = function(file) {
      6   var stream = new Transform();
      7 
      8   var didDefineServices = !!process.env.AWS_SERVICES;
      9 
     10   var isEntryPoint = !!file.match(/[\/\\]lib[\/\\]browser\.js$/);
     11 
     12   stream._transform = function(data, encoding, callback) {
     13     callback(null, data);
     14   };
     15 
     16   if (isEntryPoint) {
     17     if (didDefineServices) {
     18       // We need to strip out the default requires statement
     19       stream._transform = function(data, encoding, callback) {
     20         var code = data.toString();
     21         code = code.trim();
     22         var lines = code.split('\n');
     23         lines = lines.filter(function(line) {
     24           return !line.match(/^require\(.+browser_default['"]\);$/);
     25         });
     26 
     27         code = lines.join('\n');
     28         data = new Buffer(code);
     29         callback(null, data);
     30       };
     31 
     32       var src = collector(process.env.AWS_SERVICES);
     33       stream._flush = function(callback) {
     34         stream.push(src);
     35         callback();
     36       };
     37     }
     38 
     39     stream.push(license);
     40   }
     41 
     42   return stream;
     43 };