From 4a8004d8d538498a31bdadfa645e66f6ccae53a5 Mon Sep 17 00:00:00 2001 From: Nicolas Coden Date: Mon, 26 Feb 2018 07:25:27 +0100 Subject: [PATCH] chore: prevent `core.utils` and `core.plugin` duplication across plugin entries Export all `foundation.core.*` files in the `foundation.core` entry to prevent duplication across plugin entries without adding new entries. --- gulp/tasks/javascript.js | 33 +++++++++++++++------------ js/entries/plugins/foundation.core.js | 24 ++++++++++++------- 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/gulp/tasks/javascript.js b/gulp/tasks/javascript.js index 3593daa80..aad073bd8 100644 --- a/gulp/tasks/javascript.js +++ b/gulp/tasks/javascript.js @@ -40,21 +40,24 @@ var pluginsAsExternals = Object.assign( 'jquery': 'jQuery', }), umdExternals({ - './foundation.core': 'foundation.core', - './foundation.util.imageLoader': 'foundation.util.imageLoader', - './foundation.util.keyboard': 'foundation.util.keyboard', - './foundation.util.mediaQuery': 'foundation.util.mediaQuery', - './foundation.util.motion': 'foundation.util.motion', - './foundation.util.nest': 'foundation.util.nest', - './foundation.util.timer': 'foundation.util.timer', - './foundation.util.touch': 'foundation.util.touch', - './foundation.util.box': 'foundation.util.box', - './foundation.dropdownMenu': 'foundation.dropdownMenu', - './foundation.drilldown': 'foundation.drilldown', - './foundation.accordionMenu': 'foundation.accordionMenu', - './foundation.accordion': 'foundation.accordion', - './foundation.tabs': 'foundation.tabs', - './foundation.smoothScroll': 'foundation.smoothScroll', + // Import path | Exported file + './foundation.core': 'foundation.core', + './foundation.core.utils': 'foundation.core', + './foundation.core.plugin': 'foundation.core', + './foundation.util.imageLoader': 'foundation.util.imageLoader', + './foundation.util.keyboard': 'foundation.util.keyboard', + './foundation.util.mediaQuery': 'foundation.util.mediaQuery', + './foundation.util.motion': 'foundation.util.motion', + './foundation.util.nest': 'foundation.util.nest', + './foundation.util.timer': 'foundation.util.timer', + './foundation.util.touch': 'foundation.util.touch', + './foundation.util.box': 'foundation.util.box', + './foundation.dropdownMenu': 'foundation.dropdownMenu', + './foundation.drilldown': 'foundation.drilldown', + './foundation.accordionMenu': 'foundation.accordionMenu', + './foundation.accordion': 'foundation.accordion', + './foundation.tabs': 'foundation.tabs', + './foundation.smoothScroll': 'foundation.smoothScroll', }, { namespace: CONFIG.JS_BUNDLE_NAMESPACE }) ); diff --git a/js/entries/plugins/foundation.core.js b/js/entries/plugins/foundation.core.js index 23d806b3f..7c1d639a4 100644 --- a/js/entries/plugins/foundation.core.js +++ b/js/entries/plugins/foundation.core.js @@ -1,23 +1,31 @@ +// --- Foundation Core API --- +// Initialize Foundation and add some utilities to its public API for backward compatibility. +// Please note that every utility do not have to be added to the core API. import $ from 'jquery'; - import { Foundation } from '../../foundation.core'; +import { Plugin } from '../../foundation.core.plugin'; +import { rtl, GetYoDigits, transitionend, RegExpEscape } from '../../foundation.core.utils'; + Foundation.addToJquery($); +// Every plugin depends on plugin now, we can include that on the core for the +// script inclusion path. +Foundation.Plugin = Plugin; + // These are now separated out, but historically were a part of this module, // and since this is here for backwards compatibility we include them in // this entry. -import { rtl, GetYoDigits, transitionend, RegExpEscape } from '../../foundation.core.utils'; Foundation.rtl = rtl; Foundation.GetYoDigits = GetYoDigits; Foundation.transitionend = transitionend; Foundation.RegExpEscape = RegExpEscape; -// Every plugin depends on plugin now, we can include that on the core for the -// script inclusion path. -import { Plugin } from '../../foundation.core.plugin'; -Foundation.Plugin = Plugin; - - window.Foundation = Foundation; +// --- Foundation Core exports --- +// Export "Plugin" and all core utilities, since the `foundation.core` entry plays the role of +// all core source files. + export { Foundation }; +export * from '../../foundation.core.plugin'; +export * from '../../foundation.core.utils'; -- 2.47.2