Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/NodeCI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
node-version: ${{ matrix.node-version }}
- name: Install Target Packages
run: |+
npm i -D eslint@^8.0.0
npm i -D eslint@^8.0.0 vue-eslint-parser@^9
npx rimraf node_modules
npm install
- name: Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ import { rules } from "../../../../../lib/utils/rules";
export default {
name: "EslintPluginEditor",
components: { EslintEditor },
model: {
prop: "code",
},
props: {
code: {
type: String,
Expand Down
2 changes: 1 addition & 1 deletion lib/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type AST from "vue-eslint-parser/ast";
import type { AST } from "vue-eslint-parser";
import type * as postcss from "postcss";
import type selectorParser from "postcss-selector-parser";
import type { ScopeManager } from "eslint-scope";
Expand Down
5,776 changes: 3,492 additions & 2,284 deletions package-lock.json

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,14 @@
"@ota-meshi/eslint-plugin": "^0.17.4",
"@ota-meshi/site-kit-eslint-editor-vue": "^0.2.1",
"@svitejs/changesets-changelog-github-compact": "^1.1.0",
"@types/eslint": "^8.56.10",
"@types/eslint": "^9.6.1",
"@types/estree": "^1.0.5",
"@types/lodash": "^4.17.5",
"@types/mocha": "^10.0.7",
"@types/node": "^22.0.0",
"@types/semver": "^7.5.8",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"@typescript-eslint/eslint-plugin": "^8.35.1",
"@typescript-eslint/parser": "^8.35.1",
"assert": "^2.1.0",
"cross-env": "^7.0.3",
"eslint": "^9.5.0",
Expand All @@ -79,7 +79,7 @@
"eslint-plugin-node-dependencies": "^1.0.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-regexp": "^2.6.0",
"eslint-plugin-vue": "^9.26.0",
"eslint-plugin-vue": "^10.3.0",
"eslint-plugin-vue-scoped-css": "^2.8.0",
"eslint-plugin-yml": "^1.14.0",
"events": "^3.3.0",
Expand All @@ -96,14 +96,14 @@
"stylelint-stylus": "^1.0.0",
"ts-node": "^10.9.1",
"typescript": "~5.8.0",
"typescript-eslint": "^8.0.0",
"vite-plugin-eslint4b": "^0.4.6",
"vitepress": "^1.0.1",
"vue-eslint-parser": "^9.0.0"
"typescript-eslint": "^8.35.1",
"vite-plugin-eslint4b": "^0.5.1",
"vitepress": "^1.6.3",
"vue-eslint-parser": "^10.2.0"
},
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"eslint-compat-utils": "^0.6.0",
"eslint-compat-utils": "^0.6.5",
"lodash": "^4.17.21",
"postcss": "^8.4.31",
"postcss-safe-parser": "^6.0.0",
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/comment-directives.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester, testRuleIdPrefix } from "./test-lib/eslint-compat";
import rule = require("../../lib/rules/no-unused-selector");
import rule from "../../lib/rules/no-unused-selector";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 0 additions & 2 deletions tests/lib/configs/recommended.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ describe("`recommended` config", () => {
});
it("`flat/recommended` config should work. ", async () => {
const linter = new ESLint({
// @ts-expect-error -- typing bug
overrideConfigFile: true,
// @ts-expect-error -- typing bug
overrideConfig: [...plugin.configs["flat/recommended"]],
Expand All @@ -62,7 +61,6 @@ describe("`recommended` config", () => {
});
it("`flat/recommended` config with *.js should work. ", async () => {
const linter = new ESLint({
// @ts-expect-error -- typing bug
overrideConfigFile: true,
// @ts-expect-error -- typing bug
overrideConfig: [...plugin.configs["flat/recommended"]],
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules-without-vue-eslint-parser.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getLinter } from "eslint-compat-utils/linter";
import plugin = require("../../lib/index");
import plugin from "../../lib/index";
// eslint-disable-next-line @typescript-eslint/naming-convention -- Class name
const Linter = getLinter();

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/enforce-style-type.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/enforce-style-type");
import rule from "../../../lib/rules/enforce-style-type";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/no-deprecated-deep-combinator.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/no-deprecated-deep-combinator");
import rule from "../../../lib/rules/no-deprecated-deep-combinator";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/no-deprecated-v-enter-v-leave-class.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/no-deprecated-v-enter-v-leave-class");
import rule from "../../../lib/rules/no-deprecated-v-enter-v-leave-class";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/no-parent-of-v-global.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/no-parent-of-v-global");
import rule from "../../../lib/rules/no-parent-of-v-global";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/no-parsing-error.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { RuleTester } from "../test-lib/eslint-compat";
import semver from "semver";
import rule = require("../../../lib/rules/no-parsing-error");
import rule from "../../../lib/rules/no-parsing-error";
const parserVersion = require("vue-eslint-parser/package.json").version;

import * as vueParser from "vue-eslint-parser";
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/no-unused-keyframes.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/no-unused-keyframes");
import rule from "../../../lib/rules/no-unused-keyframes";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/no-unused-selector.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/no-unused-selector");
import rule from "../../../lib/rules/no-unused-selector";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/require-scoped.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { RuleTester } from "../test-lib/eslint-compat";
import semver from "semver";
import rule = require("../../../lib/rules/require-scoped");
import rule from "../../../lib/rules/require-scoped";

const parserVersion = require("vue-eslint-parser/package.json").version;

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/require-selector-used-inside.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/require-selector-used-inside");
import rule from "../../../lib/rules/require-selector-used-inside";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/require-v-deep-argument.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/require-v-deep-argument");
import rule from "../../../lib/rules/require-v-deep-argument";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/require-v-global-argument.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/require-v-global-argument");
import rule from "../../../lib/rules/require-v-global-argument";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/require-v-slotted-argument.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/require-v-slotted-argument");
import rule from "../../../lib/rules/require-v-slotted-argument";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/v-deep-pseudo-style.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/v-deep-pseudo-style");
import rule from "../../../lib/rules/v-deep-pseudo-style";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/v-global-pseudo-style.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/v-global-pseudo-style");
import rule from "../../../lib/rules/v-global-pseudo-style";

import * as vueParser from "vue-eslint-parser";

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/v-slotted-pseudo-style.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RuleTester } from "../test-lib/eslint-compat";
import rule = require("../../../lib/rules/v-slotted-pseudo-style");
import rule from "../../../lib/rules/v-slotted-pseudo-style";
import * as vueParser from "vue-eslint-parser";

const tester = new RuleTester({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ export default {
return [...CLASS_NAME] // TODO supports
},
classComp2() {
// eslint-disable-next-line @mysticatea/no-useless-rest-spread
return [...(["foo"])] // TODO supports
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<script>
export default {
// eslint-disable-next-line @mysticatea/vue/no-shared-component-data
data: {
classData: { bar: false },
classData2: { foo: true }
Expand Down
19 changes: 15 additions & 4 deletions tests/lib/styles/test-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const Linter = getLinter();
const ROOT = path.join(__dirname, "./fixtures/index");

const config = {
files: ["*", "*.vue", "**/*.vue"],
files: ["*", "*.vue", "**/*.vue", "**"],
languageOptions: {
parser: vueParser,
ecmaVersion: 2019,
Expand All @@ -37,7 +37,7 @@ function executeLint(
let style: StyleContext | null = null;
let context: RuleContext | null = null;
let err = null;
linter.verifyAndFix(
const lintResult = linter.verifyAndFix(
source,
{
...config,
Expand All @@ -64,8 +64,19 @@ function executeLint(
if (err) {
throw err;
}
if (!style || !context) {
throw new Error("invalid state");
if (lintResult.messages.length) {
lintResult.messages.forEach((message) => {
console.error(
`[${message.ruleId}] ${message.message} (${message.line}:${message.column})`,
);
});
throw new Error(`Linting errors found in ${sourcePath}`);
}
if (!style) {
throw new Error("invalid state: style is null");
}
if (!context) {
throw new Error("invalid state: context is null");
}
return { style, context };
}
Expand Down
Loading