From c44db783bf17c907dd46f53fdaa917ec74ffbded Mon Sep 17 00:00:00 2001 From: Johann-S Date: Wed, 25 Jul 2018 11:29:16 +0200 Subject: chore(update): bump to 4.1.3 --- build/build-plugins.js | 121 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 106 insertions(+), 15 deletions(-) (limited to 'build') diff --git a/build/build-plugins.js b/build/build-plugins.js index abcbc5e2f5..a5f95a9d15 100644 --- a/build/build-plugins.js +++ b/build/build-plugins.js @@ -26,6 +26,11 @@ const plugins = [ }) ] const bsPlugins = { + Data: path.resolve(__dirname, '../js/src/dom/data.js'), + EventHandler: path.resolve(__dirname, '../js/src/dom/eventHandler.js'), + Manipulator: path.resolve(__dirname, '../js/src/dom/manipulator.js'), + Polyfill: path.resolve(__dirname, '../js/src/dom/polyfill.js'), + SelectorEngine: path.resolve(__dirname, '../js/src/dom/selectorEngine.js'), Alert: path.resolve(__dirname, '../js/src/alert.js'), Button: path.resolve(__dirname, '../js/src/button.js'), Carousel: path.resolve(__dirname, '../js/src/carousel.js'), @@ -41,26 +46,112 @@ const bsPlugins = { } const rootPath = TEST ? '../js/coverage/dist/' : '../js/dist/' -function build(plugin) { - console.log(`Building ${plugin} plugin...`) +const defaultPluginConfig = { + external: [ + bsPlugins.Data, + bsPlugins.EventHandler, + bsPlugins.SelectorEngine, + bsPlugins.Util + ], + globals: { + [bsPlugins.Data]: 'Data', + [bsPlugins.EventHandler]: 'EventHandler', + [bsPlugins.SelectorEngine]: 'SelectorEngine', + [bsPlugins.Util]: 'Util' + } +} + +function getConfigByPluginKey(pluginKey) { + if ( + pluginKey === 'Data' || + pluginKey === 'Manipulator' || + pluginKey === 'Util' + ) { + return { + external: [], + globals: {} + } + } + + if (pluginKey === 'EventHandler' || pluginKey === 'SelectorEngine') { + return { + external: [ + bsPlugins.Polyfill, + bsPlugins.Util + ], + globals: { + [bsPlugins.Polyfill]: 'Polyfill', + [bsPlugins.Util]: 'Util' + } + } + } + + if (pluginKey === 'Polyfill') { + return { + external: [bsPlugins.Util], + globals: { + [bsPlugins.Util]: 'Util' + } + } + } + + if (pluginKey === 'Alert' || pluginKey === 'Tab') { + return defaultPluginConfig + } - const external = ['jquery', 'popper.js'] - const globals = { - jquery: 'jQuery', // Ensure we use jQuery which is always available even in noConflict mode - 'popper.js': 'Popper' + if ( + pluginKey === 'Button' || + pluginKey === 'Carousel' || + pluginKey === 'Collapse' || + pluginKey === 'Modal' || + pluginKey === 'ScrollSpy' + ) { + const config = Object.assign(defaultPluginConfig) + config.external.push(bsPlugins.Manipulator) + config.globals[bsPlugins.Manipulator] = 'Manipulator' + return config } - // Do not bundle Util in plugins - if (plugin !== 'Util') { - external.push(bsPlugins.Util) - globals[bsPlugins.Util] = 'Util' + if (pluginKey === 'Dropdown' || pluginKey === 'Tooltip') { + const config = Object.assign(defaultPluginConfig) + config.external.push(bsPlugins.Manipulator, 'popper.js') + config.globals[bsPlugins.Manipulator] = 'Manipulator' + config.globals['popper.js'] = 'Popper' + return config } - // Do not bundle Tooltip in Popover - if (plugin === 'Popover') { - external.push(bsPlugins.Tooltip) - globals[bsPlugins.Tooltip] = 'Tooltip' + if (pluginKey === 'Popover') { + return { + external: [ + bsPlugins.Data, + bsPlugins.SelectorEngine, + bsPlugins.Tooltip, + bsPlugins.Util + ], + globals: { + [bsPlugins.Data]: 'Data', + [bsPlugins.SelectorEngine]: 'SelectorEngine', + [bsPlugins.Tooltip]: 'Tooltip', + [bsPlugins.Util]: 'Util' + } + } } +} + +function build(plugin) { + console.log(`Building ${plugin} plugin...`) + + const config = getConfigByPluginKey(plugin) + const external = config.external + const globals = config.globals + + const pluginPath = [ + 'Data', + 'EventHandler', + 'Manipulator', + 'Polyfill', + 'SelectorEngine' + ].includes(plugin) ? `${rootPath}/dom/` : rootPath const pluginFilename = `${plugin.toLowerCase()}.js` @@ -75,7 +166,7 @@ function build(plugin) { name: plugin, sourcemap: true, globals, - file: path.resolve(__dirname, `${rootPath}${pluginFilename}`) + file: path.resolve(__dirname, `${pluginPath}${pluginFilename}`) }) .then(() => console.log(`Building ${plugin} plugin... Done!`)) .catch((err) => console.error(`${plugin}: ${err}`)) -- cgit v1.2.3