From 751c1349649fa9a8c60eaafd168f0b798dc2b58f Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Sun, 19 Jan 2020 06:55:37 +0800 Subject: [PATCH] Fix `prefer-object-spread` in `src/language-js` (part 1) (#7358) --- src/language-js/embed.js | 6 ++---- src/language-js/parser-angular.js | 7 ++----- src/language-js/parser-flow.js | 4 ++-- src/language-js/parser-typescript.js | 4 ++-- src/language-js/pragma.js | 2 +- src/language-js/preprocess.js | 5 +++-- 6 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/language-js/embed.js b/src/language-js/embed.js index 465360676..5e3d553bd 100644 --- a/src/language-js/embed.js +++ b/src/language-js/embed.js @@ -222,7 +222,7 @@ function escapeTemplateCharacters(doc, raw) { } }); - return Object.assign({}, currentDoc, { parts }); + return { ...currentDoc, parts }; }); } @@ -305,9 +305,7 @@ function replacePlaceholders(quasisDoc, expressionDocs) { .concat(["${", expression, "}" + suffix]) .concat(rest); } - return Object.assign({}, doc, { - parts - }); + return { ...doc, parts }; }); return expressions.length === replaceCounter ? newDoc : null; diff --git a/src/language-js/parser-angular.js b/src/language-js/parser-angular.js index 1055ab50e..0201a2f11 100644 --- a/src/language-js/parser-angular.js +++ b/src/language-js/parser-angular.js @@ -10,14 +10,11 @@ function createParser(_parse) { type: "NGRoot", node: options.parser === "__ng_action" && node.type !== "NGChainedExpression" - ? Object.assign({}, node, { - type: "NGChainedExpression", - expressions: [node] - }) + ? { ...node, type: "NGChainedExpression", expressions: [node] } : node }; }; - return Object.assign({ astFormat: "estree", parse }, locFns); + return { astFormat: "estree", parse, ...locFns }; } module.exports = { diff --git a/src/language-js/parser-flow.js b/src/language-js/parser-flow.js index 48a2dbc1d..f973d9191 100644 --- a/src/language-js/parser-flow.js +++ b/src/language-js/parser-flow.js @@ -28,12 +28,12 @@ function parse(text, parsers, opts) { } includeShebang(text, ast); - return postprocess(ast, Object.assign({}, opts, { originalText: text })); + return postprocess(ast, { ...opts, originalText: text }); } // Export as a plugin so we can reuse the same bundle for UMD loading module.exports = { parsers: { - flow: Object.assign({ parse, astFormat: "estree", hasPragma }, locFns) + flow: { parse, astFormat: "estree", hasPragma, ...locFns } } }; diff --git a/src/language-js/parser-typescript.js b/src/language-js/parser-typescript.js index d50c5d771..fc3fa4f0b 100644 --- a/src/language-js/parser-typescript.js +++ b/src/language-js/parser-typescript.js @@ -31,7 +31,7 @@ function parse(text, parsers, opts) { } includeShebang(text, ast); - return postprocess(ast, Object.assign({}, opts, { originalText: text })); + return postprocess(ast, { ...opts, originalText: text }); } function tryParseTypeScript(text, jsx) { @@ -59,7 +59,7 @@ function isProbablyJsx(text) { ).test(text); } -const parser = Object.assign({ parse, astFormat: "estree", hasPragma }, locFns); +const parser = { parse, astFormat: "estree", hasPragma, ...locFns }; // Export as a plugin so we can reuse the same bundle for UMD loading module.exports = { diff --git a/src/language-js/pragma.js b/src/language-js/pragma.js index ca67d5cc9..c2a2786a8 100644 --- a/src/language-js/pragma.js +++ b/src/language-js/pragma.js @@ -9,7 +9,7 @@ function hasPragma(text) { function insertPragma(text) { const parsedDocblock = docblock.parseWithComments(docblock.extract(text)); - const pragmas = Object.assign({ format: "" }, parsedDocblock.pragmas); + const pragmas = { format: "", ...parsedDocblock.pragmas }; const newDocblock = docblock .print({ pragmas, diff --git a/src/language-js/preprocess.js b/src/language-js/preprocess.js index fc39070b8..9a60f6e11 100644 --- a/src/language-js/preprocess.js +++ b/src/language-js/preprocess.js @@ -7,12 +7,13 @@ function preprocess(ast, options) { case "json-stringify": case "__js_expression": case "__vue_expression": - return Object.assign({}, ast, { + return { + ...ast, type: options.parser.startsWith("__") ? "JsExpressionRoot" : "JsonRoot", node: ast, comments: [], rootMarker: options.rootMarker - }); + }; default: return ast; }