diff --git a/.changeset/config.json b/.changeset/config.json index 9798fc2..9f56165 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,14 +1,14 @@ { - "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", - "access": "public", - "baseBranch": "main", - "changelog": [ - "@zazen/changesets-changelog", - { "repo": "stormwarning/eslint-plugin-import-sorting" } - ], - "commit": false, - "fixed": [], - "ignore": [], - "linked": [], - "updateInternalDependencies": "patch" + "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", + "access": "public", + "baseBranch": "main", + "changelog": [ + "@zazen/changesets-changelog", + { "repo": "stormwarning/eslint-plugin-import-sorting" } + ], + "commit": false, + "fixed": [], + "ignore": [], + "linked": [], + "updateInternalDependencies": "patch" } diff --git a/.editorconfig b/.editorconfig index 226f477..0414260 100644 --- a/.editorconfig +++ b/.editorconfig @@ -4,14 +4,9 @@ root = true [*] charset = utf-8 end_of_line = lf -indent_size = 4 indent_style = tab insert_final_newline = true trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false - -[*.{json,yml,yaml}] -indent_size = 2 -indent_style = space diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 9a13426..62711a8 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -36,10 +36,7 @@ const config = { /** Disabled for now pending refactor. */ 'unicorn/no-array-reduce': 'off', - 'unicorn/no-unnecessary-polyfills': [ - 'error', - { targets: 'node current' }, - ], + 'unicorn/no-unnecessary-polyfills': ['error', { targets: 'node current' }], 'etc/no-assign-mutated-array': 'off', 'etc/prefer-less-than': 'off', diff --git a/package-lock.json b/package-lock.json index 49a055a..88a7be1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "eslint-plugin-import-sorting", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "eslint-plugin-import-sorting", - "version": "2.0.0", + "version": "2.1.0", "dependencies": { "@typescript-eslint/utils": "7.18.0", "object.groupby": "1.0.1" @@ -17,7 +17,8 @@ "@types/node": "20.10.4", "@typescript-eslint/rule-tester": "7.18.0", "@zazen/changesets-changelog": "2.0.3", - "@zazen/eslint-config": "6.8.0", + "@zazen/eslint-config": "6.9.0", + "@zazen/prettier-config": "1.1.1", "c8": "8.0.1", "dedent": "1.5.3", "eslint": "8.57.1", @@ -1174,6 +1175,19 @@ "typescript": "^3 || ^4 || ^5" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@pkgr/utils": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", @@ -1431,10 +1445,11 @@ ] }, "node_modules/@rushstack/eslint-patch": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.0.tgz", - "integrity": "sha512-Jh4t/593gxs0lJZ/z3NnasKlplXT2f+4y/LZYuaKZW5KAaiVFL/fThhs+17EbUd53jUVJ0QudYCBGbN/psvaqg==", - "dev": true + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true, + "license": "MIT" }, "node_modules/@rushstack/node-core-library": { "version": "5.5.1", @@ -2535,13 +2550,13 @@ } }, "node_modules/@zazen/eslint-config": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@zazen/eslint-config/-/eslint-config-6.8.0.tgz", - "integrity": "sha512-bJ398ZElSYayF24tYq1wQTt4598wC+kxMBVoBY6aQFxta0GpI/Ml7Eza+XbP0GjPhC1hyVWpyl9gFJ0aw/OuKw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@zazen/eslint-config/-/eslint-config-6.9.0.tgz", + "integrity": "sha512-kfw9KQ7YSb9+GHAYPqe7BooU6zOJzcAryatc2u3O7AzfXjhL6n8/IPwZpqZmGx4hzXdwHwV+Vvwd2KHDD1G0vw==", "dev": true, "license": "ISC", "dependencies": { - "@rushstack/eslint-patch": "1.7.0", + "@rushstack/eslint-patch": "1.10.4", "@typescript-eslint/eslint-plugin": "6.21.0", "@typescript-eslint/parser": "6.21.0", "eslint-config-prettier": "9.1.0", @@ -2549,7 +2564,7 @@ "eslint-config-xo-typescript": "1.0.1", "eslint-plugin-etc": "2.0.3", "eslint-plugin-import": "2.29.1", - "eslint-plugin-import-sorting": "1.1.0", + "eslint-plugin-import-sorting": "2.1.0", "eslint-plugin-n": "16.6.2", "eslint-plugin-prefer-let": "3.0.1", "eslint-plugin-promise": "6.1.1", @@ -2611,6 +2626,130 @@ "eslint": ">=8.56.0" } }, + "node_modules/@zazen/prettier-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@zazen/prettier-config/-/prettier-config-1.1.1.tgz", + "integrity": "sha512-IH7ZczilxMrehYN+g2JpIfEjsMTpytZ/Nsa+QlqLuXqvHpMj7oljtym5v6zqWaidyDOfxRXNUGy0zioe7ZjZmw==", + "dev": true, + "license": "ISC", + "dependencies": { + "prettier-plugin-packagejson": "2.4.10" + }, + "peerDependencies": { + "prettier": ">=3" + } + }, + "node_modules/@zazen/prettier-config/node_modules/detect-indent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.1.tgz", + "integrity": "sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/@zazen/prettier-config/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazen/prettier-config/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazen/prettier-config/node_modules/prettier-plugin-packagejson": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.4.10.tgz", + "integrity": "sha512-qFzOfQDHi1tzvVJRuZ2jh1j6IFV5MURh5m5WDt+qfEMOf4SSL5RpwSysiX8u0W1PJYsM0vKJGNULt43wwteKiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sort-package-json": "2.7.0", + "synckit": "0.9.0" + }, + "peerDependencies": { + "prettier": ">= 1.16.0" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, + "node_modules/@zazen/prettier-config/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazen/prettier-config/node_modules/sort-package-json": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-2.7.0.tgz", + "integrity": "sha512-6AayF8bp6L+WROgpbhTMUtB9JSFmpGHjmW7DyaNPS1HwlTw2oSVlUUtlkHSEZmg5o89F3zvLBZNvMeZ1T4fjQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-indent": "^7.0.1", + "detect-newline": "^4.0.0", + "get-stdin": "^9.0.0", + "git-hooks-list": "^3.0.0", + "globby": "^13.1.2", + "is-plain-obj": "^4.1.0", + "sort-object-keys": "^1.1.3" + }, + "bin": { + "sort-package-json": "cli.js" + } + }, + "node_modules/@zazen/prettier-config/node_modules/synckit": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz", + "integrity": "sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/acorn": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", @@ -4518,11 +4657,12 @@ } }, "node_modules/eslint-plugin-import-sorting": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import-sorting/-/eslint-plugin-import-sorting-1.1.0.tgz", - "integrity": "sha512-4qGrkAU8/YRXMaegYHLzZpy9rcFK0UX4nQglHGkecEBzsfyWNBIfoS1R67jJylL1buQrH8c2iHkZXgWhNsi+Rw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-sorting/-/eslint-plugin-import-sorting-2.1.0.tgz", + "integrity": "sha512-SW/mNjyulFLAvIwDhD4xAj3qMs0MnBcspUcdKsLSthohQogSnWCiDwr4xU4y5CEyTMmXOMFQibHKhpnIb3Pfcw==", "dev": true, "dependencies": { + "@typescript-eslint/utils": "7.18.0", "object.groupby": "1.0.1" }, "engines": { diff --git a/package.json b/package.json index c845b91..8074a11 100644 --- a/package.json +++ b/package.json @@ -1,96 +1,80 @@ { - "name": "eslint-plugin-import-sorting", - "version": "2.1.0", - "description": "ESLint plugin to group and sort imports by module, à la Python isort", - "keywords": [ - "eslint", - "eslint-plugin", - "eslintplugin", - "import", - "isort", - "order", - "python", - "sort" - ], - "repository": "stormwarning/eslint-plugin-import-sorting", - "author": "Jeff (https://tidaltheory.io)", - "type": "module", - "exports": { - ".": { - "require": "./dist/index.cjs", - "import": "./dist/index.js", - "types": "./dist/index.d.ts" - }, - "./package.json": "./package.json" - }, - "main": "dist/index.cjs", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "docs", - "CHANGELOG.md", - "LICENSE.txt", - "README.md" - ], - "scripts": { - "build": "vite build", - "changeset": "changeset add", - "prepare": "husky install", - "release": "npm run build && changeset publish", - "test": "vitest run", - "update:eslint-docs": "eslint-doc-generator" - }, - "lint-staged": { - "*.{js,cjs,mjs,ts}": [ - "eslint --fix", - "prettier --write" - ], - "package.json": "prettier --write" - }, - "prettier": { - "plugins": [ - "prettier-plugin-packagejson" - ], - "semi": false, - "singleQuote": true, - "overrides": [ - { - "files": [ - "*.ts", - "*.tsx" - ], - "options": { - "printWidth": 100 - } - } - ] - }, - "dependencies": { - "@typescript-eslint/utils": "7.18.0", - "object.groupby": "1.0.1" - }, - "devDependencies": { - "@changesets/cli": "2.26.2", - "@types/eslint": "8.44.8", - "@types/node": "20.10.4", - "@typescript-eslint/rule-tester": "7.18.0", - "@zazen/changesets-changelog": "2.0.3", - "@zazen/eslint-config": "6.8.0", - "c8": "8.0.1", - "dedent": "1.5.3", - "eslint": "8.57.1", - "eslint-doc-generator": "1.6.1", - "eslint-plugin-eslint-plugin": "5.1.1", - "husky": "8.0.3", - "lint-staged": "15.1.0", - "prettier": "3.1.0", - "prettier-plugin-packagejson": "2.4.6", - "typescript": "5.2.2", - "vite-plugin-dts": "4.0.3", - "vitest": "2.0.5" - }, - "engines": { - "node": ">=16.17.0 || >=18.6.0" - } + "name": "eslint-plugin-import-sorting", + "version": "2.1.0", + "description": "ESLint plugin to group and sort imports by module, à la Python isort", + "keywords": [ + "eslint", + "eslint-plugin", + "eslintplugin", + "import", + "isort", + "order", + "python", + "sort" + ], + "repository": "stormwarning/eslint-plugin-import-sorting", + "author": "Jeff (https://tidaltheory.io)", + "type": "module", + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./package.json": "./package.json" + }, + "main": "dist/index.cjs", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist", + "docs", + "CHANGELOG.md", + "LICENSE.txt", + "README.md" + ], + "scripts": { + "build": "vite build", + "changeset": "changeset add", + "prepare": "husky install", + "release": "npm run build && changeset publish", + "test": "vitest run", + "update:eslint-docs": "eslint-doc-generator" + }, + "lint-staged": { + "*.{js,cjs,mjs,ts}": [ + "eslint --fix", + "prettier --write" + ], + "package.json": "prettier --write" + }, + "prettier": "@zazen/prettier-config", + "dependencies": { + "@typescript-eslint/utils": "7.18.0", + "object.groupby": "1.0.1" + }, + "devDependencies": { + "@changesets/cli": "2.26.2", + "@types/eslint": "8.44.8", + "@types/node": "20.10.4", + "@typescript-eslint/rule-tester": "7.18.0", + "@zazen/changesets-changelog": "2.0.3", + "@zazen/eslint-config": "6.9.0", + "@zazen/prettier-config": "1.1.1", + "c8": "8.0.1", + "dedent": "1.5.3", + "eslint": "8.57.1", + "eslint-doc-generator": "1.6.1", + "eslint-plugin-eslint-plugin": "5.1.1", + "husky": "8.0.3", + "lint-staged": "15.1.0", + "prettier": "3.1.0", + "prettier-plugin-packagejson": "2.4.6", + "typescript": "5.2.2", + "vite-plugin-dts": "4.0.3", + "vitest": "2.0.5" + }, + "engines": { + "node": ">=16.17.0 || >=18.6.0" + } } diff --git a/src/rules/order.ts b/src/rules/order.ts index 305deb9..f29441a 100644 --- a/src/rules/order.ts +++ b/src/rules/order.ts @@ -41,8 +41,7 @@ export default createRule({ description: 'Consistently order `import` statements.', }, messages: { - 'needs-newline': - 'There should be at least one empty line between {{left}} and {{right}}', + 'needs-newline': 'There should be at least one empty line between {{left}} and {{right}}', 'extra-newline': 'There should be no empty line between {{left}} and {{right}}', 'out-of-order': '{{right}} should occur before {{left}}', }, @@ -140,9 +139,7 @@ export default createRule({ let messages: MessageId[] = [] if (indexOfLeft > indexOfRight) { - messages.push( - leftNumber === rightNumber ? 'out-of-order' : 'out-of-order', - ) + messages.push(leftNumber === rightNumber ? 'out-of-order' : 'out-of-order') } messages = [ diff --git a/src/rules/specifier-order.ts b/src/rules/specifier-order.ts index f1577bd..96d5e60 100644 --- a/src/rules/specifier-order.ts +++ b/src/rules/specifier-order.ts @@ -79,8 +79,7 @@ export default createRule({ let sortingNode: MemberSortingNode = { groupKind: - specifier.type === AST_NODE_TYPES.ImportSpecifier && - specifier.importKind === 'type' + specifier.type === AST_NODE_TYPES.ImportSpecifier && specifier.importKind === 'type' ? 'type' : 'value', isEslintDisabled: isNodeEslintDisabled(specifier, eslintDisabledLines), @@ -102,12 +101,10 @@ export default createRule({ } for (let nodes of formattedMembers) { - let filteredGroupKindNodes = groupKindOrder.map( - (groupKind: 'value' | 'type' | 'any') => - nodes.filter( - (currentNode) => - groupKind === 'any' || currentNode.groupKind === groupKind, - ), + let filteredGroupKindNodes = groupKindOrder.map((groupKind: 'value' | 'type' | 'any') => + nodes.filter( + (currentNode) => groupKind === 'any' || currentNode.groupKind === groupKind, + ), ) let sortNodesExcludingEslintDisabled = ( ignoreEslintDisabledNodes: boolean, @@ -125,10 +122,7 @@ export default createRule({ let indexOfRight = sortedNodes.indexOf(right) let indexOfRightExcludingEslintDisabled = sortedNodesExcludingEslintDisabled.indexOf(right) - if ( - indexOfLeft < indexOfRight && - indexOfLeft < indexOfRightExcludingEslintDisabled - ) { + if (indexOfLeft < indexOfRight && indexOfLeft < indexOfRightExcludingEslintDisabled) { return } diff --git a/src/utils/get-eslint-disabled-lines.ts b/src/utils/get-eslint-disabled-lines.ts index da886cd..5bce44e 100644 --- a/src/utils/get-eslint-disabled-lines.ts +++ b/src/utils/get-eslint-disabled-lines.ts @@ -46,5 +46,6 @@ export function getEslintDisabledLines({ return returnValue } -let createArrayFromTo = (index_: number, index: number): number[] => - Array.from({ length: index - index_ + 1 }, (_, item) => index_ + item) +// eslint-disable-next-line unicorn/prevent-abbreviations +let createArrayFromTo = (i: number, index: number): number[] => + Array.from({ length: index - i + 1 }, (_, item) => i + item) diff --git a/src/utils/get-node-range.ts b/src/utils/get-node-range.ts index 2b64da2..05b8f0e 100644 --- a/src/utils/get-node-range.ts +++ b/src/utils/get-node-range.ts @@ -1,4 +1,4 @@ -import { ASTUtils, type TSESLint, type TSESTree, AST_TOKEN_TYPES } from '@typescript-eslint/utils' +import { AST_TOKEN_TYPES, ASTUtils, type TSESLint, type TSESTree } from '@typescript-eslint/utils' import { getCommentsBefore } from './get-comment.js' import { getEslintDisabledRules } from './get-eslint-disabled-rules.js' diff --git a/src/utils/make-fixes.ts b/src/utils/make-fixes.ts index 16fd6be..ec47798 100644 --- a/src/utils/make-fixes.ts +++ b/src/utils/make-fixes.ts @@ -35,8 +35,7 @@ export function makeFixes({ let sortedNodeCode = sourceCode.text.slice( ...getNodeRange(sortedNode, sourceCode, { - ignoreHighestBlockComment: - ignoreFirstNodeHighestBlockComment && isSortedNodeFirstNode, + ignoreHighestBlockComment: ignoreFirstNodeHighestBlockComment && isSortedNodeFirstNode, }), ) let sortedNodeText = sourceCode.getText(sortedNode) @@ -46,13 +45,13 @@ export function makeFixes({ }) let nextToken = tokensAfter.at(0) - let sortedNextNodeEndsWithSafeCharacter = + let willSortedNextNodeEndWithSafeCharacter = sortedNodeText.endsWith(';') || sortedNodeText.endsWith(',') let isNextTokenOnSameLineAsNode = nextToken?.loc.start.line === node.loc.end.line let isNextTokenSafeCharacter = nextToken?.value === ';' || nextToken?.value === ',' if ( isNextTokenOnSameLineAsNode && - !sortedNextNodeEndsWithSafeCharacter && + !willSortedNextNodeEndWithSafeCharacter && !isNextTokenSafeCharacter ) { sortedNodeCode += ';' @@ -61,8 +60,7 @@ export function makeFixes({ fixes.push( fixer.replaceTextRange( getNodeRange(node, sourceCode, { - ignoreHighestBlockComment: - ignoreFirstNodeHighestBlockComment && isNodeFirstNode, + ignoreHighestBlockComment: ignoreFirstNodeHighestBlockComment && isNodeFirstNode, }), sortedNodeCode, ), diff --git a/src/utils/make-newline-fixes.ts b/src/utils/make-newline-fixes.ts index 0f5f9c5..3dc125d 100644 --- a/src/utils/make-newline-fixes.ts +++ b/src/utils/make-newline-fixes.ts @@ -40,11 +40,7 @@ export function makeNewlineFixes({ let rangeToReplace: [number, number] = [currentNodeRange.at(1)!, nextNodeRangeStart] let textBetweenNodes = sourceCode.text.slice(currentNodeRange.at(1), nextNodeRangeStart) - let linesBetweenMembers = getLinesBetween( - sourceCode, - nodes.at(index)!, - nodes.at(index + 1)!, - ) + let linesBetweenMembers = getLinesBetween(sourceCode, nodes.at(index)!, nodes.at(index + 1)!) let rangeReplacement: undefined | string if ( diff --git a/vite.config.mjs b/vite.config.mjs index c29736a..ac2faca 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -9,8 +9,7 @@ export default defineConfig({ lib: { entry: './src/index.ts', formats: ['cjs', 'es'], - fileName: (format, name) => - `${name}.${format === 'es' ? 'js' : 'cjs'}`, + fileName: (format, name) => `${name}.${format === 'es' ? 'js' : 'cjs'}`, }, minify: false, rollupOptions: { @@ -41,6 +40,6 @@ export default defineConfig({ test: { environment: 'node', - include: 'tests/**/*.test.ts', + include: ['tests/**/*.test.ts'], }, })