Write on the margins of the internet. Powered by the AT Protocol.
margin.at
extension
web
atproto
comments
1import js from "@eslint/js";
2import globals from "globals";
3import reactHooks from "eslint-plugin-react-hooks";
4import reactRefresh from "eslint-plugin-react-refresh";
5import tseslint from "typescript-eslint";
6import prettierPlugin from "eslint-plugin-prettier";
7import prettierConfig from "eslint-config-prettier";
8import reactPlugin from "eslint-plugin-react";
9
10export default tseslint.config(
11 { ignores: ["dist", ".astro", "node_modules"] },
12 {
13 extends: [js.configs.recommended, ...tseslint.configs.recommended],
14 files: ["src/**/*.{ts,tsx}"],
15 languageOptions: {
16 ecmaVersion: 2020,
17 globals: globals.browser,
18 parserOptions: {
19 ecmaFeatures: {
20 jsx: true,
21 },
22 },
23 },
24 plugins: {
25 "react-hooks": reactHooks,
26 "react-refresh": reactRefresh,
27 react: reactPlugin,
28 prettier: prettierPlugin,
29 },
30 rules: {
31 ...reactHooks.configs.recommended.rules,
32 "react-refresh/only-export-components": [
33 "warn",
34 { allowConstantExport: true },
35 ],
36 "react/react-in-jsx-scope": "off",
37 "@typescript-eslint/explicit-module-boundary-types": "off",
38 "@typescript-eslint/no-unused-vars": [
39 "warn",
40 { argsIgnorePattern: "^_" },
41 ],
42 "prettier/prettier": "error",
43 },
44 settings: {
45 react: {
46 version: "detect",
47 },
48 },
49 },
50 prettierConfig,
51);