Browse Source

Merge pull request #394 from rollup/revert-387-transform-bundle-hook

Revert "Add transformBundle plugin hook"
gh-438-b
Rich Harris 9 years ago
parent
commit
d899da641f
  1. 3
      package.json
  2. 7
      src/Bundle.js
  3. 39
      src/utils/transformBundle.js
  4. 17
      test/form/transform-bundle-plugin/_config.js
  5. 2
      test/form/transform-bundle-plugin/_expected/amd.js
  6. 2
      test/form/transform-bundle-plugin/_expected/cjs.js
  7. 2
      test/form/transform-bundle-plugin/_expected/es6.js
  8. 2
      test/form/transform-bundle-plugin/_expected/iife.js
  9. 2
      test/form/transform-bundle-plugin/_expected/umd.js
  10. 1
      test/form/transform-bundle-plugin/main.js
  11. 47
      test/sourcemaps/transform-bundle/_config.js
  12. 1
      test/sourcemaps/transform-bundle/main.js

3
package.json

@ -57,8 +57,7 @@
"rollup-plugin-replace": "^1.0.1",
"sander": "^0.4.0",
"source-map": "^0.5.3",
"sourcemap-codec": "^1.2.1",
"uglify-js": "^2.6.1"
"sourcemap-codec": "^1.2.1"
},
"dependencies": {
"chalk": "^1.1.1",

7
src/Bundle.js

@ -11,7 +11,6 @@ import getExportMode from './utils/getExportMode.js';
import getIndentString from './utils/getIndentString.js';
import { unixizePath } from './utils/normalizePlatform.js';
import transform from './utils/transform.js';
import transformBundle from './utils/transformBundle.js';
import collapseSourcemaps from './utils/collapseSourcemaps.js';
import callIfFunction from './utils/callIfFunction.js';
import { isRelative } from './utils/path.js';
@ -47,10 +46,6 @@ export default class Bundle {
.map( plugin => plugin.transform )
.filter( Boolean );
this.bundleTransformers = this.plugins
.map( plugin => plugin.transformBundle )
.filter( Boolean );
this.moduleById = blank();
this.modules = [];
@ -262,7 +257,7 @@ export default class Bundle {
map.sources = map.sources.map( unixizePath );
}
return transformBundle( { code, map }, this.bundleTransformers );
return { code, map };
}
sort () {

39
src/utils/transformBundle.js

@ -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 );
}

17
test/form/transform-bundle-plugin/_config.js

@ -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 */';
}
}
]
}
}

2
test/form/transform-bundle-plugin/_expected/amd.js

@ -1,2 +0,0 @@
/* first plugin */
/* second plugin */

2
test/form/transform-bundle-plugin/_expected/cjs.js

@ -1,2 +0,0 @@
/* first plugin */
/* second plugin */

2
test/form/transform-bundle-plugin/_expected/es6.js

@ -1,2 +0,0 @@
/* first plugin */
/* second plugin */

2
test/form/transform-bundle-plugin/_expected/iife.js

@ -1,2 +0,0 @@
/* first plugin */
/* second plugin */

2
test/form/transform-bundle-plugin/_expected/umd.js

@ -1,2 +0,0 @@
/* first plugin */
/* second plugin */

1
test/form/transform-bundle-plugin/main.js

@ -1 +0,0 @@
console.log( 1 + 1 );

47
test/sourcemaps/transform-bundle/_config.js

@ -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
test/sourcemaps/transform-bundle/main.js

@ -1 +0,0 @@
console.log( 42 );
Loading…
Cancel
Save