mirror of https://github.com/lukechilds/rollup.git
Rich Harris
9 years ago
12 changed files with 2 additions and 123 deletions
@ -1,39 +0,0 @@ |
|||
import MagicString from 'magic-string'; |
|||
|
|||
export default function transformBundle ( source, transformers ) { |
|||
if ( typeof source === 'string' ) { |
|||
source = { |
|||
code: source, |
|||
map: null |
|||
}; |
|||
} |
|||
|
|||
return transformers.reduce( ( previous, transformer ) => { |
|||
let result = transformer( previous.code, previous.map ); |
|||
|
|||
if ( result == null ) return previous; |
|||
|
|||
if ( typeof result === 'string' ) { |
|||
result = { |
|||
code: result, |
|||
map: null |
|||
}; |
|||
} |
|||
// `result.map` can only be a string if `result` isn't
|
|||
else if ( typeof result.map === 'string' ) { |
|||
result.map = JSON.parse( result.map ); |
|||
} |
|||
|
|||
if (result.map != null) { |
|||
let map = new MagicString.Bundle().generateMap({}); |
|||
map.file = result.map.file; |
|||
map.sources = result.map.sources; |
|||
map.sourcesContent = result.map.sourcesContent; |
|||
map.names = result.map.names; |
|||
map.mappings = result.map.mappings; |
|||
result.map = map; |
|||
} |
|||
|
|||
return result; |
|||
}, source ); |
|||
} |
@ -1,17 +0,0 @@ |
|||
module.exports = { |
|||
description: 'allows plugins to transform bundle', |
|||
options: { |
|||
plugins: [ |
|||
{ |
|||
transformBundle: function (code) { |
|||
return '/* first plugin */'; |
|||
} |
|||
}, |
|||
{ |
|||
transformBundle: function (code) { |
|||
return code + '\n/* second plugin */'; |
|||
} |
|||
} |
|||
] |
|||
} |
|||
} |
@ -1,2 +0,0 @@ |
|||
/* first plugin */ |
|||
/* second plugin */ |
@ -1,2 +0,0 @@ |
|||
/* first plugin */ |
|||
/* second plugin */ |
@ -1,2 +0,0 @@ |
|||
/* first plugin */ |
|||
/* second plugin */ |
@ -1,2 +0,0 @@ |
|||
/* first plugin */ |
|||
/* second plugin */ |
@ -1,2 +0,0 @@ |
|||
/* first plugin */ |
|||
/* second plugin */ |
@ -1 +0,0 @@ |
|||
console.log( 1 + 1 ); |
@ -1,47 +0,0 @@ |
|||
var uglify = require( 'uglify-js' ); |
|||
var MagicString = require( 'magic-string' ); |
|||
var assert = require( 'assert' ); |
|||
var getLocation = require( '../../utils/getLocation' ); |
|||
var SourceMapConsumer = require( 'source-map' ).SourceMapConsumer; |
|||
|
|||
module.exports = { |
|||
description: 'preserves sourcemap chains when transforming', |
|||
options: { |
|||
plugins: [ |
|||
{ |
|||
transformBundle: function ( code, map ) { |
|||
var options = { fromString: true }; |
|||
|
|||
if ( map != null ) { |
|||
options.inSourceMap = map; |
|||
options.outSourceMap = "out"; |
|||
} |
|||
|
|||
var result = uglify.minify( code, options ); |
|||
|
|||
if ( map != null ) { |
|||
result.code = result.code.slice( 0, -25 ); |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
} |
|||
] |
|||
}, |
|||
test: function ( code, map ) { |
|||
var smc = new SourceMapConsumer( map ); |
|||
|
|||
var generatedLoc = getLocation( code, code.indexOf( '42' ) ); |
|||
var originalLoc = smc.originalPositionFor( generatedLoc ); |
|||
|
|||
assert.ok( /main/.test( originalLoc.source ) ); |
|||
assert.equal( originalLoc.line, 1 ); |
|||
assert.equal( originalLoc.column, 13 ); |
|||
|
|||
generatedLoc = getLocation( code, code.indexOf( 'log' ) ); |
|||
originalLoc = smc.originalPositionFor( generatedLoc ); |
|||
|
|||
assert.equal( originalLoc.line, 1 ); |
|||
assert.equal( originalLoc.column, 8 ); |
|||
} |
|||
}; |
@ -1 +0,0 @@ |
|||
console.log( 42 ); |
Loading…
Reference in new issue