remove commonStrict module formatter

This commit is contained in:
Sebastian McKenzie 2014-12-15 14:16:18 +11:00
parent 6011db7ae1
commit 778b4e3a27
27 changed files with 56 additions and 281 deletions

View File

@ -19,7 +19,6 @@ to5.transform('import "foo";', { modules: "common" });
* [AMD](#amd) * [AMD](#amd)
* [Common (Default)](#common-default) * [Common (Default)](#common-default)
* [Common Strict](#common-strict)
* [Ignore](#ignore) * [Ignore](#ignore)
* [System](#system) * [System](#system)
* [UMD](#umd) * [UMD](#umd)
@ -71,46 +70,6 @@ var bar = require("foo").bar;
var bar = require("foo").foo; var bar = require("foo").foo;
``` ```
### Common Strict
```sh
$ 6to5 --modules commonStrict
```
**In**
```javascript
import "foo";
import foo from "foo";
import * as foo from "foo";
import {bar} from "foo";
import {foo as bar} from "foo";
export {test};
export var test = 5;
export default test;
```
**Out**
```javascript
require("foo");
var foo = require("foo").default;
var foo = require("foo");
var bar = require("foo").bar;
var bar = require("foo").foo;
exports.test = test;
var test = 5; exports.test = test;
exports.default = test;
```
### AMD ### AMD
```sh ```sh
@ -131,9 +90,14 @@ export function bar() {
```javascript ```javascript
define(["exports", "foo"], function (exports, _foo) { define(["exports", "foo"], function (exports, _foo) {
exports.bar = bar; "use strict";
var foo = _foo.default; var _interopRequire = function (obj) {
return obj && (obj["default"] || obj);
};
exports.bar = bar;
var foo = _interopRequire(_foo);
function bar() { function bar() {
return foo("foobar"); return foo("foobar");
@ -172,10 +136,15 @@ export function bar() {
} else if (typeof exports !== "undefined") { } else if (typeof exports !== "undefined") {
factory(exports, require("foo")); factory(exports, require("foo"));
} }
})(function (exports) { })(function (exports, _foo) {
exports.bar = bar; "use strict";
var foo = _foo.default; var _interopRequire = function (obj) {
return obj && (obj["default"] || obj);
};
exports.bar = bar;
var foo = _interopRequire(_foo);
function bar() { function bar() {
return foo("foobar"); return foo("foobar");

View File

@ -1,46 +0,0 @@
module.exports = CommonJSStrictFormatter;
var DefaultFormatter = require("./_default");
var util = require("../../util");
var t = require("../../types");
function CommonJSStrictFormatter() {
DefaultFormatter.apply(this, arguments);
}
util.inherits(CommonJSStrictFormatter, DefaultFormatter);
CommonJSStrictFormatter.prototype.import = function (node, nodes) {
// import "foo";
nodes.push(util.template("require", {
//inherits: node,
MODULE_NAME: node.source.raw
}, true));
};
CommonJSStrictFormatter.prototype.importSpecifier = function (specifier, node, nodes) {
var variableName = t.getSpecifierName(specifier);
// import foo from "foo";
if (specifier.default) {
specifier.id = t.identifier("default");
}
var templateName = "require-assign";
// import * as bar from "foo";
if (specifier.type !== "ImportBatchSpecifier") templateName += "-key";
nodes.push(util.template(templateName, {
VARIABLE_NAME: variableName,
MODULE_NAME: node.source.raw,
KEY: specifier.id
}));
};
CommonJSStrictFormatter.prototype.exportSpecifier = function (specifier, node, nodes) {
this._exportSpecifier(function () {
return t.callExpression(t.identifier("require"), [node.source]);
}, specifier, node, nodes);
};

View File

@ -1,12 +1,12 @@
module.exports = CommonJSFormatter; module.exports = CommonJSFormatter;
var CommonJSStrictFormatter = require("./common-strict"); var DefaultFormatter = require("./_default");
var util = require("../../util"); var util = require("../../util");
var t = require("../../types"); var t = require("../../types");
var _ = require("lodash"); var _ = require("lodash");
function CommonJSFormatter(file) { function CommonJSFormatter(file) {
CommonJSStrictFormatter.apply(this, arguments); DefaultFormatter.apply(this, arguments);
var hasNonDefaultExports = false; var hasNonDefaultExports = false;
_.each(file.ast.program.body, function (node) { _.each(file.ast.program.body, function (node) {
@ -15,13 +15,13 @@ function CommonJSFormatter(file) {
this.hasNonDefaultExports = hasNonDefaultExports; this.hasNonDefaultExports = hasNonDefaultExports;
} }
util.inherits(CommonJSFormatter, CommonJSStrictFormatter); util.inherits(CommonJSFormatter, DefaultFormatter);
CommonJSFormatter.prototype.importSpecifier = function (specifier, node, nodes) { CommonJSFormatter.prototype.importSpecifier = function (specifier, node, nodes) {
var variableName = t.getSpecifierName(specifier); var variableName = t.getSpecifierName(specifier);
// import foo from "foo"; // import foo from "foo";
if (t.isIdentifier(specifier.id) && specifier.id.name === "default") { if (t.isSpecifierDefault(specifier)) {
nodes.push(t.variableDeclaration("var", [ nodes.push(t.variableDeclaration("var", [
t.variableDeclarator(variableName, t.variableDeclarator(variableName,
t.callExpression(this.file.addDeclaration("interop-require"), [util.template("require", { t.callExpression(this.file.addDeclaration("interop-require"), [util.template("require", {
@ -30,10 +30,33 @@ CommonJSFormatter.prototype.importSpecifier = function (specifier, node, nodes)
) )
])); ]));
} else { } else {
CommonJSStrictFormatter.prototype.importSpecifier.apply(this, arguments); // import foo from "foo";
if (specifier.default) {
specifier.id = t.identifier("default");
}
var templateName = "require-assign";
// import * as bar from "foo";
if (specifier.type !== "ImportBatchSpecifier") templateName += "-key";
nodes.push(util.template(templateName, {
VARIABLE_NAME: variableName,
MODULE_NAME: node.source.raw,
KEY: specifier.id
}));
} }
}; };
CommonJSFormatter.prototype.import = function (node, nodes) {
// import "foo";
nodes.push(util.template("require", {
//inherits: node,
MODULE_NAME: node.source.raw
}, true));
};
CommonJSFormatter.prototype.export = function (node, nodes) { CommonJSFormatter.prototype.export = function (node, nodes) {
if (node.default) { if (node.default) {
var declar = node.declaration; var declar = node.declaration;
@ -51,10 +74,12 @@ CommonJSFormatter.prototype.export = function (node, nodes) {
// hoist to the top if this default is a function // hoist to the top if this default is a function
nodes.push(this._hoistExport(declar, assign)); nodes.push(this._hoistExport(declar, assign));
} else { } else {
CommonJSStrictFormatter.prototype.export.apply(this, arguments); DefaultFormatter.prototype.export.apply(this, arguments);
} }
}; };
CommonJSFormatter.prototype.exportSpecifier = function () { CommonJSFormatter.prototype.exportSpecifier = function (specifier, node, nodes) {
CommonJSStrictFormatter.prototype.exportSpecifier.apply(this, arguments); this._exportSpecifier(function () {
return t.callExpression(t.identifier("require"), [node.source]);
}, specifier, node, nodes);
}; };

View File

@ -30,12 +30,11 @@ transform._ensureTransformerNames = function (type, keys) {
transform.transformers = {}; transform.transformers = {};
transform.moduleFormatters = { transform.moduleFormatters = {
commonStrict: require("./modules/common-strict"), common: require("./modules/common"),
common: require("./modules/common"), system: require("./modules/system"),
system: require("./modules/system"), ignore: require("./modules/ignore"),
ignore: require("./modules/ignore"), amd: require("./modules/amd"),
amd: require("./modules/amd"), umd: require("./modules/umd")
umd: require("./modules/umd")
}; };
_.each({ _.each({

View File

@ -1,8 +0,0 @@
export default 42;
export default {};
export default [];
export default foo;
export default function () {}
export default class {}
export default function foo () {}
export default class Foo {}

View File

@ -1,15 +0,0 @@
"use strict";
exports["default"] = 42;
exports["default"] = {};
exports["default"] = [];
exports["default"] = foo;
exports["default"] = function () {};
exports["default"] = function () {};
function foo() {}
exports["default"] = foo;
var Foo = function Foo() {};
exports["default"] = Foo;

View File

@ -1,6 +0,0 @@
export * from "foo";
export {foo} from "foo";
export {foo, bar} from "foo";
export {foo as bar} from "foo";
export {foo as default} from "foo";
export {foo as default, bar} from "foo";

View File

@ -1,15 +0,0 @@
"use strict";
(function (obj) {
for (var i in obj) {
exports[i] = obj[i];
}
})(require("foo"));
exports.foo = require("foo").foo;
exports.foo = require("foo").foo;
exports.bar = require("foo").bar;
exports.bar = require("foo").foo;
exports["default"] = require("foo").foo;
exports["default"] = require("foo").foo;
exports.bar = require("foo").bar;

View File

@ -1,5 +0,0 @@
export {foo};
export {foo, bar};
export {foo as bar};
export {foo as default};
export {foo as default, bar};

View File

@ -1,9 +0,0 @@
"use strict";
exports.foo = foo;
exports.foo = foo;
exports.bar = bar;
exports.bar = foo;
exports["default"] = foo;
exports["default"] = foo;
exports.bar = bar;

View File

@ -1,8 +0,0 @@
export var foo = 1;
export var foo2 = function () {};
export var foo3;
export let foo4 = 2;
export let foo5;
export const foo6 = 3;
export function foo7 () {}
export class foo8 {}

View File

@ -1,13 +0,0 @@
"use strict";
exports.foo7 = foo7;
var foo = exports.foo = 1;
var foo2 = exports.foo2 = function () {};
var foo3 = exports.foo3 = undefined;
var foo4 = exports.foo4 = 2;
var foo5 = exports.foo5 = undefined;
var foo6 = exports.foo6 = 3;
function foo7() {}
var foo8 = function foo8() {};
exports.foo8 = foo8;

View File

@ -1,11 +0,0 @@
import { isEven } from "./evens";
export function nextOdd(n) {
return isEven(n) ? n + 1 : n + 2;
}
export var isOdd = (function (isEven) {
return function (n) {
return !isEven(n);
};
})(isEven);

View File

@ -1,13 +0,0 @@
"use strict";
exports.nextOdd = nextOdd;
var isEven = require("./evens").isEven;
function nextOdd(n) {
return isEven(n) ? n + 1 : n + 2;
}
var isOdd = exports.isOdd = (function (isEven) {
return function (n) {
return !isEven(n);
};
})(isEven);

View File

@ -1,2 +0,0 @@
import foo from "foo";
import {default as foo} from "foo";

View File

@ -1,4 +0,0 @@
"use strict";
var foo = require("foo")["default"];
var foo = require("foo")["default"];

View File

@ -1 +0,0 @@
import * as foo from "foo";

View File

@ -1,3 +0,0 @@
"use strict";
var foo = require("foo");

View File

@ -1 +0,0 @@
import foo, {baz as xyz} from "foo";

View File

@ -1,4 +0,0 @@
"use strict";
var foo = require("foo")["default"];
var xyz = require("foo").baz;

View File

@ -1,4 +0,0 @@
import {bar} from "foo";
import {bar, baz} from "foo";
import {bar as baz} from "foo";
import {bar as baz, xyz} from "foo";

View File

@ -1,8 +0,0 @@
"use strict";
var bar = require("foo").bar;
var bar = require("foo").bar;
var baz = require("foo").baz;
var baz = require("foo").bar;
var baz = require("foo").bar;
var xyz = require("foo").xyz;

View File

@ -1,3 +0,0 @@
import "foo";
import "foo-bar";
import "./directory/foo-bar";

View File

@ -1,7 +0,0 @@
"use strict";
require("foo");
require("foo-bar");
require("./directory/foo-bar");

View File

@ -1,3 +0,0 @@
{
"modules": "commonStrict"
}

View File

@ -1,12 +0,0 @@
import "foo";
import "foo-bar";
import "./directory/foo-bar";
import foo from "foo";
import * as foo from "foo";
import {bar} from "foo";
import {foo as bar} from "foo";
export {test};
export var test = 5;
export default test;

View File

@ -1,17 +0,0 @@
"use strict";
require("foo");
require("foo-bar");
require("./directory/foo-bar");
var foo = require("foo")["default"];
var foo = require("foo");
var bar = require("foo").bar;
var bar = require("foo").foo;
exports.test = test;
var test = exports.test = 5;
exports["default"] = test;