From bf3cabd2bb83d5ab5278c047d3c24c1909662276 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 8 Feb 2021 06:55:46 +0800 Subject: [PATCH] Refactor: Use `fromPairs` instead of `Array#reduce` (#10262) * Refactor: Use `fromPairs` instead of `Array#reduce` * Restore unrelated change --- src/language-html/ast.js | 7 +++---- src/main/options.js | 25 ++++++++++++------------- src/main/support.js | 20 ++++++++++---------- 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/language-html/ast.js b/src/language-html/ast.js index 52b709ac6..1f57014ab 100644 --- a/src/language-html/ast.js +++ b/src/language-html/ast.js @@ -23,10 +23,9 @@ class Node { this[key] = cloneAndUpdateNodes(nodes, this); if (key === "attrs") { setNonEnumerableProperties(this, { - attrMap: this[key].reduce((reduced, attr) => { - reduced[attr.fullName] = attr.value; - return reduced; - }, Object.create(null)), + attrMap: fromPairs( + this[key].map((attr) => [attr.fullName, attr.value]) + ), }); } } diff --git a/src/main/options.js b/src/main/options.js index a12b5bcad..7ef963850 100644 --- a/src/main/options.js +++ b/src/main/options.js @@ -68,19 +68,18 @@ function normalize(options, opts = {}) { const plugin = getPlugin(rawOptions); rawOptions.printer = plugin.printers[rawOptions.astFormat]; - const pluginDefaults = supportOptions - .filter( - (optionInfo) => - optionInfo.pluginDefaults && - optionInfo.pluginDefaults[plugin.name] !== undefined - ) - .reduce( - (reduced, optionInfo) => - Object.assign(reduced, { - [optionInfo.name]: optionInfo.pluginDefaults[plugin.name], - }), - {} - ); + const pluginDefaults = fromPairs( + supportOptions + .filter( + (optionInfo) => + optionInfo.pluginDefaults && + optionInfo.pluginDefaults[plugin.name] !== undefined + ) + .map((optionInfo) => [ + optionInfo.name, + optionInfo.pluginDefaults[plugin.name], + ]) + ); const mixedDefaults = { ...defaults, ...pluginDefaults }; diff --git a/src/main/support.js b/src/main/support.js index a6aa0d83f..613403152 100644 --- a/src/main/support.js +++ b/src/main/support.js @@ -1,5 +1,6 @@ "use strict"; +const fromPairs = require("lodash/fromPairs"); const semver = { compare: require("semver/functions/compare"), lt: require("semver/functions/lt"), @@ -64,16 +65,15 @@ function getSupportInfo({ } } - const pluginDefaults = plugins - .filter( - (plugin) => - plugin.defaultOptions && - plugin.defaultOptions[option.name] !== undefined - ) - .reduce((reduced, plugin) => { - reduced[plugin.name] = plugin.defaultOptions[option.name]; - return reduced; - }, {}); + const pluginDefaults = fromPairs( + plugins + .filter( + (plugin) => + plugin.defaultOptions && + plugin.defaultOptions[option.name] !== undefined + ) + .map((plugin) => [plugin.name, plugin.defaultOptions[option.name]]) + ); return { ...option, pluginDefaults }; });