From fc7c26e9242d5d9ab370c2515abf11b17f327f5d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 9 Oct 2014 13:30:22 +1100 Subject: [PATCH] upgrade to esprima-fb - finalise es6 module syntax - closes #14 --- README.md | 28 ++++ .../templates/exports-default-require-key.js | 1 + lib/6to5/templates/exports-default-require.js | 1 + lib/6to5/templates/exports-default.js | 2 +- lib/6to5/templates/exports-require-assign.js | 1 + lib/6to5/templates/require-key.js | 1 + lib/6to5/transformers/modules.js | 138 +++++++++++------- lib/6to5/util.js | 8 +- package.json | 5 +- .../fixtures/modules/export-as-from/actual.js | 1 - .../modules/export-as-from/expected.js | 1 - .../fixtures/modules/export-default/actual.js | 5 - .../modules/export-default/expected.js | 5 - .../export-destructuring-from/actual.js | 1 - .../export-destructuring-from/expected.js | 2 - .../modules/export-function/actual.js | 3 - .../modules/export-function/expected.js | 3 - test/fixtures/modules/export-var/actual.js | 1 - test/fixtures/modules/export-var/expected.js | 7 - .../modules/export-wildcard-from/actual.js | 1 - .../modules/export-wildcard-from/expected.js | 5 - test/fixtures/modules/export/actual.js | 1 - test/fixtures/modules/export/expected.js | 2 - .../modules/exports-default/actual.js | 8 + .../modules/exports-default/expected.js | 8 + test/fixtures/modules/exports-from/actual.js | 8 + .../fixtures/modules/exports-from/expected.js | 22 +++ test/fixtures/modules/exports-named/actual.js | 5 + .../modules/exports-named/expected.js | 11 ++ .../modules/exports-variable/actual.js | 8 + .../modules/exports-variable/expected.js | 23 +++ .../fixtures/modules/import-as-from/actual.js | 1 - .../modules/import-as-from/expected.js | 1 - .../import-destructuring-from/actual.js | 1 - .../import-destructuring-from/expected.js | 2 - test/fixtures/modules/import-from/actual.js | 1 - test/fixtures/modules/import-from/expected.js | 1 - .../modules/imports-default/actual.js | 2 + .../modules/imports-default/expected.js | 2 + test/fixtures/modules/imports-glob/actual.js | 1 + .../fixtures/modules/imports-glob/expected.js | 1 + .../fixtures/modules/imports-mixing/actual.js | 2 + .../modules/imports-mixing/expected.js | 5 + test/fixtures/modules/imports-named/actual.js | 4 + .../modules/imports-named/expected.js | 9 ++ test/fixtures/modules/imports/actual.js | 3 + test/fixtures/modules/imports/expected.js | 3 + test/fixtures/modules/module-from/actual.js | 1 - test/fixtures/modules/module-from/expected.js | 1 - 49 files changed, 253 insertions(+), 104 deletions(-) create mode 100644 lib/6to5/templates/exports-default-require-key.js create mode 100644 lib/6to5/templates/exports-default-require.js create mode 100644 lib/6to5/templates/exports-require-assign.js create mode 100644 lib/6to5/templates/require-key.js delete mode 100644 test/fixtures/modules/export-as-from/actual.js delete mode 100644 test/fixtures/modules/export-as-from/expected.js delete mode 100644 test/fixtures/modules/export-default/actual.js delete mode 100644 test/fixtures/modules/export-default/expected.js delete mode 100644 test/fixtures/modules/export-destructuring-from/actual.js delete mode 100644 test/fixtures/modules/export-destructuring-from/expected.js delete mode 100644 test/fixtures/modules/export-function/actual.js delete mode 100644 test/fixtures/modules/export-function/expected.js delete mode 100644 test/fixtures/modules/export-var/actual.js delete mode 100644 test/fixtures/modules/export-var/expected.js delete mode 100644 test/fixtures/modules/export-wildcard-from/actual.js delete mode 100644 test/fixtures/modules/export-wildcard-from/expected.js delete mode 100644 test/fixtures/modules/export/actual.js delete mode 100644 test/fixtures/modules/export/expected.js create mode 100644 test/fixtures/modules/exports-default/actual.js create mode 100644 test/fixtures/modules/exports-default/expected.js create mode 100644 test/fixtures/modules/exports-from/actual.js create mode 100644 test/fixtures/modules/exports-from/expected.js create mode 100644 test/fixtures/modules/exports-named/actual.js create mode 100644 test/fixtures/modules/exports-named/expected.js create mode 100644 test/fixtures/modules/exports-variable/actual.js create mode 100644 test/fixtures/modules/exports-variable/expected.js delete mode 100644 test/fixtures/modules/import-as-from/actual.js delete mode 100644 test/fixtures/modules/import-as-from/expected.js delete mode 100644 test/fixtures/modules/import-destructuring-from/actual.js delete mode 100644 test/fixtures/modules/import-destructuring-from/expected.js delete mode 100644 test/fixtures/modules/import-from/actual.js delete mode 100644 test/fixtures/modules/import-from/expected.js create mode 100644 test/fixtures/modules/imports-default/actual.js create mode 100644 test/fixtures/modules/imports-default/expected.js create mode 100644 test/fixtures/modules/imports-glob/actual.js create mode 100644 test/fixtures/modules/imports-glob/expected.js create mode 100644 test/fixtures/modules/imports-mixing/actual.js create mode 100644 test/fixtures/modules/imports-mixing/expected.js create mode 100644 test/fixtures/modules/imports-named/actual.js create mode 100644 test/fixtures/modules/imports-named/expected.js create mode 100644 test/fixtures/modules/imports/actual.js create mode 100644 test/fixtures/modules/imports/expected.js delete mode 100644 test/fixtures/modules/module-from/actual.js delete mode 100644 test/fixtures/modules/module-from/expected.js diff --git a/README.md b/README.md index 854c801aa5..9d5ab54abc 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,34 @@ polyfill is also required negating the [polyfill caveat](#polyfill). require("6to5/register"); ``` +## Modules + +6to5 modules compile straight to CommonJS, because of this various liberties are +taken into account to ease their usage. + +```javascript +import "foo"; // var foo = require("foo"); +import "foo-bar"; // var fooBar = require("foo-bar"); +import "./directory/foo-bar"; // var fooBar = require("./directory/foo-bar"); +import foo from "foo"; // var foo = require("foo"); +import * as foo from "foo"; // var foo = require("foo"); + +import { bar } from "foo"; // var bar = require("foo").bar; +import foo as bar from "foo"; // var bar = require("foo").foo; + +export { test }; // exports.test = test; +export var test = 5; // var test = 5; exports.test = test; + +export default test; // module.exports = exports = test; +``` + +If you'd like to disable this behaviour and use the more ES6-like +[es6-module-transpiler](https://github.com/esnext/es6-module-transpiler) you can +use the following: + + $ 6to5 script.js -o script-compiled.js --blacklist modules + $ compile-modules convert script-compiled.js -o script-compiled.js + ## Caveats ### Polyfill diff --git a/lib/6to5/templates/exports-default-require-key.js b/lib/6to5/templates/exports-default-require-key.js new file mode 100644 index 0000000000..9f055f11b6 --- /dev/null +++ b/lib/6to5/templates/exports-default-require-key.js @@ -0,0 +1 @@ +module.exports = exports = require(MODULE_NAME).KEY; diff --git a/lib/6to5/templates/exports-default-require.js b/lib/6to5/templates/exports-default-require.js new file mode 100644 index 0000000000..8ebc4c97a7 --- /dev/null +++ b/lib/6to5/templates/exports-default-require.js @@ -0,0 +1 @@ +module.exports = exports = require(MODULE_NAME); diff --git a/lib/6to5/templates/exports-default.js b/lib/6to5/templates/exports-default.js index 4ce92a4fd1..292914e254 100644 --- a/lib/6to5/templates/exports-default.js +++ b/lib/6to5/templates/exports-default.js @@ -1 +1 @@ -exports = module.exports = VALUE; +module.exports = exports = VALUE; diff --git a/lib/6to5/templates/exports-require-assign.js b/lib/6to5/templates/exports-require-assign.js new file mode 100644 index 0000000000..4e262a3633 --- /dev/null +++ b/lib/6to5/templates/exports-require-assign.js @@ -0,0 +1 @@ +exports.VARIABLE_NAME = require(MODULE_NAME); diff --git a/lib/6to5/templates/require-key.js b/lib/6to5/templates/require-key.js new file mode 100644 index 0000000000..a25762afb5 --- /dev/null +++ b/lib/6to5/templates/require-key.js @@ -0,0 +1 @@ +require(MODULE_NAME).KEY; diff --git a/lib/6to5/transformers/modules.js b/lib/6to5/transformers/modules.js index be4b1b4c93..0511e3490c 100644 --- a/lib/6to5/transformers/modules.js +++ b/lib/6to5/transformers/modules.js @@ -1,87 +1,119 @@ +var path = require("path"); var util = require("../util"); var b = require("ast-types").builders; var _ = require("lodash"); +var toModuleNameIdentifier = function (node) { + var id = node.source.value; + id = path.basename(id, path.extname(id)); + id = util.camelCase(id); + return b.identifier(id); +}; + exports.ImportDeclaration = function (node) { var nodes = []; - _.each(node.specifiers, function (specifier) { - var variableName = specifier.name || specifier.id; + if (node.specifiers.length) { + _.each(node.specifiers, function (specifier) { + var variableName = specifier.name || specifier.id; + var key = specifier.id.name; - var key = specifier.id.name; + var templateName = "require-assign"; + if (specifier.type === "ImportSpecifier") { + if (key !== "default") templateName += "-key"; + } - var templateName = "require-assign"; - if (node.kind !== "default") templateName += "-key"; - - nodes.push(util.template(templateName, { - VARIABLE_NAME: variableName.name, - MODULE_NAME: node.source, - KEY: key + nodes.push(util.template(templateName, { + VARIABLE_NAME: variableName.name, + MODULE_NAME: node.source.raw, + KEY: key + })); + }); + } else { + nodes.push(util.template("require-assign", { + VARIABLE_NAME: toModuleNameIdentifier(node), + MODULE_NAME: node.source.raw })); - }); + } return nodes; }; -exports.ModuleDeclaration = function (node) { - return util.template("require-assign", { - VARIABLE_NAME: node.id, - MODULE_NAME: node.source - }); -}; - -exports.ExportDeclaration = function (node) { - var nodes = []; - +var pushSpecifiers = function (node, nodes) { _.each(node.specifiers, function (specifier) { var variableName = specifier.name || specifier.id; if (node.source) { if (specifier.type === "ExportBatchSpecifier") { nodes.push(util.template("exports-wildcard", { - MODULE_NAME: node.source + MODULE_NAME: node.source.raw }, true)); } else { - nodes.push(util.template("exports-require-assign-key", { + var templateName; + + if (variableName.name === "default") { + templateName = "exports-default-require"; + } else { + templateName = "exports-require-assign"; + } + + if (specifier.id.name !== "default") templateName += "-key"; + + nodes.push(util.template(templateName, { VARIABLE_NAME: variableName.name, - MODULE_NAME: node.source, + MODULE_NAME: node.source.raw, KEY: specifier.id }, true)); } } else { - nodes.push(util.template("exports-assign", { - VALUE: specifier.id, - KEY: specifier.id - }, true)); - } - }); - - var declar = node.declaration; - - if (declar) { - if (node.default) { - nodes.push(util.template("exports-default", { - VALUE: declar - }, true)); - } else { - if (declar.type === "VariableDeclaration") { - nodes.push(declar); - - _.each(declar.declarations, function (declar) { - nodes.push(util.template("exports-alias-var", { - STRING_KEY: b.literal(declar.id.name), - KEY: declar.id - }, true)); - }); - } else if (declar.type === "FunctionDeclaration") { - declar.type = "FunctionExpression"; - + if (variableName.name === "default") { + nodes.push(util.template("exports-default", { + VALUE: specifier.id + }, true)); + } else { nodes.push(util.template("exports-assign", { - KEY: declar.id, - VALUE: declar + VALUE: specifier.id, + KEY: variableName }, true)); } } + }); +}; + +var pushDeclaration = function (node, nodes) { + var declar = node.declaration; + + if (node.default) { + if (declar.type === "FunctionDeclaration") { + declar.type = "FunctionExpression"; + } else if (declar.type === "ClassDeclaration") { + declar.type = "ClassExpression"; + } + + nodes.push(util.template("exports-default", { + VALUE: declar + }, true)); + } else { + var id = declar.id; + if (declar.type === "VariableDeclaration") { + id = declar.declarations[0].id; + } + + nodes.push(declar); + nodes.push(util.template("exports-assign", { + VALUE: id, + KEY: id + }, true)); + } +}; + +exports.ExportDeclaration = function (node) { + var nodes = []; + + if (node.declaration) { + pushDeclaration(node, nodes); + } else { + pushSpecifiers(node, nodes); } return nodes; diff --git a/lib/6to5/util.js b/lib/6to5/util.js index b07b4465a0..af79c8695c 100644 --- a/lib/6to5/util.js +++ b/lib/6to5/util.js @@ -1,7 +1,7 @@ var estraverse = require("estraverse"); var escodegen = require("escodegen"); var traverse = require("./traverse"); -var esprima = require("esprima"); +var esprima = require("esprima-fb"); var path = require("path"); var fs = require("fs"); var _ = require("lodash"); @@ -79,6 +79,12 @@ exports.errorWithNode = function (node, msg) { return err; }; +exports.camelCase = function (value) { + return value.replace(/[-_\s]+(.)?/g, function (match, c){ + return c ? c.toUpperCase() : ""; + }); +}; + exports.canCompile = function (filename) { var ext = path.extname(filename); return ext === ".js" || ext === ".es6"; diff --git a/package.json b/package.json index 66837ec4f4..a48d40c028 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "ast-types": "0.5.0", "commander": "2.3.0", "escodegen": "https://github.com/Constellation/escodegen/archive/624550d0d6edf812a661902c6908dedff66005a7.tar.gz", - "esprima": "https://github.com/esnext/esprima/archive/ebda4fb14a2aad61c54a83006c061c1649636985.tar.gz", + "esprima-fb": "7001.1.0-dev-harmony-fb", "estraverse": "1.5.1", "fs-readdir-recursive": "0.0.2", "lodash": "2.4.1", @@ -55,6 +55,7 @@ "mocha": "1.21.4", "traceur": "0.0.66", "esnext": "0.11.1", - "es6now": "0.8.11" + "es6now": "0.8.11", + "jstransform": "^6.3.2" } } diff --git a/test/fixtures/modules/export-as-from/actual.js b/test/fixtures/modules/export-as-from/actual.js deleted file mode 100644 index 8187c99075..0000000000 --- a/test/fixtures/modules/export-as-from/actual.js +++ /dev/null @@ -1 +0,0 @@ -export { encrypt as enc } from "crypto"; diff --git a/test/fixtures/modules/export-as-from/expected.js b/test/fixtures/modules/export-as-from/expected.js deleted file mode 100644 index 4d590deb40..0000000000 --- a/test/fixtures/modules/export-as-from/expected.js +++ /dev/null @@ -1 +0,0 @@ -exports.enc = require("crypto").encrypt; diff --git a/test/fixtures/modules/export-default/actual.js b/test/fixtures/modules/export-default/actual.js deleted file mode 100644 index 907bb83258..0000000000 --- a/test/fixtures/modules/export-default/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -export default test; - -export default function (foo, bar) { - -}; diff --git a/test/fixtures/modules/export-default/expected.js b/test/fixtures/modules/export-default/expected.js deleted file mode 100644 index 990160eb8f..0000000000 --- a/test/fixtures/modules/export-default/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -exports = module.exports = test; - -exports = module.exports = function (foo, bar) { - -}; diff --git a/test/fixtures/modules/export-destructuring-from/actual.js b/test/fixtures/modules/export-destructuring-from/actual.js deleted file mode 100644 index 626c3db849..0000000000 --- a/test/fixtures/modules/export-destructuring-from/actual.js +++ /dev/null @@ -1 +0,0 @@ -export { foo, bar } from "crypto"; diff --git a/test/fixtures/modules/export-destructuring-from/expected.js b/test/fixtures/modules/export-destructuring-from/expected.js deleted file mode 100644 index dcbb54c5ec..0000000000 --- a/test/fixtures/modules/export-destructuring-from/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -exports.foo = require("crypto").foo; -exports.bar = require("crypto").bar; diff --git a/test/fixtures/modules/export-function/actual.js b/test/fixtures/modules/export-function/actual.js deleted file mode 100644 index b2df74dbb9..0000000000 --- a/test/fixtures/modules/export-function/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -export function wow(foo, bar) { - -} diff --git a/test/fixtures/modules/export-function/expected.js b/test/fixtures/modules/export-function/expected.js deleted file mode 100644 index bdfe47b320..0000000000 --- a/test/fixtures/modules/export-function/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -exports.wow = function wow(foo, bar) { - -}; diff --git a/test/fixtures/modules/export-var/actual.js b/test/fixtures/modules/export-var/actual.js deleted file mode 100644 index 8dc0527156..0000000000 --- a/test/fixtures/modules/export-var/actual.js +++ /dev/null @@ -1 +0,0 @@ -export var foo = "test"; diff --git a/test/fixtures/modules/export-var/expected.js b/test/fixtures/modules/export-var/expected.js deleted file mode 100644 index 7a19e48ebc..0000000000 --- a/test/fixtures/modules/export-var/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -var foo = "test"; - -Object.defineProperty(exports, "foo", { - get: function () { - return foo; - } -}); diff --git a/test/fixtures/modules/export-wildcard-from/actual.js b/test/fixtures/modules/export-wildcard-from/actual.js deleted file mode 100644 index 3fb52a2ef3..0000000000 --- a/test/fixtures/modules/export-wildcard-from/actual.js +++ /dev/null @@ -1 +0,0 @@ -export * from "crypto"; diff --git a/test/fixtures/modules/export-wildcard-from/expected.js b/test/fixtures/modules/export-wildcard-from/expected.js deleted file mode 100644 index ff0e29a0be..0000000000 --- a/test/fixtures/modules/export-wildcard-from/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -(function (obj) { - for (var i in obj) { - exports[i] = obj[i]; - } -}(require("crypto"))); diff --git a/test/fixtures/modules/export/actual.js b/test/fixtures/modules/export/actual.js deleted file mode 100644 index 9dfa348be3..0000000000 --- a/test/fixtures/modules/export/actual.js +++ /dev/null @@ -1 +0,0 @@ -export { foo, bar }; diff --git a/test/fixtures/modules/export/expected.js b/test/fixtures/modules/export/expected.js deleted file mode 100644 index f197410b24..0000000000 --- a/test/fixtures/modules/export/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -exports.foo = foo; -exports.bar = bar; diff --git a/test/fixtures/modules/exports-default/actual.js b/test/fixtures/modules/exports-default/actual.js new file mode 100644 index 0000000000..d7c96201d6 --- /dev/null +++ b/test/fixtures/modules/exports-default/actual.js @@ -0,0 +1,8 @@ +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/modules/exports-default/expected.js b/test/fixtures/modules/exports-default/expected.js new file mode 100644 index 0000000000..cb9e564485 --- /dev/null +++ b/test/fixtures/modules/exports-default/expected.js @@ -0,0 +1,8 @@ +module.exports = exports = 42; +module.exports = exports = {}; +module.exports = exports = []; +module.exports = exports = foo; +module.exports = exports = function () {} +module.exports = exports = class {} +module.exports = exports = function foo () {} +module.exports = exports = class foo {} diff --git a/test/fixtures/modules/exports-from/actual.js b/test/fixtures/modules/exports-from/actual.js new file mode 100644 index 0000000000..f35d71eafd --- /dev/null +++ b/test/fixtures/modules/exports-from/actual.js @@ -0,0 +1,8 @@ +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"; +export {default} from "foo"; +export {default as foo} from "foo"; diff --git a/test/fixtures/modules/exports-from/expected.js b/test/fixtures/modules/exports-from/expected.js new file mode 100644 index 0000000000..c80d8d41f8 --- /dev/null +++ b/test/fixtures/modules/exports-from/expected.js @@ -0,0 +1,22 @@ +(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; + +module.exports = exports = require("foo").foo; + +module.exports = exports = require("foo").foo; +exports.bar = require("foo").bar; + +module.exports = exports = require("foo"); + +exports.foo = require("foo"); + diff --git a/test/fixtures/modules/exports-named/actual.js b/test/fixtures/modules/exports-named/actual.js new file mode 100644 index 0000000000..8515ace759 --- /dev/null +++ b/test/fixtures/modules/exports-named/actual.js @@ -0,0 +1,5 @@ +export {foo}; +export {foo, bar}; +export {foo as bar}; +export {foo as default}; +export {foo as default, bar}; diff --git a/test/fixtures/modules/exports-named/expected.js b/test/fixtures/modules/exports-named/expected.js new file mode 100644 index 0000000000..ce4f7004a9 --- /dev/null +++ b/test/fixtures/modules/exports-named/expected.js @@ -0,0 +1,11 @@ +exports.foo = foo; + +exports.foo = foo; +exports.bar = bar; + +exports.bar = foo; + +module.exports = exports = foo; + +module.exports = exports = foo; +exports.bar = bar; diff --git a/test/fixtures/modules/exports-variable/actual.js b/test/fixtures/modules/exports-variable/actual.js new file mode 100644 index 0000000000..9ea2ab508d --- /dev/null +++ b/test/fixtures/modules/exports-variable/actual.js @@ -0,0 +1,8 @@ +export var foo = 1; +export var foo = function () {}; +export var bar; +export let foo = 2; +export let bar; +export const foo = 3; +export function foo () {} +export class foo {} diff --git a/test/fixtures/modules/exports-variable/expected.js b/test/fixtures/modules/exports-variable/expected.js new file mode 100644 index 0000000000..d4fb035500 --- /dev/null +++ b/test/fixtures/modules/exports-variable/expected.js @@ -0,0 +1,23 @@ +var foo = 1; +exports.foo = foo; + +var foo = function () {}; +exports.foo = foo; + +var bar; +exports.bar = bar; + +let foo = 2; +exports.foo = foo; + +let bar; +exports.bar = bar; + +const foo = 3; +exports.foo = foo; + +function foo () {} +exports.foo = foo; + +class foo {} +exports.foo = foo; diff --git a/test/fixtures/modules/import-as-from/actual.js b/test/fixtures/modules/import-as-from/actual.js deleted file mode 100644 index a897653534..0000000000 --- a/test/fixtures/modules/import-as-from/actual.js +++ /dev/null @@ -1 +0,0 @@ -import { encrypt as enc } from "crypto"; diff --git a/test/fixtures/modules/import-as-from/expected.js b/test/fixtures/modules/import-as-from/expected.js deleted file mode 100644 index f7b0039b7d..0000000000 --- a/test/fixtures/modules/import-as-from/expected.js +++ /dev/null @@ -1 +0,0 @@ -var enc = require("crypto").encrypt; diff --git a/test/fixtures/modules/import-destructuring-from/actual.js b/test/fixtures/modules/import-destructuring-from/actual.js deleted file mode 100644 index 03ce0acae7..0000000000 --- a/test/fixtures/modules/import-destructuring-from/actual.js +++ /dev/null @@ -1 +0,0 @@ -import { encrypt, decrypt } from "crypto"; diff --git a/test/fixtures/modules/import-destructuring-from/expected.js b/test/fixtures/modules/import-destructuring-from/expected.js deleted file mode 100644 index 4288d2f3af..0000000000 --- a/test/fixtures/modules/import-destructuring-from/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -var encrypt = require("crypto").encrypt; -var decrypt = require("crypto").decrypt; diff --git a/test/fixtures/modules/import-from/actual.js b/test/fixtures/modules/import-from/actual.js deleted file mode 100644 index 4913f920e0..0000000000 --- a/test/fixtures/modules/import-from/actual.js +++ /dev/null @@ -1 +0,0 @@ -import $ from "jquery"; diff --git a/test/fixtures/modules/import-from/expected.js b/test/fixtures/modules/import-from/expected.js deleted file mode 100644 index 706ca85314..0000000000 --- a/test/fixtures/modules/import-from/expected.js +++ /dev/null @@ -1 +0,0 @@ -var $ = require("jquery"); diff --git a/test/fixtures/modules/imports-default/actual.js b/test/fixtures/modules/imports-default/actual.js new file mode 100644 index 0000000000..e67418654c --- /dev/null +++ b/test/fixtures/modules/imports-default/actual.js @@ -0,0 +1,2 @@ +import foo from "foo"; +import {default as foo} from "foo"; diff --git a/test/fixtures/modules/imports-default/expected.js b/test/fixtures/modules/imports-default/expected.js new file mode 100644 index 0000000000..3cfe015496 --- /dev/null +++ b/test/fixtures/modules/imports-default/expected.js @@ -0,0 +1,2 @@ +var foo = require("foo"); +var foo = require("foo"); diff --git a/test/fixtures/modules/imports-glob/actual.js b/test/fixtures/modules/imports-glob/actual.js new file mode 100644 index 0000000000..e55c077500 --- /dev/null +++ b/test/fixtures/modules/imports-glob/actual.js @@ -0,0 +1 @@ +import * as foo from "foo"; diff --git a/test/fixtures/modules/imports-glob/expected.js b/test/fixtures/modules/imports-glob/expected.js new file mode 100644 index 0000000000..99bf8b9add --- /dev/null +++ b/test/fixtures/modules/imports-glob/expected.js @@ -0,0 +1 @@ +var foo = require("foo"); diff --git a/test/fixtures/modules/imports-mixing/actual.js b/test/fixtures/modules/imports-mixing/actual.js new file mode 100644 index 0000000000..24bf7d8b5b --- /dev/null +++ b/test/fixtures/modules/imports-mixing/actual.js @@ -0,0 +1,2 @@ +import foo, {baz as xyz} from "foo"; +import foo, * as bar from "foo"; diff --git a/test/fixtures/modules/imports-mixing/expected.js b/test/fixtures/modules/imports-mixing/expected.js new file mode 100644 index 0000000000..410ce210b9 --- /dev/null +++ b/test/fixtures/modules/imports-mixing/expected.js @@ -0,0 +1,5 @@ +var foo = require("foo"); +var xyz = require("foo").baz; + +var foo = require("foo"); +var bar = require("foo"); diff --git a/test/fixtures/modules/imports-named/actual.js b/test/fixtures/modules/imports-named/actual.js new file mode 100644 index 0000000000..83a766c62d --- /dev/null +++ b/test/fixtures/modules/imports-named/actual.js @@ -0,0 +1,4 @@ +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/modules/imports-named/expected.js b/test/fixtures/modules/imports-named/expected.js new file mode 100644 index 0000000000..a37d586d0f --- /dev/null +++ b/test/fixtures/modules/imports-named/expected.js @@ -0,0 +1,9 @@ +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/modules/imports/actual.js b/test/fixtures/modules/imports/actual.js new file mode 100644 index 0000000000..222b6885ac --- /dev/null +++ b/test/fixtures/modules/imports/actual.js @@ -0,0 +1,3 @@ +import "foo"; +import "foo-bar"; +import "./directory/foo-bar"; diff --git a/test/fixtures/modules/imports/expected.js b/test/fixtures/modules/imports/expected.js new file mode 100644 index 0000000000..2538c17c74 --- /dev/null +++ b/test/fixtures/modules/imports/expected.js @@ -0,0 +1,3 @@ +var foo = require("foo"); +var fooBar = require("foo-bar"); +var fooBar = require("./directory/foo-bar"); diff --git a/test/fixtures/modules/module-from/actual.js b/test/fixtures/modules/module-from/actual.js deleted file mode 100644 index f9d99b90b5..0000000000 --- a/test/fixtures/modules/module-from/actual.js +++ /dev/null @@ -1 +0,0 @@ -module crypto from "crypto"; diff --git a/test/fixtures/modules/module-from/expected.js b/test/fixtures/modules/module-from/expected.js deleted file mode 100644 index 3ce9932615..0000000000 --- a/test/fixtures/modules/module-from/expected.js +++ /dev/null @@ -1 +0,0 @@ -var crypto = require("crypto");