Skip to content

Commit

Permalink
fix(optimize-imports): append line break to optimized path (#73)
Browse files Browse the repository at this point in the history
  • Loading branch information
metonym authored Dec 9, 2024
1 parent 502995d commit 6279831
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
6 changes: 4 additions & 2 deletions src/preprocessors/optimize-imports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ function rewriteImport(

for (const specifier of node.specifiers) {
const fragment = map(specifier);
if (fragment) content += fragment;
if (fragment) {
content += fragment + (!fragment.endsWith('\n') ? '\n' : '');
}
}

if (content) s.overwrite(node.start, node.end, content);
if (content) s.overwrite(node.start, node.end, content.trimEnd());
}

export const optimizeImports: SveltePreprocessor<"script"> = () => {
Expand Down
23 changes: 12 additions & 11 deletions tests/optimize-imports.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ import { Airplane as Airplane2 } from "carbon-pictograms-svelte";
import Airplane3 from "carbon-pictograms-svelte/lib/Airplane.svelte";`,
}),
)
.toEqual(`import Accordion from "carbon-components-svelte/src/Accordion/Accordion.svelte";import AccordionItem from "carbon-components-svelte/src/Accordion/AccordionItem.svelte";
.toEqual(`import Accordion from "carbon-components-svelte/src/Accordion/Accordion.svelte";
import AccordionItem from "carbon-components-svelte/src/Accordion/AccordionItem.svelte";
import Accordion2 from "carbon-components-svelte/src/Accordion/Accordion.svelte";
import breakpoints from "carbon-components-svelte/src/Breakpoint/breakpoints.js";
Expand All @@ -62,17 +63,17 @@ import Airplane3 from "carbon-pictograms-svelte/lib/Airplane.svelte";`);
test("mixed imports should be handled correctly", () => {
expect(
preprocess({
content: `
import { Accordion, AccordionItem, breakpoints as bp } from "carbon-components-svelte";
import { Add, Download } from "carbon-icons-svelte";
import { Airplane, Analytics } from "carbon-pictograms-svelte";
`,
content: `import { Accordion, AccordionItem, breakpoints as bp } from "carbon-components-svelte";
import { Add, Download } from "carbon-icons-svelte";
import { Airplane, Analytics } from "carbon-pictograms-svelte";`,
}),
).toEqual(`
import Accordion from "carbon-components-svelte/src/Accordion/Accordion.svelte";import AccordionItem from "carbon-components-svelte/src/Accordion/AccordionItem.svelte";import bp from "carbon-components-svelte/src/Breakpoint/breakpoints.js";
import Add from "carbon-icons-svelte/lib/Add.svelte";import Download from "carbon-icons-svelte/lib/Download.svelte";
import Airplane from "carbon-pictograms-svelte/lib/Airplane.svelte";import Analytics from "carbon-pictograms-svelte/lib/Analytics.svelte";
`);
).toEqual(`import Accordion from "carbon-components-svelte/src/Accordion/Accordion.svelte";
import AccordionItem from "carbon-components-svelte/src/Accordion/AccordionItem.svelte";
import bp from "carbon-components-svelte/src/Breakpoint/breakpoints.js";
import Add from "carbon-icons-svelte/lib/Add.svelte";
import Download from "carbon-icons-svelte/lib/Download.svelte";
import Airplane from "carbon-pictograms-svelte/lib/Airplane.svelte";
import Analytics from "carbon-pictograms-svelte/lib/Analytics.svelte";`)
});

test("default imports should be preserved", () => {
Expand Down

0 comments on commit 6279831

Please sign in to comment.