Fix eslint-config package internal imports so other packages can use it for their eslint config

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-01-21 18:34:49 +04:00
parent 469e1431a3
commit 21342fba05
9 changed files with 31 additions and 17 deletions

View File

@@ -1,9 +1,9 @@
import { defineConfig } from "eslint/config";
import { baseConfigs } from "./src/baseConfigs.ts";
import { tsConfigs } from "./src/tsConfigs.ts";
import { nodeLanguageOptionsConfig } from "./src/languageOptionsConfigs.ts";
import { stylisticConfigs } from "./src/stylisticConfigs.ts";
import { baseConfigs } from "#baseConfigs";
import { tsConfigs } from "#tsConfigs";
import { nodeLanguageOptionsConfig } from "#languageOptionsConfigs";
import { stylisticConfigs } from "#stylisticConfigs";
export default defineConfig([
...baseConfigs,

View File

@@ -5,6 +5,17 @@
"description": "Shared ESLint configuration for Probo monorepo",
"main": "./src/index.ts",
"type": "module",
"exports": {
".": {
"default": "./src/index.ts"
}
},
"imports": {
"#baseConfigs": "./src/baseConfigs.ts",
"#tsConfigs": "./src/tsConfigs.ts",
"#languageOptionsConfigs": "./src/languageOptionsConfigs.ts",
"#stylisticConfigs": "./src/stylisticConfigs.ts"
},
"scripts": {
"lint": "eslint src"
},

View File

@@ -1,7 +1,8 @@
import js from "@eslint/js";
import type { Linter } from "eslint";
export const baseConfigs = [
{ ignores: ["dist", "node_modules", "**/*.d.ts"] },
{ files: ["**/*.js", "**/*.ts", "**/*.tsx"] },
{ ignores: ["dist", "node_modules", "**/*.d.ts"] } satisfies Pick<Linter.Config, "ignores">,
{ files: ["**/*.js", "**/*.ts", "**/*.tsx"] } satisfies Pick<Linter.Config, "files">,
js.configs.recommended,
];

View File

@@ -1,8 +1,8 @@
import { baseConfigs } from "./baseConfigs";
import { browserLanguageOptionsConfig, nodeLanguageOptionsConfig } from "./languageOptionsConfigs";
import { tsConfigs } from "./tsConfigs";
import { reactConfigs } from "./reactConfigs";
import { stylisticConfigs } from "./stylisticConfigs";
import { baseConfigs } from "./baseConfigs.ts";
import { browserLanguageOptionsConfig, nodeLanguageOptionsConfig } from "./languageOptionsConfigs.ts";
import { tsConfigs } from "./tsConfigs.ts";
import { reactConfigs } from "./reactConfigs.ts";
import { stylisticConfigs } from "./stylisticConfigs.ts";
export const configs = {
base: baseConfigs,

View File

@@ -1,3 +1,4 @@
import type { Linter } from "eslint";
import * as globals from "globals";
export const browserLanguageOptionsConfig = {
@@ -16,7 +17,7 @@ export const browserLanguageOptionsConfig = {
},
},
},
};
} satisfies Pick<Linter.Config, "languageOptions">;
export const nodeLanguageOptionsConfig = {
languageOptions: {
@@ -34,4 +35,4 @@ export const nodeLanguageOptionsConfig = {
},
},
},
};
} satisfies Pick<Linter.Config, "languageOptions">;

View File

@@ -1,4 +1,4 @@
import * as react from "eslint-plugin-react";
import react from "eslint-plugin-react";
import * as reactHooks from "eslint-plugin-react-hooks";
export const reactConfigs = [

View File

@@ -1,5 +1,5 @@
import stylistic from "@stylistic/eslint-plugin";
import { type Linter } from "eslint";
import type { Linter } from "eslint";
export const stylisticConfigs = [
stylistic.configs.customize({

View File

@@ -1,4 +1,4 @@
import { type Linter } from "eslint";
import type { Linter } from "eslint";
import tseslint from "typescript-eslint";
export const tsConfigs = [

View File

@@ -5,6 +5,7 @@
"skipLibCheck": true,
"module": "NodeNext",
"moduleResolution": "NodeNext",
"allowImportingTsExtensions": true,
"moduleDetection": "force",
"verbatimModuleSyntax": true,
"noEmit": true,
@@ -15,5 +16,5 @@
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
"include": ["src/**/*.ts", "eslint.config.js"]
"include": ["src/**/*.ts", "eslint.config.mjs"]
}