Skip to content

Commit

Permalink
compact feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
guybedford committed May 13, 2018
1 parent 7b7e4f7 commit f89d2ba
Show file tree
Hide file tree
Showing 16 changed files with 72 additions and 21 deletions.
6 changes: 4 additions & 2 deletions src/Chunk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,6 @@ export default class Chunk {

private prepareDynamicImports({ format, compact }: OutputOptions) {
const _ = compact ? '' : ' ';
const n = compact ? '' : '\n';
const esm = format === 'es';
let dynamicImportMechanism: DynamicImportMechanism;
let hasDynamicImports = false;
Expand Down Expand Up @@ -797,6 +796,7 @@ export default class Chunk {
for (const module of this.orderedModules) {
const source = module.render(renderOptions);
source.trim();
if (options.compact && source.lastLine().indexOf('//') !== -1) source.append('\n');
this.renderedModuleSources.push(source);

const namespace = module.getOrCreateNamespace();
Expand All @@ -814,7 +814,8 @@ export default class Chunk {

if (hoistedSource) magicString.prepend(hoistedSource + n + n);

this.renderedSource = magicString.trim();
this.renderedSource = options.compact ? magicString : magicString.trim();

this.renderedSourceLength = undefined;
this.renderedHash = undefined;

Expand Down Expand Up @@ -1081,6 +1082,7 @@ export default class Chunk {
}

if (options.compact !== true && code[code.length - 1] !== '\n') code += '\n';

return { code, map };
}
);
Expand Down
5 changes: 4 additions & 1 deletion src/ast/nodes/Import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@ export default class Import extends NodeBase {
}

render(code: MagicString, options: RenderOptions) {
const _ = options.compact ? '' : ' ';
const s = options.compact ? '' : ';';

this.rendered = true;
if (this.resolutionNamespace) {
code.overwrite(
this.parent.start,
this.parent.end,
`Promise.resolve().then(function () { return ${this.resolutionNamespace}; })`
`Promise.resolve().then(function${_}()${_}{${_}return ${this.resolutionNamespace}${s}${_}})`
);
} else if (options.importMechanism) {
const leftMechanism =
Expand Down
4 changes: 2 additions & 2 deletions src/ast/variables/NamespaceVariable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export default class NamespaceVariable extends Variable {
const original = this.originals[name];

if ((this.referencedEarly || original.isReassigned) && !options.legacy) {
return `${t}get ${name}${_}()${_}{${_}return${_}${original.getName()}${
return `${t}get ${name}${_}()${_}{${_}return ${original.getName()}${
options.compact ? '' : ';'
}${_}}`;
}
Expand All @@ -79,7 +79,7 @@ export default class NamespaceVariable extends Variable {
if (options.namespaceToStringTag) {
output += `${n}if${_}(typeof Symbol${_}!==${_}'undefined'${_}&&${_}Symbol.toStringTag)${n}`;
output += `${t}Object.defineProperty(${name},${_}Symbol.toStringTag,${_}{${_}value:${_}'Module'${_}});${n}`;
output += `else${n}`;
output += `else${n || ' '}`;
output += `${t}Object.defineProperty(${name},${_}'toString',${_}{${_}value:${_}function${_}()${_}{${_}return${_}'[object Module]'${
options.compact ? ';' : ''
}${_}}${_}});${n}`;
Expand Down
2 changes: 1 addition & 1 deletion src/finalisers/system.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,6 @@ export default function system(

return magicString
.indent(`${t}${t}${t}`)
.append(`${n}${n}${t}${t}}${n}${t}};${n}});`)
.append(`${n}${n}${t}${t}}${n}${t}}${options.compact ? '' : ';'}${n}});`)
.prepend(wrapperStart);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ System.register([],function(exports,module){'use strict';return{execute:function
}function fn$1 () {
fn();
console.log('dep2 fn');
}}};});
}}}});
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ System.register(['./chunk-ad0e6b97.js'],function(exports,module){'use strict';va
fn$1();
fn();
}
} exports('default', Main1);}};});
} exports('default', Main1);}}});
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ System.register(['external','./chunk-ad0e6b97.js'],function(exports,module){'use
fn$3();
fn$1();
}
} exports('default', Main2);}};});
} exports('default', Main2);}}});
6 changes: 4 additions & 2 deletions test/form/samples/compact/_expected/amd.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
define(['external'],function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self = {get default(){returnfoo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});elseObject.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
define(['external'],function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self = {get default(){return foo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});else Object.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
function foo$$1 () {
console.log( x );
}return foo$$1;});
}
// trailing comment
return foo$$1;});
6 changes: 4 additions & 2 deletions test/form/samples/compact/_expected/cjs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
'use strict';function _interopDefault(e){return(e&&(typeof e==='object')&&'default'in e)?e['default']:e}var x=_interopDefault(require('external'));var self = {get default(){returnfoo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});elseObject.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
'use strict';function _interopDefault(e){return(e&&(typeof e==='object')&&'default'in e)?e['default']:e}var x=_interopDefault(require('external'));var self = {get default(){return foo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});else Object.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
function foo$$1 () {
console.log( x );
}module.exports=foo$$1;
}
// trailing comment
module.exports=foo$$1;
6 changes: 4 additions & 2 deletions test/form/samples/compact/_expected/es.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import x from'external';var self = {get default(){returnfoo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});elseObject.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
import x from'external';var self = {get default(){return foo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});else Object.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
function foo$$1 () {
console.log( x );
}export default foo$$1;
}
// trailing comment
export default foo$$1;
6 changes: 4 additions & 2 deletions test/form/samples/compact/_expected/iife.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
var foo=(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self = {get default(){returnfoo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});elseObject.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
var foo=(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self = {get default(){return foo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});else Object.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
function foo$$1 () {
console.log( x );
}return foo$$1;}(x));
}
// trailing comment
return foo$$1;}(x));
6 changes: 4 additions & 2 deletions test/form/samples/compact/_expected/system.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
System.register(['external'],function(exports,module){'use strict';var x;return{setters:[function(module){x=module.default;}],execute:function(){exports('default',foo$$1);var self = {get default(){returnfoo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});elseObject.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
System.register(['external'],function(exports,module){'use strict';var x;return{setters:[function(module){x=module.default;}],execute:function(){exports('default',foo$$1);var self = {get default(){return foo$$1}};if(typeof Symbol!=='undefined'&&Symbol.toStringTag)Object.defineProperty(self,Symbol.toStringTag,{value:'Module'});else Object.defineProperty(self,'toString',{value:function(){return'[object Module]';}});/*#__PURE__*/Object.freeze(self);console.log(self);
function foo$$1 () {
console.log( x );
}}};});
}
// trailing comment
}}});
6 changes: 4 additions & 2 deletions test/form/samples/compact/_expected/umd.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test/form/samples/compact/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ console.log(self);
export default function foo () {
console.log( x );
}
// trailing comment
23 changes: 23 additions & 0 deletions test/function/samples/compact/_config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = {
description: 'compact output with compact: true',
options: {
external: ['external'],
experimentalDynamicImport: true
},
bundleOptions: {
compact: true,
namespaceToStringTag: true
},
warnings: [
{
code: 'CIRCULAR_DEPENDENCY',
importer: 'main.js',
message: 'Circular dependency: main.js -> main.js'
}
],
context: {
require (x) {
return 42;
}
}
};
10 changes: 10 additions & 0 deletions test/function/samples/compact/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import x from 'external';
import * as self from './main.js';
console.log(self && self['de' + 'fault']);
export default function foo () {
console.log( x );
}

import('./main.js').then(self => {
console.log(self && sel['de' + 'fault']);
});

0 comments on commit f89d2ba

Please sign in to comment.