From 778b4e3a27c63284453e75d0711fd0fbca431a5d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 15 Dec 2014 14:16:18 +1100 Subject: [PATCH] remove commonStrict module formatter --- doc/modules.md | 61 +++++-------------- .../transformation/modules/common-strict.js | 46 -------------- lib/6to5/transformation/modules/common.js | 47 ++++++++++---- lib/6to5/transformation/transform.js | 11 ++-- .../exports-default/actual.js | 8 --- .../exports-default/expected.js | 15 ----- .../exports-from/actual.js | 6 -- .../exports-from/expected.js | 15 ----- .../exports-named/actual.js | 5 -- .../exports-named/expected.js | 9 --- .../exports-variable/actual.js | 8 --- .../exports-variable/expected.js | 13 ---- .../hoist-function-exports/actual.js | 11 ---- .../hoist-function-exports/expected.js | 13 ---- .../imports-default/actual.js | 2 - .../imports-default/expected.js | 4 -- .../imports-glob/actual.js | 1 - .../imports-glob/expected.js | 3 - .../imports-mixing/actual.js | 1 - .../imports-mixing/expected.js | 4 -- .../imports-named/actual.js | 4 -- .../imports-named/expected.js | 8 --- .../imports/actual.js | 3 - .../imports/expected.js | 7 --- .../es6-modules-common-strict/options.json | 3 - .../overview/actual.js | 12 ---- .../overview/expected.js | 17 ------ 27 files changed, 56 insertions(+), 281 deletions(-) delete mode 100644 lib/6to5/transformation/modules/common-strict.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-default/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-default/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-from/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-from/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-named/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-named/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-variable/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/exports-variable/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-default/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-default/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-glob/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-glob/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-mixing/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-mixing/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-named/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports-named/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/imports/expected.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/options.json delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/overview/actual.js delete mode 100644 test/fixtures/transformation/es6-modules-common-strict/overview/expected.js diff --git a/doc/modules.md b/doc/modules.md index 7ce8b20d07..08dff4c8c4 100644 --- a/doc/modules.md +++ b/doc/modules.md @@ -19,7 +19,6 @@ to5.transform('import "foo";', { modules: "common" }); * [AMD](#amd) * [Common (Default)](#common-default) - * [Common Strict](#common-strict) * [Ignore](#ignore) * [System](#system) * [UMD](#umd) @@ -71,46 +70,6 @@ var bar = require("foo").bar; 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 ```sh @@ -131,9 +90,14 @@ export function bar() { ```javascript 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() { return foo("foobar"); @@ -172,10 +136,15 @@ export function bar() { } else if (typeof exports !== "undefined") { factory(exports, require("foo")); } -})(function (exports) { - exports.bar = bar; +})(function (exports, _foo) { + "use strict"; - var foo = _foo.default; + var _interopRequire = function (obj) { + return obj && (obj["default"] || obj); + }; + + exports.bar = bar; + var foo = _interopRequire(_foo); function bar() { return foo("foobar"); diff --git a/lib/6to5/transformation/modules/common-strict.js b/lib/6to5/transformation/modules/common-strict.js deleted file mode 100644 index eb58cb6d75..0000000000 --- a/lib/6to5/transformation/modules/common-strict.js +++ /dev/null @@ -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); -}; diff --git a/lib/6to5/transformation/modules/common.js b/lib/6to5/transformation/modules/common.js index 6676511919..4b422d0794 100644 --- a/lib/6to5/transformation/modules/common.js +++ b/lib/6to5/transformation/modules/common.js @@ -1,12 +1,12 @@ module.exports = CommonJSFormatter; -var CommonJSStrictFormatter = require("./common-strict"); -var util = require("../../util"); -var t = require("../../types"); -var _ = require("lodash"); +var DefaultFormatter = require("./_default"); +var util = require("../../util"); +var t = require("../../types"); +var _ = require("lodash"); function CommonJSFormatter(file) { - CommonJSStrictFormatter.apply(this, arguments); + DefaultFormatter.apply(this, arguments); var hasNonDefaultExports = false; _.each(file.ast.program.body, function (node) { @@ -15,13 +15,13 @@ function CommonJSFormatter(file) { this.hasNonDefaultExports = hasNonDefaultExports; } -util.inherits(CommonJSFormatter, CommonJSStrictFormatter); +util.inherits(CommonJSFormatter, DefaultFormatter); CommonJSFormatter.prototype.importSpecifier = function (specifier, node, nodes) { var variableName = t.getSpecifierName(specifier); // import foo from "foo"; - if (t.isIdentifier(specifier.id) && specifier.id.name === "default") { + if (t.isSpecifierDefault(specifier)) { nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(variableName, t.callExpression(this.file.addDeclaration("interop-require"), [util.template("require", { @@ -30,10 +30,33 @@ CommonJSFormatter.prototype.importSpecifier = function (specifier, node, nodes) ) ])); } 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) { if (node.default) { var declar = node.declaration; @@ -51,10 +74,12 @@ CommonJSFormatter.prototype.export = function (node, nodes) { // hoist to the top if this default is a function nodes.push(this._hoistExport(declar, assign)); } else { - CommonJSStrictFormatter.prototype.export.apply(this, arguments); + DefaultFormatter.prototype.export.apply(this, arguments); } }; -CommonJSFormatter.prototype.exportSpecifier = function () { - CommonJSStrictFormatter.prototype.exportSpecifier.apply(this, arguments); +CommonJSFormatter.prototype.exportSpecifier = function (specifier, node, nodes) { + this._exportSpecifier(function () { + return t.callExpression(t.identifier("require"), [node.source]); + }, specifier, node, nodes); }; diff --git a/lib/6to5/transformation/transform.js b/lib/6to5/transformation/transform.js index 87a8edfa7c..0d2440e3f6 100644 --- a/lib/6to5/transformation/transform.js +++ b/lib/6to5/transformation/transform.js @@ -30,12 +30,11 @@ transform._ensureTransformerNames = function (type, keys) { transform.transformers = {}; transform.moduleFormatters = { - commonStrict: require("./modules/common-strict"), - common: require("./modules/common"), - system: require("./modules/system"), - ignore: require("./modules/ignore"), - amd: require("./modules/amd"), - umd: require("./modules/umd") + common: require("./modules/common"), + system: require("./modules/system"), + ignore: require("./modules/ignore"), + amd: require("./modules/amd"), + umd: require("./modules/umd") }; _.each({ diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-default/actual.js b/test/fixtures/transformation/es6-modules-common-strict/exports-default/actual.js deleted file mode 100644 index 62923e5c15..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-default/actual.js +++ /dev/null @@ -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 {} diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-default/expected.js b/test/fixtures/transformation/es6-modules-common-strict/exports-default/expected.js deleted file mode 100644 index 8c68ab4224..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-default/expected.js +++ /dev/null @@ -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; diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-from/actual.js b/test/fixtures/transformation/es6-modules-common-strict/exports-from/actual.js deleted file mode 100644 index 60857f6542..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-from/actual.js +++ /dev/null @@ -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"; diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-from/expected.js b/test/fixtures/transformation/es6-modules-common-strict/exports-from/expected.js deleted file mode 100644 index feaeac94ee..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-from/expected.js +++ /dev/null @@ -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; diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-named/actual.js b/test/fixtures/transformation/es6-modules-common-strict/exports-named/actual.js deleted file mode 100644 index 8515ace759..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-named/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -export {foo}; -export {foo, bar}; -export {foo as bar}; -export {foo as default}; -export {foo as default, bar}; diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-named/expected.js b/test/fixtures/transformation/es6-modules-common-strict/exports-named/expected.js deleted file mode 100644 index ce378a6fb0..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-named/expected.js +++ /dev/null @@ -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; diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-variable/actual.js b/test/fixtures/transformation/es6-modules-common-strict/exports-variable/actual.js deleted file mode 100644 index b4629cc731..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-variable/actual.js +++ /dev/null @@ -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 {} diff --git a/test/fixtures/transformation/es6-modules-common-strict/exports-variable/expected.js b/test/fixtures/transformation/es6-modules-common-strict/exports-variable/expected.js deleted file mode 100644 index 42e6fdf913..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/exports-variable/expected.js +++ /dev/null @@ -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; diff --git a/test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/actual.js b/test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/actual.js deleted file mode 100644 index 3c40b7d1c1..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/actual.js +++ /dev/null @@ -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); diff --git a/test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/expected.js b/test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/expected.js deleted file mode 100644 index 5a074e1496..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/hoist-function-exports/expected.js +++ /dev/null @@ -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); diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-default/actual.js b/test/fixtures/transformation/es6-modules-common-strict/imports-default/actual.js deleted file mode 100644 index e67418654c..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-default/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -import foo from "foo"; -import {default as foo} from "foo"; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-default/expected.js b/test/fixtures/transformation/es6-modules-common-strict/imports-default/expected.js deleted file mode 100644 index 32db9b239c..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-default/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -var foo = require("foo")["default"]; -var foo = require("foo")["default"]; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-glob/actual.js b/test/fixtures/transformation/es6-modules-common-strict/imports-glob/actual.js deleted file mode 100644 index e55c077500..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-glob/actual.js +++ /dev/null @@ -1 +0,0 @@ -import * as foo from "foo"; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-glob/expected.js b/test/fixtures/transformation/es6-modules-common-strict/imports-glob/expected.js deleted file mode 100644 index 3293bd0ebd..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-glob/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; - -var foo = require("foo"); diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-mixing/actual.js b/test/fixtures/transformation/es6-modules-common-strict/imports-mixing/actual.js deleted file mode 100644 index ef78c95b1c..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-mixing/actual.js +++ /dev/null @@ -1 +0,0 @@ -import foo, {baz as xyz} from "foo"; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-mixing/expected.js b/test/fixtures/transformation/es6-modules-common-strict/imports-mixing/expected.js deleted file mode 100644 index 57bcfd38fc..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-mixing/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -var foo = require("foo")["default"]; -var xyz = require("foo").baz; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-named/actual.js b/test/fixtures/transformation/es6-modules-common-strict/imports-named/actual.js deleted file mode 100644 index 83a766c62d..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-named/actual.js +++ /dev/null @@ -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"; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports-named/expected.js b/test/fixtures/transformation/es6-modules-common-strict/imports-named/expected.js deleted file mode 100644 index 9a51dccc06..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports-named/expected.js +++ /dev/null @@ -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; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports/actual.js b/test/fixtures/transformation/es6-modules-common-strict/imports/actual.js deleted file mode 100644 index 222b6885ac..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -import "foo"; -import "foo-bar"; -import "./directory/foo-bar"; diff --git a/test/fixtures/transformation/es6-modules-common-strict/imports/expected.js b/test/fixtures/transformation/es6-modules-common-strict/imports/expected.js deleted file mode 100644 index f1a139f51a..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/imports/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -require("foo"); - -require("foo-bar"); - -require("./directory/foo-bar"); diff --git a/test/fixtures/transformation/es6-modules-common-strict/options.json b/test/fixtures/transformation/es6-modules-common-strict/options.json deleted file mode 100644 index 42fca89301..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": "commonStrict" -} diff --git a/test/fixtures/transformation/es6-modules-common-strict/overview/actual.js b/test/fixtures/transformation/es6-modules-common-strict/overview/actual.js deleted file mode 100644 index a77d4d5dfa..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/overview/actual.js +++ /dev/null @@ -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; diff --git a/test/fixtures/transformation/es6-modules-common-strict/overview/expected.js b/test/fixtures/transformation/es6-modules-common-strict/overview/expected.js deleted file mode 100644 index 614b23e905..0000000000 --- a/test/fixtures/transformation/es6-modules-common-strict/overview/expected.js +++ /dev/null @@ -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;