package-writer
Advanced tools
Comparing version 0.0.2 to 0.1.0
58
index.js
var combine = require( "stream-combiner" ); | ||
var path = require( "path" ); | ||
var fs = require( "fs" ); | ||
var resolve = require( "resolve" ); | ||
var async = require( "async" ); | ||
var mkdirp = require( "mkdirp" ); | ||
module.exports = function( packageJSON, assets, outputDir ) { | ||
module.exports = function( packageJSON, assets, outputDir, callback ) { | ||
var outputStreams = {}; | ||
@@ -10,27 +13,48 @@ | ||
Object.keys( assets ).forEach( function( assetType ) { | ||
assets[ assetType ].forEach( function( file ) { | ||
var transforms = packageJSON.cartero[ assetType + "Transform" ] || []; | ||
async.each( Object.keys( assets ), function( assetType, callback ) { | ||
var transforms = packageJSON.cartero[ assetType + "Transform" ] || []; | ||
async.each( assets[ assetType ], function( file, callback ) { | ||
var outputStream = fs.createReadStream( file ); | ||
if( transforms.length !== 0 ) { | ||
outputStream = outputStream.pipe( combine.apply( null, transforms.map( function( t ) { | ||
return require( t )( file ); | ||
} ) ) ); | ||
} | ||
async.map( transforms, function( t, callback ) { | ||
resolve( t, { basedir : packageJSON.path }, function( err, res ) { | ||
if( err ) | ||
return callback( err ); | ||
console.log( res ); | ||
callback( null, require( res ) ); | ||
} ); | ||
}, function( err, results ) { | ||
if( err ) | ||
return callback( err ); | ||
outputStreams[ file ] = outputStream; | ||
var outputFile = path.join( outputDir, path.relative( packageJSON.path, file ) ); | ||
var outputFile = path.join( outputDir, path.relative( packageJSON.path, file ) ); | ||
if( assetType === "style" ) { | ||
outputFile = renameFileExtension( outputFile, ".css" ); | ||
} | ||
mkdirp( path.dirname( outputFile ), function( err ) { | ||
if( err ) | ||
return callback( err ); | ||
outputStream.pipe( fs.createWriteStream( outputFile ) ); | ||
if( results.length !== 0 ) | ||
outputStream = outputStream.pipe( combine.apply( null, results.map( function( t ) { | ||
return t( file ); | ||
} ) ) ); | ||
if( assetType === "style" ) { | ||
outputFile = renameFileExtension( outputFile, ".css" ); | ||
} | ||
outputStream.pipe( fs.createWriteStream( outputFile ) ); | ||
outputStreams[ file ] = outputStream; | ||
callback(); | ||
} ); | ||
} ); | ||
}, function( err ) { | ||
callback( err ); | ||
} ); | ||
}, function( err ) { | ||
return callback( err, outputStreams ); | ||
} ); | ||
return outputStreams; | ||
}; | ||
@@ -37,0 +61,0 @@ |
{ | ||
"name": "package-writer", | ||
"version": "0.0.2", | ||
"version": "0.1.0", | ||
"description": "", | ||
@@ -12,4 +12,7 @@ "main": "index.js", | ||
"dependencies": { | ||
"stream-combiner": "0.0.4" | ||
"stream-combiner": "0.0.4", | ||
"resolve": "~0.6.1", | ||
"async": "~0.2.10", | ||
"mkdirp": "~0.3.5" | ||
} | ||
} |
var packageWriter = require( "package-writer" ); | ||
//var rimraf = require( "rimraf" ); | ||
var path = require( "path" ); | ||
var fs = require( "fs" ); | ||
var packageJSON = { | ||
path : "/Users/olegseletsky/git/rotundasoftware/package-writer/test/package1", | ||
path : path.join( __dirname, "package1" ), | ||
cartero : { | ||
@@ -11,9 +14,20 @@ styleTransform : [ "dummy-transform" ] | ||
var assets = { | ||
style : [ "/Users/olegseletsky/git/rotundasoftware/package-writer/test/package1/file1.css" ] | ||
style : [ path.join( __dirname, "package1/css/file1.css" ) ] | ||
}; | ||
var outputDir = "/Users/olegseletsky/git/rotundasoftware/package-writer/test/static"; | ||
var outputDir = path.join( __dirname, "static" ); | ||
var outputStreams = packageWriter( packageJSON, assets, outputDir ); | ||
// rimraf( outputDir, function( err ) { | ||
// var outputStreams = packageWriter( packageJSON, assets, outputDir ); | ||
// if( fs.exists) | ||
// } ) | ||
console.log( outputStreams ); | ||
packageWriter( packageJSON, assets, outputDir, function( err, outputStreams ) { | ||
if( err ) | ||
return console.log( err ); | ||
console.log( outputStreams ); | ||
} ); | ||
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
4051
77
4
4
+ Addedasync@~0.2.10
+ Addedmkdirp@~0.3.5
+ Addedresolve@~0.6.1
+ Addedasync@0.2.10(transitive)
+ Addedmkdirp@0.3.5(transitive)
+ Addedresolve@0.6.3(transitive)