Skip to content

Commit

Permalink
apply fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
manucorporat committed Dec 22, 2019
1 parent f4aa765 commit 0bf2edb
Show file tree
Hide file tree
Showing 23 changed files with 53 additions and 60 deletions.
45 changes: 19 additions & 26 deletions src/ast/variables/NamespaceVariable.ts
Expand Up @@ -79,23 +79,22 @@ export default class NamespaceVariable extends Variable {
const _ = options.compact ? '' : ' ';
const n = options.compact ? '' : '\n';
const t = options.indent;
const syntheticNamedExports = this.syntheticNamedExports;

const members = Object.keys(this.memberVariables)
.filter(name => !syntheticNamedExports || name !== 'default')
.map(name => {
const original = this.memberVariables[name];
const members = Object.keys(this.memberVariables).map(name => {
const original = this.memberVariables[name];

if (this.referencedEarly || original.isReassigned) {
return `${t}get ${name}${_}()${_}{${_}return ${original.getName()}${
options.compact ? '' : ';'
}${_}}`;
}
if (this.referencedEarly || original.isReassigned) {
return `${t}get ${name}${_}()${_}{${_}return ${original.getName()}${
options.compact ? '' : ';'
}${_}}`;
}

const safeName = RESERVED_NAMES[name] ? `'${name}'` : name;
const safeName = RESERVED_NAMES[name] ? `'${name}'` : name;

return `${t}${safeName}: ${original.getName()}`;
});
return `${t}${safeName}: ${original.getName()}`;
});

members.unshift(`${t}__proto__:${_}null`);

if (options.namespaceToStringTag) {
members.unshift(`${t}[Symbol.toStringTag]:${_}'Module'`);
Expand All @@ -104,20 +103,14 @@ export default class NamespaceVariable extends Variable {
const name = this.getName();
const defaultExport = this.syntheticNamedExports ? this.module.getDefaultExport() : undefined;

let output = '';
if (defaultExport && members.length === 0) {
output = defaultExport.getName();
} else {
members.unshift(`${t}__proto__:${_}null`);

output = `{${n}${members.join(`,${n}`)}${n}}`;
if (defaultExport) {
output = `Object.assign(${output}, ${defaultExport.getName()})`;
}
if (options.freeze) {
output = `/*#__PURE__*/Object.freeze(${output})`;
}
let output = `{${n}${members.join(`,${n}`)}${n}}`;
if (defaultExport) {
output = `/*#__PURE__*/Object.assign(${output}, ${defaultExport.getName()})`;
}
if (options.freeze) {
output = `/*#__PURE__*/Object.freeze(${output})`;
}

output = `${options.varOrConst} ${name}${_}=${_}${output};`;

if (options.format === 'system' && this.exportName) {
Expand Down
6 changes: 5 additions & 1 deletion src/ast/variables/Variable.ts
Expand Up @@ -49,7 +49,7 @@ export default class Variable implements ExpressionEntity {

getName(): string {
const name = this.renderName || this.name;
return this.renderBaseName ? `${this.renderBaseName}.${name}` : name;
return this.renderBaseName ? `${this.renderBaseName}${getPropertyAccess(name)}` : name;
}

getReturnExpressionWhenCalledAtPath(
Expand Down Expand Up @@ -107,3 +107,7 @@ export default class Variable implements ExpressionEntity {
return this.name;
}
}

const getPropertyAccess = (name: string) => {
return /^(?!\d)[\w$]+$/.test(name) ? `.${name}` : `[${JSON.stringify(name)}]`;
};
Expand Up @@ -6,9 +6,10 @@ define(function () { 'use strict';
};
const foo = 100;

var ns = /*#__PURE__*/Object.freeze(Object.assign({
var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.assign({
__proto__: null,
foo: foo
foo: foo,
'default': d
}, d));

console.log(d.fn);
Expand Down
Expand Up @@ -6,9 +6,10 @@ const d = {
};
const foo = 100;

var ns = /*#__PURE__*/Object.freeze(Object.assign({
var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.assign({
__proto__: null,
foo: foo
foo: foo,
'default': d
}, d));

console.log(d.fn);
Expand Down
Expand Up @@ -4,9 +4,10 @@ const d = {
};
const foo = 100;

var ns = /*#__PURE__*/Object.freeze(Object.assign({
var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.assign({
__proto__: null,
foo: foo
foo: foo,
'default': d
}, d));

console.log(d.fn);
Expand Down
Expand Up @@ -9,9 +9,10 @@ System.register([], function () {
};
const foo = 100;

var ns = /*#__PURE__*/Object.freeze(Object.assign({
var ns = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.assign({
__proto__: null,
foo: foo
foo: foo,
'default': d
}, d));

console.log(d.fn);
Expand Down
Expand Up @@ -5,10 +5,8 @@ define(function () { 'use strict';
hello: 'hola'
};

var ns = d;

console.log(d.fn);
console.log(d.foo);
console.log(ns);
console.log(d["some-prop"]);

});
Expand Up @@ -5,8 +5,6 @@ const d = {
hello: 'hola'
};

var ns = d;

console.log(d.fn);
console.log(d.foo);
console.log(ns);
console.log(d["some-prop"]);
Expand Up @@ -3,8 +3,6 @@ const d = {
hello: 'hola'
};

var ns = d;

console.log(d.fn);
console.log(d.foo);
console.log(ns);
console.log(d["some-prop"]);
Expand Up @@ -8,11 +8,9 @@ System.register([], function () {
hello: 'hola'
};

var ns = d;

console.log(d.fn);
console.log(d.foo);
console.log(ns);
console.log(d["some-prop"]);

}
};
Expand Down
2 changes: 1 addition & 1 deletion test/chunking-form/samples/synthetic-named-exports/main.js
Expand Up @@ -3,4 +3,4 @@ import * as ns from './dep1.js';

console.log(fn);
console.log(foo);
console.log(ns);
console.log(ns['some-prop']);
2 changes: 1 addition & 1 deletion test/form/samples/compact/_expected/amd.js
@@ -1,4 +1,4 @@
define(['external'],function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self);
define(['external'],function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self);
function foo () {
console.log( x );
}
Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/compact/_expected/cjs.js
@@ -1,4 +1,4 @@
'use strict';function _interopDefault(e){return(e&&(typeof e==='object')&&'default'in e)?e['default']:e}var x=_interopDefault(require('external'));var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});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=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self);
function foo () {
console.log( x );
}
Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/compact/_expected/es.js
@@ -1,4 +1,4 @@
import x from'external';var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self);
import x from'external';var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self);
function foo () {
console.log( x );
}
Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/compact/_expected/iife.js
@@ -1,4 +1,4 @@
var foo=(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self);
var foo=(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self);
function foo () {
console.log( x );
}
Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/compact/_expected/system.js
@@ -1,4 +1,4 @@
System.register('foo',['external'],function(exports){'use strict';var x;return{setters:[function(module){x=module.default;}],execute:function(){exports('default',foo);var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self);
System.register('foo',['external'],function(exports){'use strict';var x;return{setters:[function(module){x=module.default;}],execute:function(){exports('default',foo);var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self);
function foo () {
console.log( x );
}
Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/compact/_expected/umd.js
@@ -1,4 +1,4 @@
(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?module.exports=f(require('external')):typeof define==='function'&&define.amd?define(['external'],f):(g=g||self,g.foo=f(g.x));}(this,(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({__proto__:null,[Symbol.toStringTag]:'Module',get default(){return foo}});console.log(self);
(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?module.exports=f(require('external')):typeof define==='function'&&define.amd?define(['external'],f):(g=g||self,g.foo=f(g.x));}(this,(function(x){'use strict';x=x&&x.hasOwnProperty('default')?x['default']:x;var self=/*#__PURE__*/Object.freeze({[Symbol.toStringTag]:'Module',__proto__:null,get default(){return foo}});console.log(self);
function foo () {
console.log( x );
}
Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/namespace-tostringtag/_expected/amd.js
@@ -1,8 +1,8 @@
define(['exports'], function (exports) { 'use strict';

var self = /*#__PURE__*/Object.freeze({
__proto__: null,
[Symbol.toStringTag]: 'Module',
__proto__: null,
get p () { return p; }
});

Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/namespace-tostringtag/_expected/cjs.js
Expand Up @@ -3,8 +3,8 @@
Object.defineProperty(exports, '__esModule', { value: true });

var self = /*#__PURE__*/Object.freeze({
__proto__: null,
[Symbol.toStringTag]: 'Module',
__proto__: null,
get p () { return p; }
});

Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/namespace-tostringtag/_expected/es.js
@@ -1,6 +1,6 @@
var self = /*#__PURE__*/Object.freeze({
__proto__: null,
[Symbol.toStringTag]: 'Module',
__proto__: null,
get p () { return p; }
});

Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/namespace-tostringtag/_expected/iife.js
Expand Up @@ -2,8 +2,8 @@ var iife = (function (exports) {
'use strict';

var self = /*#__PURE__*/Object.freeze({
__proto__: null,
[Symbol.toStringTag]: 'Module',
__proto__: null,
get p () { return p; }
});

Expand Down
Expand Up @@ -4,8 +4,8 @@ System.register('iife', [], function (exports) {
execute: function () {

var self = /*#__PURE__*/Object.freeze({
__proto__: null,
[Symbol.toStringTag]: 'Module',
__proto__: null,
get p () { return p; }
});

Expand Down
2 changes: 1 addition & 1 deletion test/form/samples/namespace-tostringtag/_expected/umd.js
Expand Up @@ -5,8 +5,8 @@
}(this, (function (exports) { 'use strict';

var self = /*#__PURE__*/Object.freeze({
__proto__: null,
[Symbol.toStringTag]: 'Module',
__proto__: null,
get p () { return p; }
});

Expand Down

0 comments on commit 0bf2edb

Please sign in to comment.