From 687fb9f87c24cc71bc810c02bf15613cbc9ae31f Mon Sep 17 00:00:00 2001 From: Jmeas Date: Sat, 14 Feb 2015 21:25:43 -0500 Subject: [PATCH 1/4] Support nameless UMD export. ...maybe. --- src/utils/umd/defaultUmdIntro.js | 4 ++-- src/utils/umd/strictUmdIntro.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/umd/defaultUmdIntro.js b/src/utils/umd/defaultUmdIntro.js index fd915be..fe71765 100644 --- a/src/utils/umd/defaultUmdIntro.js +++ b/src/utils/umd/defaultUmdIntro.js @@ -18,7 +18,7 @@ export default function defaultUmdIntro ( options, indentStr ) { (hasExports ? 'module.exports = ' : '') + `factory(${cjsDeps})`; var globalExport = - (hasExports ? `global.${options.name} = ` : '') + `factory(${globalDeps})`; + (hasExports && options.name ? `global.${options.name} = ` : '') + `factory(${globalDeps})`; var intro = @@ -31,4 +31,4 @@ export default function defaultUmdIntro ( options, indentStr ) { `; return intro.replace( /\t/g, indentStr ); -} \ No newline at end of file +} diff --git a/src/utils/umd/strictUmdIntro.js b/src/utils/umd/strictUmdIntro.js index 68af1c3..0c49516 100644 --- a/src/utils/umd/strictUmdIntro.js +++ b/src/utils/umd/strictUmdIntro.js @@ -13,7 +13,7 @@ export default function strictUmdIntro ( options, indentStr ) { '], ' : ''; var cjsDeps = ( hasExports ? [ 'exports' ] : [] ).concat( options.importPaths.map( req ) ).join( ', ' ); - var globalDeps = ( hasExports ? [ `(global.${options.name} = {})` ] : [] ) + var globalDeps = ( hasExports && options.name ? [ `(global.${options.name} = {})` ] : [] ) .concat( options.importNames.map( globalify ) ).join( ', ' ); var args = ( hasExports ? [ 'exports' ] : [] ).concat( options.importNames ).join( ', ' ); From 2349a2ac86a0ae48b0763c7be0112a47623ffc42 Mon Sep 17 00:00:00 2001 From: Jmeas Date: Sat, 14 Feb 2015 21:37:49 -0500 Subject: [PATCH 2/4] Add default UMD test creation. And also explode the test suite --- test/bundle/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/bundle/index.js b/test/bundle/index.js index e74d6d6..2c84327 100644 --- a/test/bundle/index.js +++ b/test/bundle/index.js @@ -74,6 +74,7 @@ module.exports = function () { { description: 'bundle.concat()', method: 'concat', outputdir: 'concat' }, { description: 'bundle.toAmd()', method: 'toAmd', outputdir: 'amdDefaults' }, { description: 'bundle.toUmd()', method: 'toUmd', outputdir: 'umdDefaults', options: { name: 'myModule' } }, + { description: 'bundle.toUmd()', method: 'toUmd', outputdir: 'umdDefaultsNameless' }, { description: 'bundle.toCjs()', method: 'toCjs', outputdir: 'cjsDefaults' }, { description: 'bundle.toAmd({ strict: true })', method: 'toAmd', outputdir: 'amd', options: { strict: true } }, { description: 'bundle.toUmd({ strict: true })', method: 'toUmd', outputdir: 'umd', options: { strict: true, name: 'myModule' } }, From 6f10e7d5a93db61feb171b2b1846f998b6b9ca8f Mon Sep 17 00:00:00 2001 From: Jmeas Date: Sat, 14 Feb 2015 21:45:18 -0500 Subject: [PATCH 3/4] Remove requireName. --- src/bundler/builders/defaultsMode/umd.js | 3 --- src/bundler/builders/strictMode/umd.js | 5 +---- test/bundle/index.js | 2 +- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/bundler/builders/defaultsMode/umd.js b/src/bundler/builders/defaultsMode/umd.js index 9ae232c..cb1fa6e 100644 --- a/src/bundler/builders/defaultsMode/umd.js +++ b/src/bundler/builders/defaultsMode/umd.js @@ -1,12 +1,9 @@ import packageResult from 'utils/packageResult'; import standaloneUmdIntro from 'utils/umd/standaloneUmdIntro'; import defaultUmdIntro from 'utils/umd/defaultUmdIntro'; -import requireName from 'utils/umd/requireName'; import { getId, getName } from 'utils/mappers'; export default function umd ( bundle, body, options ) { - requireName( options ); - var entry = bundle.entryModule; var hasImports = bundle.externalModules.length > 0; diff --git a/src/bundler/builders/strictMode/umd.js b/src/bundler/builders/strictMode/umd.js index 3d3e014..c9739fa 100644 --- a/src/bundler/builders/strictMode/umd.js +++ b/src/bundler/builders/strictMode/umd.js @@ -1,13 +1,10 @@ import standaloneUmdIntro from 'utils/umd/standaloneUmdIntro'; import strictUmdIntro from 'utils/umd/strictUmdIntro'; -import requireName from 'utils/umd/requireName'; import packageResult from 'utils/packageResult'; import { getId, getName } from 'utils/mappers'; import getExportBlock from './utils/getExportBlock'; export default function umd ( bundle, body, options ) { - requireName( options ); - var entry = bundle.entryModule; var hasImports = bundle.externalModules.length > 0; @@ -44,4 +41,4 @@ export default function umd ( bundle, body, options ) { function needsDefault ( externalModule ) { return externalModule.needsDefault; -} \ No newline at end of file +} diff --git a/test/bundle/index.js b/test/bundle/index.js index 2c84327..abba811 100644 --- a/test/bundle/index.js +++ b/test/bundle/index.js @@ -74,7 +74,7 @@ module.exports = function () { { description: 'bundle.concat()', method: 'concat', outputdir: 'concat' }, { description: 'bundle.toAmd()', method: 'toAmd', outputdir: 'amdDefaults' }, { description: 'bundle.toUmd()', method: 'toUmd', outputdir: 'umdDefaults', options: { name: 'myModule' } }, - { description: 'bundle.toUmd()', method: 'toUmd', outputdir: 'umdDefaultsNameless' }, + { description: 'bundle.toUmd()', method: 'toUmd', outputdir: 'umdDefaultsNameless', options: {} }, { description: 'bundle.toCjs()', method: 'toCjs', outputdir: 'cjsDefaults' }, { description: 'bundle.toAmd({ strict: true })', method: 'toAmd', outputdir: 'amd', options: { strict: true } }, { description: 'bundle.toUmd({ strict: true })', method: 'toUmd', outputdir: 'umd', options: { strict: true, name: 'myModule' } }, From 1b471866e1338bd445c876a7c35050c7d68f0377 Mon Sep 17 00:00:00 2001 From: Jmeas Date: Sat, 14 Feb 2015 21:47:04 -0500 Subject: [PATCH 4/4] Actually remove requireName. --- src/standalone/builders/defaultsMode/umd.js | 3 --- src/standalone/builders/strictMode/umd.js | 3 --- src/utils/umd/requireName.js | 9 --------- 3 files changed, 15 deletions(-) delete mode 100644 src/utils/umd/requireName.js diff --git a/src/standalone/builders/defaultsMode/umd.js b/src/standalone/builders/defaultsMode/umd.js index a554ae2..da27fd9 100644 --- a/src/standalone/builders/defaultsMode/umd.js +++ b/src/standalone/builders/defaultsMode/umd.js @@ -3,7 +3,6 @@ import packageResult from 'utils/packageResult'; import hasOwnProp from 'utils/hasOwnProp'; import standaloneUmdIntro from 'utils/umd/standaloneUmdIntro'; import defaultUmdIntro from 'utils/umd/defaultUmdIntro'; -import requireName from 'utils/umd/requireName'; export default function umd ( mod, body, options ) { var importNames = []; @@ -11,8 +10,6 @@ export default function umd ( mod, body, options ) { var seen = {}; var placeholders = 0; - requireName( options ); - var hasImports = mod.imports.length > 0; var hasExports = mod.exports.length > 0; diff --git a/src/standalone/builders/strictMode/umd.js b/src/standalone/builders/strictMode/umd.js index 3564714..a8d8396 100644 --- a/src/standalone/builders/strictMode/umd.js +++ b/src/standalone/builders/strictMode/umd.js @@ -1,13 +1,10 @@ import packageResult from 'utils/packageResult'; import standaloneUmdIntro from 'utils/umd/standaloneUmdIntro'; import strictUmdIntro from 'utils/umd/strictUmdIntro'; -import requireName from 'utils/umd/requireName'; import transformBody from './utils/transformBody'; import getImportSummary from './utils/getImportSummary'; export default function umd ( mod, body, options ) { - requireName( options ); - var [ importPaths, importNames ] = getImportSummary( mod ); var hasImports = mod.imports.length > 0; diff --git a/src/utils/umd/requireName.js b/src/utils/umd/requireName.js deleted file mode 100644 index fe1b19c..0000000 --- a/src/utils/umd/requireName.js +++ /dev/null @@ -1,9 +0,0 @@ -import EsperantoError from 'utils/EsperantoError'; - -export default function requireName ( options ) { - if ( !options.name ) { - throw new EsperantoError( 'You must supply a `name` option for UMD modules', { - code: 'MISSING_NAME' - }); - } -} \ No newline at end of file