From bd08c519b83b00d8933702874a930b3246ca5a1f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Jun 2021 23:37:32 +0200 Subject: [PATCH] codemods: preserve quote style Signed-off-by: Patrik Oldsberg --- packages/codemods/transforms/core-imports.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/codemods/transforms/core-imports.js b/packages/codemods/transforms/core-imports.js index 0174eebf91..56c7b39f17 100644 --- a/packages/codemods/transforms/core-imports.js +++ b/packages/codemods/transforms/core-imports.js @@ -58,6 +58,14 @@ module.exports = (file, /** @type {import('jscodeshift').API} */ api) => { }, }); + if (imports.size === 0) { + return undefined; + } + + // Check what style we're using for the imports, ' or " + const useSingleQuote = + root.find(j.ImportDeclaration).nodes()[0]?.source.extra.raw[0] === "'"; + // Then loop through all the import statement and collects each imported symbol const importedSymbols = imports.nodes().flatMap(node => (node.specifiers || []).flatMap(specifier => ({ @@ -88,5 +96,7 @@ module.exports = (file, /** @type {import('jscodeshift').API} */ api) => { // Restore the initial file comment in case it got removed root.find(j.Program).get('body', 0).node.comments = firstNodeComment; - return root.toSource(); + return root.toSource({ + quote: useSingleQuote ? 'single' : 'double', + }); };