diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index 78024b91ad54..4a48b720bfad 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -41,6 +41,7 @@ "dependencies": { "@babel/code-frame": "^7.8.3", "@babel/generator": "^7.8.7", + "@babel/helper-module-transforms": "^7.8.6", "@babel/helpers": "^7.8.4", "@babel/parser": "^7.8.7", "@babel/template": "^7.8.6", diff --git a/packages/babel-core/src/transformation/file/file.js b/packages/babel-core/src/transformation/file/file.js index ed86452c64ff..2e7b66f3a64c 100644 --- a/packages/babel-core/src/transformation/file/file.js +++ b/packages/babel-core/src/transformation/file/file.js @@ -5,6 +5,7 @@ import { NodePath, Scope, type HubInterface } from "@babel/traverse"; import { codeFrameColumns } from "@babel/code-frame"; import traverse from "@babel/traverse"; import * as t from "@babel/types"; +import { getModuleName } from "@babel/helper-module-transforms"; import semver from "semver"; import type { NormalizedFile } from "../normalize-file"; @@ -106,49 +107,7 @@ export default class File { } getModuleName(): ?string { - const { - filename, - filenameRelative = filename, - - moduleId, - moduleIds = !!moduleId, - - getModuleId, - - sourceRoot: sourceRootTmp, - moduleRoot = sourceRootTmp, - sourceRoot = moduleRoot, - } = this.opts; - - if (!moduleIds) return null; - - // moduleId is n/a if a `getModuleId()` is provided - if (moduleId != null && !getModuleId) { - return moduleId; - } - - let moduleName = moduleRoot != null ? moduleRoot + "/" : ""; - - if (filenameRelative) { - const sourceRootReplacer = - sourceRoot != null ? new RegExp("^" + sourceRoot + "/?") : ""; - - moduleName += filenameRelative - // remove sourceRoot from filename - .replace(sourceRootReplacer, "") - // remove extension - .replace(/\.(\w*?)$/, ""); - } - - // normalize path separators - moduleName = moduleName.replace(/\\/g, "/"); - - if (getModuleId) { - // If return is falsy, assume they want us to use our generated default name - return getModuleId(moduleName) || moduleName; - } else { - return moduleName; - } + return getModuleName(this.opts, this.opts); } addImport() { diff --git a/packages/babel-helper-module-transforms/src/get-module-name.js b/packages/babel-helper-module-transforms/src/get-module-name.js new file mode 100644 index 000000000000..0e4e81ad3e00 --- /dev/null +++ b/packages/babel-helper-module-transforms/src/get-module-name.js @@ -0,0 +1,52 @@ +// @flow + +export default function getModuleName( + rootOpts: Object, + pluginOpts: Object, +): ?string { + const { + filename, + filenameRelative = filename, + + sourceRoot = pluginOpts.moduleRoot ?? rootOpts.moduleRoot, + } = rootOpts; + + const { + moduleId = rootOpts.moduleId, + moduleIds = rootOpts.moduleIds ?? !!moduleId, + + getModuleId = rootOpts.getModuleId, + + moduleRoot = rootOpts.moduleRoot ?? sourceRoot, + } = pluginOpts; + + if (!moduleIds) return null; + + // moduleId is n/a if a `getModuleId()` is provided + if (moduleId != null && !getModuleId) { + return moduleId; + } + + let moduleName = moduleRoot != null ? moduleRoot + "/" : ""; + + if (filenameRelative) { + const sourceRootReplacer = + sourceRoot != null ? new RegExp("^" + sourceRoot + "/?") : ""; + + moduleName += filenameRelative + // remove sourceRoot from filename + .replace(sourceRootReplacer, "") + // remove extension + .replace(/\.(\w*?)$/, ""); + } + + // normalize path separators + moduleName = moduleName.replace(/\\/g, "/"); + + if (getModuleId) { + // If return is falsy, assume they want us to use our generated default name + return getModuleId(moduleName) || moduleName; + } else { + return moduleName; + } +} diff --git a/packages/babel-helper-module-transforms/src/index.js b/packages/babel-helper-module-transforms/src/index.js index fdc4359614e7..854a76fcb3f2 100644 --- a/packages/babel-helper-module-transforms/src/index.js +++ b/packages/babel-helper-module-transforms/src/index.js @@ -12,6 +12,8 @@ import normalizeAndLoadModuleMetadata, { isSideEffectImport, } from "./normalize-and-load-metadata"; +export { default as getModuleName } from "./get-module-name"; + export { hasExports, isSideEffectImport, isModule, rewriteThis }; /** diff --git a/packages/babel-plugin-transform-modules-amd/src/index.js b/packages/babel-plugin-transform-modules-amd/src/index.js index 5ad9cd9861a3..b69d8025be5d 100644 --- a/packages/babel-plugin-transform-modules-amd/src/index.js +++ b/packages/babel-plugin-transform-modules-amd/src/index.js @@ -7,6 +7,7 @@ import { buildNamespaceInitStatements, ensureStatementsHoisted, wrapInterop, + getModuleName, } from "@babel/helper-module-transforms"; import { template, types as t } from "@babel/core"; import { getImportSource } from "babel-plugin-dynamic-import-node/utils"; @@ -96,7 +97,7 @@ export default declare((api, options) => { importNames.push(requireId); } - let moduleName = this.getModuleName(); + let moduleName = getModuleName(this.file.opts, options); if (moduleName) moduleName = t.stringLiteral(moduleName); const { meta, headers } = rewriteModuleStatementsAndPrepareHeader( diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/input.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/input.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/options.json new file mode 100644 index 000000000000..ef11b00e2ba2 --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "moduleIds": true, + "moduleId": "my custom module name" +} diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/output.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/output.js new file mode 100644 index 000000000000..f1f858900a21 --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option-compat/output.js @@ -0,0 +1,3 @@ +define("my custom module name", [], function () { + "use strict"; +}); diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json index ef11b00e2ba2..c4146535aa91 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json @@ -1,5 +1,10 @@ { "sourceType": "module", - "moduleIds": true, - "moduleId": "my custom module name" + "plugins": [ + "external-helpers", + ["transform-modules-amd", { + "moduleIds": true, + "moduleId": "my custom module name" + }] + ] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/input.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/input.js new file mode 100644 index 000000000000..f3b473756e59 --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/input.js @@ -0,0 +1 @@ +foobar(); diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/options.json new file mode 100644 index 000000000000..5b0398abbe6f --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/options.json @@ -0,0 +1,4 @@ +{ + "sourceType": "module", + "moduleIds": true +} diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/output.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/output.js new file mode 100644 index 000000000000..73ae58b80e38 --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name-compat/output.js @@ -0,0 +1,5 @@ +define("amd/module-name-compat/input", [], function () { + "use strict"; + + foobar(); +}); diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json index 5b0398abbe6f..6aab7e2d4ba8 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json @@ -1,4 +1,7 @@ { "sourceType": "module", - "moduleIds": true + "plugins": [ + "external-helpers", + ["transform-modules-amd", { "moduleIds": true }] + ] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/input.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/input.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/options.json new file mode 100644 index 000000000000..918617aab900 --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/options.json @@ -0,0 +1,6 @@ +{ + "sourceType": "module", + "moduleIds": true, + "moduleId": "my custom module name", + "plugins": ["external-helpers", ["transform-modules-amd", { "loose": true }]] +} diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/output.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/output.js new file mode 100644 index 000000000000..f1f858900a21 --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option-compat/output.js @@ -0,0 +1,3 @@ +define("my custom module name", [], function () { + "use strict"; +}); diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json index 918617aab900..119cb21bfbe5 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json @@ -1,6 +1,11 @@ { "sourceType": "module", - "moduleIds": true, - "moduleId": "my custom module name", - "plugins": ["external-helpers", ["transform-modules-amd", { "loose": true }]] + "plugins": [ + "external-helpers", + ["transform-modules-amd", { + "loose": true, + "moduleIds": true, + "moduleId": "my custom module name" + }] + ] } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/input.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/input.js new file mode 100644 index 000000000000..f3b473756e59 --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/input.js @@ -0,0 +1 @@ +foobar(); diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/options.json new file mode 100644 index 000000000000..c231826eafff --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "moduleIds": true, + "plugins": ["external-helpers", ["transform-modules-amd", { "loose": true }]] +} diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/output.js b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/output.js new file mode 100644 index 000000000000..dade0a07e66d --- /dev/null +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name-compat/output.js @@ -0,0 +1,5 @@ +define("loose/module-name-compat/input", [], function () { + "use strict"; + + foobar(); +}); diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json index c231826eafff..cc6c05b5fd6c 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json @@ -1,5 +1,10 @@ { "sourceType": "module", - "moduleIds": true, - "plugins": ["external-helpers", ["transform-modules-amd", { "loose": true }]] + "plugins": [ + "external-helpers", + ["transform-modules-amd", { + "loose": true, + "moduleIds": true + }] + ] } diff --git a/packages/babel-plugin-transform-modules-commonjs/src/index.js b/packages/babel-plugin-transform-modules-commonjs/src/index.js index 11d4617f4398..de9274d890f7 100644 --- a/packages/babel-plugin-transform-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-modules-commonjs/src/index.js @@ -6,6 +6,7 @@ import { buildNamespaceInitStatements, ensureStatementsHoisted, wrapInterop, + getModuleName, } from "@babel/helper-module-transforms"; import simplifyAccess from "@babel/helper-simple-access"; import { template, types as t } from "@babel/core"; @@ -161,7 +162,7 @@ export default declare((api, options) => { }); } - let moduleName = this.getModuleName(); + let moduleName = getModuleName(this.file.opts, options); if (moduleName) moduleName = t.stringLiteral(moduleName); const { meta, headers } = rewriteModuleStatementsAndPrepareHeader( diff --git a/packages/babel-plugin-transform-modules-systemjs/src/index.js b/packages/babel-plugin-transform-modules-systemjs/src/index.js index fa322f434cc2..2f56ad078f82 100644 --- a/packages/babel-plugin-transform-modules-systemjs/src/index.js +++ b/packages/babel-plugin-transform-modules-systemjs/src/index.js @@ -2,7 +2,7 @@ import { declare } from "@babel/helper-plugin-utils"; import hoistVariables from "@babel/helper-hoist-variables"; import { template, types as t } from "@babel/core"; import { getImportSource } from "babel-plugin-dynamic-import-node/utils"; -import { rewriteThis } from "@babel/helper-module-transforms"; +import { rewriteThis, getModuleName } from "@babel/helper-module-transforms"; const buildTemplate = template(` SYSTEM_REGISTER(MODULE_NAME, SOURCES, function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) { @@ -501,7 +501,7 @@ export default declare((api, options) => { ); }); - let moduleName = this.getModuleName(); + let moduleName = getModuleName(this.file.opts, options); if (moduleName) moduleName = t.stringLiteral(moduleName); hoistVariables( diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/input.js b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/input.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/options.json b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/options.json new file mode 100644 index 000000000000..6d0cdb5a6f0c --- /dev/null +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/options.json @@ -0,0 +1,4 @@ +{ + "moduleIds": true, + "moduleId": "my custom module name" +} diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/output.js b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/output.js new file mode 100644 index 000000000000..34d9b6bfd7cb --- /dev/null +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option-compat/output.js @@ -0,0 +1,8 @@ +System.register("my custom module name", [], function (_export, _context) { + "use strict"; + + return { + setters: [], + execute: function () {} + }; +}); diff --git a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option/options.json index 6d0cdb5a6f0c..a6532e913785 100644 --- a/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-systemjs/test/fixtures/systemjs/get-module-name-option/options.json @@ -1,4 +1,9 @@ { - "moduleIds": true, - "moduleId": "my custom module name" + "plugins": [ + "external-helpers", + ["transform-modules-systemjs", { + "moduleIds": true, + "moduleId": "my custom module name" + }] + ] } diff --git a/packages/babel-plugin-transform-modules-umd/src/index.js b/packages/babel-plugin-transform-modules-umd/src/index.js index 87ab37eff91d..0f85d5f9a324 100644 --- a/packages/babel-plugin-transform-modules-umd/src/index.js +++ b/packages/babel-plugin-transform-modules-umd/src/index.js @@ -8,6 +8,7 @@ import { buildNamespaceInitStatements, ensureStatementsHoisted, wrapInterop, + getModuleName, } from "@babel/helper-module-transforms"; import { types as t, template } from "@babel/core"; @@ -140,7 +141,7 @@ export default declare((api, options) => { const browserGlobals = globals || {}; - let moduleName = this.getModuleName(); + let moduleName = getModuleName(this.file.opts, options); if (moduleName) moduleName = t.stringLiteral(moduleName); const { meta, headers } = rewriteModuleStatementsAndPrepareHeader( diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/input.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/input.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/options.json new file mode 100644 index 000000000000..039bece2c37e --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/options.json @@ -0,0 +1,6 @@ +{ + "sourceType": "module", + "moduleIds": true, + "moduleId": "my custom module name", + "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] +} diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/output.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/output.js new file mode 100644 index 000000000000..bbfb355912b8 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option-compat/output.js @@ -0,0 +1,15 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("my custom module name", [], factory); + } else if (typeof exports !== "undefined") { + factory(); + } else { + var mod = { + exports: {} + }; + factory(); + global.myCustomModuleName = mod.exports; + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function () { + "use strict"; +}); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json index 039bece2c37e..1dc44a20c5c2 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json @@ -1,6 +1,11 @@ { "sourceType": "module", - "moduleIds": true, - "moduleId": "my custom module name", - "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] + "plugins": [ + "external-helpers", + ["transform-modules-umd", { + "loose": true, + "moduleIds": true, + "moduleId": "my custom module name" + }] + ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/input.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/input.js new file mode 100644 index 000000000000..f3b473756e59 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/input.js @@ -0,0 +1 @@ +foobar(); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/options.json new file mode 100644 index 000000000000..6ee8c312f9bf --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "moduleIds": true, + "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] +} diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/output.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/output.js new file mode 100644 index 000000000000..1366dccf59fa --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-compat/output.js @@ -0,0 +1,17 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("loose/module-name-compat/input", [], factory); + } else if (typeof exports !== "undefined") { + factory(); + } else { + var mod = { + exports: {} + }; + factory(); + global.looseModuleNameCompatInput = mod.exports; + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function () { + "use strict"; + + foobar(); +}); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/input.mjs b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/input.mjs new file mode 100644 index 000000000000..7a4e8a723a40 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/input.mjs @@ -0,0 +1 @@ +export default 42; diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/options.json new file mode 100644 index 000000000000..745ff7a7ea53 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/options.json @@ -0,0 +1,16 @@ +{ + "plugins": [ + "external-helpers", + [ + "transform-modules-umd", + { + "globals": { + "umd/module-name-with-overridden-global/expected": "baz" + }, + "exactGlobals": true, + "loose": true + } + ] + ], + "moduleIds": true +} diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/output.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/output.js new file mode 100644 index 000000000000..bad492ef7807 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global-compat/output.js @@ -0,0 +1,20 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("loose/module-name-with-overridden-global-compat/input", ["exports"], factory); + } else if (typeof exports !== "undefined") { + factory(exports); + } else { + var mod = { + exports: {} + }; + factory(mod.exports); + global.looseModuleNameWithOverriddenGlobalCompatInput = mod.exports; + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) { + "use strict"; + + _exports.__esModule = true; + _exports.default = void 0; + var _default = 42; + _exports.default = _default; +}); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json index 745ff7a7ea53..0a4089dfb8e5 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name-with-overridden-global/options.json @@ -8,9 +8,9 @@ "umd/module-name-with-overridden-global/expected": "baz" }, "exactGlobals": true, + "moduleIds": true, "loose": true } ] - ], - "moduleIds": true + ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json index 6ee8c312f9bf..b5625da73103 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json @@ -1,5 +1,10 @@ { "sourceType": "module", - "moduleIds": true, - "plugins": ["external-helpers", ["transform-modules-umd", { "loose": true }]] + "plugins": [ + "external-helpers", + ["transform-modules-umd", { + "loose": true, + "moduleIds": true + }] + ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/input.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/input.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/options.json new file mode 100644 index 000000000000..ef11b00e2ba2 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "moduleIds": true, + "moduleId": "my custom module name" +} diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/output.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/output.js new file mode 100644 index 000000000000..bbfb355912b8 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option-compat/output.js @@ -0,0 +1,15 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("my custom module name", [], factory); + } else if (typeof exports !== "undefined") { + factory(); + } else { + var mod = { + exports: {} + }; + factory(); + global.myCustomModuleName = mod.exports; + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function () { + "use strict"; +}); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json index ef11b00e2ba2..e1a151d01e62 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json @@ -1,5 +1,10 @@ { "sourceType": "module", - "moduleIds": true, - "moduleId": "my custom module name" + "plugins": [ + "external-helpers", + ["transform-modules-umd", { + "moduleIds": true, + "moduleId": "my custom module name" + }] + ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/input.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/input.js new file mode 100644 index 000000000000..f3b473756e59 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/input.js @@ -0,0 +1 @@ +foobar(); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/options.json new file mode 100644 index 000000000000..5b0398abbe6f --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/options.json @@ -0,0 +1,4 @@ +{ + "sourceType": "module", + "moduleIds": true +} diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/output.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/output.js new file mode 100644 index 000000000000..c2f6401c74ce --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-compat/output.js @@ -0,0 +1,17 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("umd/module-name-compat/input", [], factory); + } else if (typeof exports !== "undefined") { + factory(); + } else { + var mod = { + exports: {} + }; + factory(); + global.umdModuleNameCompatInput = mod.exports; + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function () { + "use strict"; + + foobar(); +}); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/input.mjs b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/input.mjs new file mode 100644 index 000000000000..7a4e8a723a40 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/input.mjs @@ -0,0 +1 @@ +export default 42; diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/options.json new file mode 100644 index 000000000000..369639e804b5 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/options.json @@ -0,0 +1,15 @@ +{ + "plugins": [ + "external-helpers", + [ + "transform-modules-umd", + { + "globals": { + "umd/module-name-with-overridden-global/expected": "baz" + }, + "exactGlobals": true + } + ] + ], + "moduleIds": true +} diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/output.js b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/output.js new file mode 100644 index 000000000000..77b9676b4f07 --- /dev/null +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global-compat/output.js @@ -0,0 +1,22 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("umd/module-name-with-overridden-global-compat/input", ["exports"], factory); + } else if (typeof exports !== "undefined") { + factory(exports); + } else { + var mod = { + exports: {} + }; + factory(mod.exports); + global.umdModuleNameWithOverriddenGlobalCompatInput = mod.exports; + } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) { + "use strict"; + + Object.defineProperty(_exports, "__esModule", { + value: true + }); + _exports.default = void 0; + var _default = 42; + _exports.default = _default; +}); diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json index 369639e804b5..f3aca6c65673 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name-with-overridden-global/options.json @@ -7,9 +7,9 @@ "globals": { "umd/module-name-with-overridden-global/expected": "baz" }, - "exactGlobals": true + "exactGlobals": true, + "moduleIds": true } ] - ], - "moduleIds": true + ] } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json index 5b0398abbe6f..991874b44564 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json @@ -1,4 +1,9 @@ { "sourceType": "module", - "moduleIds": true + "plugins": [ + "external-helpers", + ["transform-modules-umd", { + "moduleIds": true + }] + ] }