diff --git a/package-lock.json b/package-lock.json index 32cbdde..06bfae5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@highcharts/highcharts-assembler", - "version": "1.5.1", + "version": "1.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@highcharts/highcharts-assembler", - "version": "1.5.1", + "version": "1.5.2", "license": "ISC", "devDependencies": { "chai": "^4.3.7", diff --git a/package.json b/package.json index 967809f..67b8954 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@highcharts/highcharts-assembler", - "version": "1.5.1", + "version": "1.5.2", "description": "The official bundler for Highcharts JS.", "main": "index.js", "directories": { diff --git a/src/build.js b/src/build.js index a22ea54..e8dd9e3 100644 --- a/src/build.js +++ b/src/build.js @@ -96,6 +96,7 @@ const getIndividualOptions = ({ exclude, files, fileOptions = {}, + namespace, output, palette, product, @@ -117,6 +118,7 @@ const getIndividualOptions = ({ date, entry: resolve(join(base, filename)), exclude, + namespace, product, umd, version @@ -136,7 +138,7 @@ const getIndividualOptions = ({ } const getESModuleOptions = ( - { base, date, output, files, palette, product, types, version } + { base, date, output, files, namespace, palette, product, types, version } ) => { const process = getProcess(palette) return files.reduce((arr, filename, i) => { @@ -145,6 +147,7 @@ const getESModuleOptions = ( date, process: process[type], entry, + namespace, outputPath: resolve(join( output, (type === 'classic' ? '' : 'js/'), diff --git a/src/dependencies.js b/src/dependencies.js index e877745..fcb91a4 100644 --- a/src/dependencies.js +++ b/src/dependencies.js @@ -309,12 +309,11 @@ const getOrderedDependencies = (file, parent, dependencies) => { } const applyUMD = (content, path) => templateUMDStandalone - .replace(/@name/g, safeReplace('Highcharts')) .replace(/@path/g, safeReplace(path)) .replace('@content', safeReplace(indent(content, IND))) -const applyModule = content => - templateUMDModule.replace('@content', safeReplace(indent(content, IND))) +const applyModule = content => templateUMDModule + .replace('@content', safeReplace(indent(content, IND))) /** * Adds a license header to the top of a distribution file. @@ -536,17 +535,19 @@ const moduleTransform = (content, options) => { * @returns {string} Content of file after transformation */ const fileTransform = (content, options) => { - const { entry, moduleName, umd, printPath, requires } = options + const { entry, moduleName, namespace, printPath, requires, umd } = options let result = umd ? applyUMD(content, printPath) : applyModule(content) result = addLicenseHeader(result, { entry }) return result + .replace('@moduleEvent', `'${namespace}ModuleLoaded'`) .replace('@moduleName', moduleName ? `'${moduleName}', ` : '') - .replace('@AMDParams', requires.length ? 'Highcharts' : '') + .replace('@AMDParams', requires.length ? namespace : '') .replace('@AMDFactory', requires.length - ? '\n' + indent('factory(Highcharts);\nfactory.Highcharts = Highcharts;', IND.repeat(3)) + ? '\n' + indent(`factory(${namespace});\nfactory.${namespace} = ${namespace};`, IND.repeat(3)) : '' ) .replace(/@dependencies/g, safeReplace(requires.join('\', \''))) + .replace(/@moduleSpace/g, namespace) } const compileFile = options => { @@ -561,8 +562,9 @@ const compileFile = options => { const { requires = getRequires(contentEntry), exclude = getExcludedFilenames(requires, base), - umd = requires.length === 0, - moduleName = getModuleName(contentEntry) + moduleName = getModuleName(contentEntry), + namespace = 'Highcharts', + umd = requires.length === 0 } = options // Transform modules @@ -586,7 +588,7 @@ const compileFile = options => { const printPath = relative(join(base, '../'), entry).split('\\').join('/') return fileTransform( modules, - { entry, moduleName, umd, printPath, requires } + { entry, moduleName, namespace, printPath, requires, umd } ) } diff --git a/src/templates/umd-module.txt b/src/templates/umd-module.txt index 76d061a..ac2083a 100644 --- a/src/templates/umd-module.txt +++ b/src/templates/umd-module.txt @@ -7,22 +7,20 @@ return factory; }); } else { - factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined); + factory(typeof @moduleSpace !== 'undefined' ? @moduleSpace : undefined); } -}(function (Highcharts) { +}(function (@moduleSpace) { 'use strict'; - var _modules = Highcharts ? Highcharts._modules : {}; + var _modules = @moduleSpace ? @moduleSpace._modules : {}; function _registerModule(obj, path, args, fn) { if (!obj.hasOwnProperty(path)) { obj[path] = fn.apply(null, args); if (typeof CustomEvent === 'function') { - window.dispatchEvent( - new CustomEvent( - 'HighchartsModuleLoaded', - { detail: { path: path, module: obj[path] } - }) - ); + window.dispatchEvent(new CustomEvent( + @moduleEvent, + { detail: { path: path, module: obj[path] } } + )); } } } diff --git a/src/templates/umd-standalone.txt b/src/templates/umd-standalone.txt index 5006dba..fc05e84 100644 --- a/src/templates/umd-standalone.txt +++ b/src/templates/umd-standalone.txt @@ -9,10 +9,10 @@ return factory(root); }); } else { - if (root.@name) { - root.@name.error(16, true); + if (root.@moduleSpace) { + root.@moduleSpace.error(16, true); } - root.@name = factory(root); + root.@moduleSpace = factory(root); } }(typeof window !== 'undefined' ? window : this, function (window) { 'use strict'; @@ -22,12 +22,10 @@ obj[path] = fn.apply(null, args); if (typeof CustomEvent === 'function') { - window.dispatchEvent( - new CustomEvent( - 'HighchartsModuleLoaded', - { detail: { path: path, module: obj[path] } - }) - ); + window.dispatchEvent(new CustomEvent( + @moduleEvent, + { detail: { path: path, module: obj[path] } } + )); } } }