From 704b31f44fb9ecaaee1969e81e68a7dd8c9f5aaa Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 9 Apr 2015 14:36:00 -0700 Subject: [PATCH] use path basename as non-default import fallback - fixes #1207 --- src/babel/transformation/modules/umd.js | 3 ++- .../es6.modules-umd/imports/expected.js | 4 ++-- .../es6.modules-umd/non-default-imports/actual.js | 1 + .../non-default-imports/expected.js | 15 +++++++++++++++ .../es6.modules-umd/overview/expected.js | 4 ++-- 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 test/core/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js create mode 100644 test/core/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js diff --git a/src/babel/transformation/modules/umd.js b/src/babel/transformation/modules/umd.js index 489dc20bdf..94f0c93d43 100644 --- a/src/babel/transformation/modules/umd.js +++ b/src/babel/transformation/modules/umd.js @@ -1,6 +1,7 @@ import DefaultFormatter from "./_default"; import AMDFormatter from "./amd"; import values from "lodash/object/values"; +import path from "path"; import * as util from "../../util"; import * as t from "../../types"; @@ -51,7 +52,7 @@ export default class UMDFormatter extends AMDFormatter { if (this.passModuleArg) browserArgs.push(t.identifier("mod")); for (let name in this.ids) { - var id = this.defaultIds[name] || t.identifier(t.toIdentifier(name)); + var id = this.defaultIds[name] || t.identifier(t.toIdentifier(path.basename(name, path.extname(name)))); browserArgs.push(t.memberExpression(t.identifier("global"), id)); } diff --git a/test/core/fixtures/transformation/es6.modules-umd/imports/expected.js b/test/core/fixtures/transformation/es6.modules-umd/imports/expected.js index 87620012bf..ef4725dcb4 100644 --- a/test/core/fixtures/transformation/es6.modules-umd/imports/expected.js +++ b/test/core/fixtures/transformation/es6.modules-umd/imports/expected.js @@ -7,9 +7,9 @@ var mod = { exports: {} }; - factory(mod.exports, global.foo, global.fooBar, global.directoryFooBar); + factory(mod.exports, global.foo, global.fooBar, global.fooBar); global.actual = mod.exports; } })(this, function (exports, _foo, _fooBar, _directoryFooBar) { "use strict"; -}); \ No newline at end of file +}); diff --git a/test/core/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js b/test/core/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js new file mode 100644 index 0000000000..f6c94daa70 --- /dev/null +++ b/test/core/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js @@ -0,0 +1 @@ +import { render } from "./lib/render"; diff --git a/test/core/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js b/test/core/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js new file mode 100644 index 0000000000..5ee1c4b1e4 --- /dev/null +++ b/test/core/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js @@ -0,0 +1,15 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define(["exports", "./lib/render"], factory); + } else if (typeof exports !== "undefined") { + factory(exports, require("./lib/render")); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, global.render); + global.actual = mod.exports; + } +})(this, function (exports, _libRender) { + "use strict"; +}); diff --git a/test/core/fixtures/transformation/es6.modules-umd/overview/expected.js b/test/core/fixtures/transformation/es6.modules-umd/overview/expected.js index 385b20998b..8000493eb7 100644 --- a/test/core/fixtures/transformation/es6.modules-umd/overview/expected.js +++ b/test/core/fixtures/transformation/es6.modules-umd/overview/expected.js @@ -7,7 +7,7 @@ var mod = { exports: {} }; - factory(mod.exports, global.foo2, global.fooBar, global.directoryFooBar); + factory(mod.exports, global.foo2, global.fooBar, global.fooBar); global.actual = mod.exports; } })(this, function (exports, _foo, _fooBar, _directoryFooBar) { @@ -29,4 +29,4 @@ _foo.bar; _foo.foo; -}); \ No newline at end of file +});