Archive of https://github.com/w-social-eu/w-social-atproto (see also https://github.com/brw/w-social-atproto-archive)
2.9 kB
109 lines
1{
2 "root": true,
3 "extends": [
4 "eslint:recommended",
5 "plugin:@typescript-eslint/base",
6 "plugin:@typescript-eslint/eslint-recommended",
7 "plugin:@typescript-eslint/recommended",
8 "plugin:prettier/recommended",
9 "plugin:import/recommended",
10 "plugin:import/typescript"
11 ],
12 "plugins": ["n"],
13 "ignorePatterns": ["dist", "node_modules"],
14 "rules": {
15 "no-var": "error",
16 "prefer-const": "warn",
17 "no-misleading-character-class": "warn",
18 "eqeqeq": ["error", "always", { "null": "ignore" }],
19 "n/global-require": "error",
20 "n/no-extraneous-import": "error",
21 "n/prefer-node-protocol": "error",
22 "import/extensions": ["off", "ignorePackages"],
23 "import/export": "off",
24 "import/namespace": "off",
25 "import/no-deprecated": "off",
26 "import/no-absolute-path": "error",
27 "import/no-dynamic-require": "error",
28 "import/no-self-import": "error",
29 "import/order": [
30 "error",
31 {
32 "named": true,
33 "distinctGroup": true,
34 "alphabetize": { "order": "asc" },
35 "newlines-between": "never",
36 "groups": [
37 "builtin",
38 "external",
39 "internal",
40 "parent",
41 ["index", "sibling"],
42 "object"
43 ]
44 }
45 ],
46 "@typescript-eslint/no-unused-vars": [
47 "error",
48 {
49 "argsIgnorePattern": "^_",
50 "varsIgnorePattern": "^_",
51 "ignoreRestSiblings": true
52 }
53 ],
54 "@typescript-eslint/ban-ts-comment": "off",
55 "@typescript-eslint/no-empty-interface": "off",
56 "@typescript-eslint/explicit-module-boundary-types": "off",
57 "@typescript-eslint/no-empty-function": "off",
58 "@typescript-eslint/no-explicit-any": "off"
59 },
60 "overrides": [
61 {
62 "files": ["jest.config.js"],
63 "env": { "commonjs": true }
64 },
65 {
66 "files": ["vite.config.js", "vite.config.cjs", "vite.config.mjs"],
67 "env": { "node": true }
68 },
69 {
70 "files": ["jest.setup.js"],
71 "env": { "jest": true }
72 },
73 {
74 "files": ["*.js", "*.cjs"],
75 "rules": {
76 "@typescript-eslint/no-var-requires": "off"
77 }
78 },
79 {
80 "files": ["**/*.test.ts", "**/tests/**/*.ts"],
81 "rules": {
82 "n/no-extraneous-import": [
83 "error",
84 { "allowModules": ["@atproto/dev-env"] }
85 ]
86 }
87 }
88 ],
89 "settings": {
90 "node": { "version": ">=18.7.0" },
91 "import/internal-regex": "^@atproto(?:-labs)?/",
92 "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] },
93 "import/resolver": {
94 "typescript": {
95 "project": [
96 "tsconfig.json",
97 "packages/lex/*/tsconfig.json",
98 "packages/oauth/*/tsconfig.json",
99 "packages/oauth/*/tsconfig.src.json",
100 "packages/internal/*/tsconfig.json",
101 "packages/*/tsconfig.json"
102 ]
103 },
104 "node": {
105 "extensions": [".js", ".jsx", ".json"]
106 }
107 }
108 }
109}