Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ yarn-error.log
/docs/.vitepress/.temp
/docs/.vitepress/cache
typings/eslint/lib/rules
eslint-typegen.d.ts
32 changes: 19 additions & 13 deletions eslint.config.js → eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
'use strict'
import globals from 'globals'
import eslintPluginEslintPlugin from 'eslint-plugin-eslint-plugin/configs/all'
import eslintPluginJsonc from 'eslint-plugin-jsonc'
import eslintPluginNodeDependencies from 'eslint-plugin-node-dependencies'
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
import eslintPluginUnicorn from 'eslint-plugin-unicorn'
import vueEslintParser from 'vue-eslint-parser'
import noInvalidMeta from './eslint-internal-rules/no-invalid-meta.js'
import noInvalidMetaDocsCategories from './eslint-internal-rules/no-invalid-meta-docs-categories.js'
import requireEslintCommunity from './eslint-internal-rules/require-eslint-community.js'

const globals = require('globals')
const eslintPluginEslintPlugin = require('eslint-plugin-eslint-plugin/configs/all')
const eslintPluginJsonc = require('eslint-plugin-jsonc')
const eslintPluginNodeDependencies = require('eslint-plugin-node-dependencies')
const eslintPluginPrettierRecommended = require('eslint-plugin-prettier/recommended')
const eslintPluginUnicorn = require('eslint-plugin-unicorn')
// @ts-check
/// <reference path="./eslint-typegen.d.ts" />
import typegen from 'eslint-typegen'

module.exports = [
export default typegen([
{
ignores: [
'.nyc_output',
Expand All @@ -33,9 +39,9 @@ module.exports = [
plugins: {
internal: {
rules: {
'no-invalid-meta': require('./eslint-internal-rules/no-invalid-meta'),
'no-invalid-meta-docs-categories': require('./eslint-internal-rules/no-invalid-meta-docs-categories'),
'require-eslint-community': require('./eslint-internal-rules/require-eslint-community')
'no-invalid-meta': noInvalidMeta,
'no-invalid-meta-docs-categories': noInvalidMetaDocsCategories,
'require-eslint-community': requireEslintCommunity
}
}
}
Expand Down Expand Up @@ -213,7 +219,7 @@ module.exports = [
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
parser: require('vue-eslint-parser')
parser: vueEslintParser
}
},
{
Expand Down Expand Up @@ -241,4 +247,4 @@ module.exports = [
'prettier/prettier': 'off'
}
}
]
])
1 change: 1 addition & 0 deletions lib/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/// <reference path="./eslint-typegen.d.ts" />
import type { Linter } from 'eslint'

declare const vue: {
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@
"version": "npm run generate:version && git add .",
"update": "node ./tools/update.js",
"update-resources": "node ./tools/update-resources.js",
"typegen": "node ./tools/generate-typegen.mjs",
"docs:watch": "vitepress dev docs",
"predocs:build": "npm run update",
"docs:build": "vitepress build docs",
"generate:version": "env-cmd -e version npm run update && npm run lint -- --fix",
"changeset:version": "changeset version && npm run generate:version && git add --all",
"changeset:publish": "changeset publish"
"changeset:publish": "npm run typegen && changeset publish"
},
"files": [
"lib"
Expand Down Expand Up @@ -98,6 +99,7 @@
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-unicorn": "^56.0.0",
"eslint-plugin-vue": "file:.",
"eslint-typegen": "^2.2.0",
"eslint-visitor-keys": "^4.2.0",
"espree": "^10.4.0",
"events": "^3.3.0",
Expand Down
9 changes: 9 additions & 0 deletions tools/generate-typegen.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import fs from 'node:fs/promises'
import { pluginsToRulesDTS } from 'eslint-typegen/core'
import plugin from '../lib/index.js'

const dts = await pluginsToRulesDTS({
vue: plugin
})

await fs.writeFile('lib/eslint-typegen.d.ts', dts)