From 6d7bc54d222709275b0eb73bd6b974509332247a Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sat, 2 May 2020 16:56:23 +0300 Subject: [PATCH] Switch to `Set#has()` --- .eslintrc.json | 1 - build/build-plugins.js | 12 ++++++------ js/src/dom/event-handler.js | 8 ++++---- js/src/tooltip.js | 4 ++-- js/src/util/sanitizer.js | 6 +++--- 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index a4a22e5cd2..b53ecb1a85 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -55,7 +55,6 @@ "unicorn/prefer-node-remove": "off", "unicorn/prefer-optional-catch-binding": "off", "unicorn/prefer-query-selector": "off", - "unicorn/prefer-set-has": "off", "unicorn/prevent-abbreviations": "off" } } diff --git a/build/build-plugins.js b/build/build-plugins.js index 6d9cdb3324..1f44a3b856 100644 --- a/build/build-plugins.js +++ b/build/build-plugins.js @@ -125,17 +125,17 @@ const getConfigByPluginKey = pluginKey => { } } -const utilObjects = [ +const utilObjects = new Set([ 'Util', 'Sanitizer' -] +]) -const domObjects = [ +const domObjects = new Set([ 'Data', 'EventHandler', 'Manipulator', 'SelectorEngine' -] +]) const build = async plugin => { console.log(`Building ${plugin} plugin...`) @@ -144,11 +144,11 @@ const build = async plugin => { const pluginFilename = path.basename(bsPlugins[plugin]) let pluginPath = rootPath - if (utilObjects.includes(plugin)) { + if (utilObjects.has(plugin)) { pluginPath = `${rootPath}/util/` } - if (domObjects.includes(plugin)) { + if (domObjects.has(plugin)) { pluginPath = `${rootPath}/dom/` } diff --git a/js/src/dom/event-handler.js b/js/src/dom/event-handler.js index 64a061ae69..439a3f1881 100644 --- a/js/src/dom/event-handler.js +++ b/js/src/dom/event-handler.js @@ -22,7 +22,7 @@ const customEvents = { mouseenter: 'mouseover', mouseleave: 'mouseout' } -const nativeEvents = [ +const nativeEvents = new Set([ 'click', 'dblclick', 'mouseup', @@ -69,7 +69,7 @@ const nativeEvents = [ 'error', 'abort', 'scroll' -] +]) /** * ------------------------------------------------------------------------ @@ -151,7 +151,7 @@ function normalizeParams(originalTypeEvent, handler, delegationFn) { typeEvent = custom } - const isNative = nativeEvents.includes(typeEvent) + const isNative = nativeEvents.has(typeEvent) if (!isNative) { typeEvent = originalTypeEvent @@ -273,7 +273,7 @@ const EventHandler = { const $ = getjQuery() const typeEvent = event.replace(stripNameRegex, '') const inNamespace = event !== typeEvent - const isNative = nativeEvents.includes(typeEvent) + const isNative = nativeEvents.has(typeEvent) let jQueryEvent let bubbles = true diff --git a/js/src/tooltip.js b/js/src/tooltip.js index e4616f1f19..7b115a69be 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -39,7 +39,7 @@ const DATA_KEY = 'bs.tooltip' const EVENT_KEY = `.${DATA_KEY}` const CLASS_PREFIX = 'bs-tooltip' const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') -const DISALLOWED_ATTRIBUTES = ['sanitize', 'allowList', 'sanitizeFn'] +const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']) const DefaultType = { animation: 'boolean', @@ -679,7 +679,7 @@ class Tooltip { const dataAttributes = Manipulator.getDataAttributes(this.element) Object.keys(dataAttributes).forEach(dataAttr => { - if (DISALLOWED_ATTRIBUTES.includes(dataAttr)) { + if (DISALLOWED_ATTRIBUTES.has(dataAttr)) { delete dataAttributes[dataAttr] } }) diff --git a/js/src/util/sanitizer.js b/js/src/util/sanitizer.js index 27c8dcfb6a..68469285ab 100644 --- a/js/src/util/sanitizer.js +++ b/js/src/util/sanitizer.js @@ -5,7 +5,7 @@ * -------------------------------------------------------------------------- */ -const uriAttrs = [ +const uriAttrs = new Set([ 'background', 'cite', 'href', @@ -14,7 +14,7 @@ const uriAttrs = [ 'poster', 'src', 'xlink:href' -] +]) const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i @@ -36,7 +36,7 @@ const allowedAttribute = (attr, allowedAttributeList) => { const attrName = attr.nodeName.toLowerCase() if (allowedAttributeList.includes(attrName)) { - if (uriAttrs.includes(attrName)) { + if (uriAttrs.has(attrName)) { return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)) }