testGroupImports
A scratch file's imports read as written by hand: one statement per module, type-only names apart, wrapped when long.
import { groupImports } from "#codebase/tcmts/loader"; import assert from "node:assert/strict"; export const testGroupImports = () => { assert.deepEqual( groupImports([`import { a } from "#codebase/lib";`, `import fs from "node:fs";`, `import type { T } from "#codebase/lib";`, `import { b as c } from "#codebase/lib";`]), [`import { a, b as c } from "#codebase/lib";`, `import type { T } from "#codebase/lib";`, `import fs from "node:fs";`], ); const many = Array.from({ length: 30 }, (_, i) => `import { name${i} } from "#codebase/a";`); const [wrapped] = groupImports(many); assert.match(wrapped!, /^import \{\n name0, name1, (?:[^\n]*,\n )+[^\n]*,\n\} from "#codebase\/a";$/); assert.ok(wrapped!.split("\n").every((l) => l.length <= 120)); }