@@ -13,9 +13,8 @@ import unusedImports from "eslint-plugin-unused-imports";
1313import globals from "globals" ;
1414
1515import { readFileSync } from "fs" ;
16- import { dirname } from "node:path" ;
17- import { fileURLToPath } from "node:url" ;
18- import { resolve } from "path" ;
16+ import { dirname , resolve } from "path" ;
17+ import { fileURLToPath } from "url" ;
1918
2019const { configs } = pkg ;
2120
@@ -206,18 +205,92 @@ const evalConfig = {
206205 "error" ,
207206 {
208207 builtinGlobals : true ,
209- allow : [
210- "location" ,
211- "event" ,
212- "history" ,
213- "name" ,
214- "status" ,
215- "Option" ,
216- "test" ,
217- "expect" ,
218- "jest" ,
219- "PropertyDefinition" ,
220- ] ,
208+ allow : [ "name" , "PropertyDefinition" ] ,
209+ } ,
210+ ] ,
211+ } ,
212+ } ;
213+
214+ const subgraphExtends = fixupConfigRules (
215+ compat . extends (
216+ "airbnb" ,
217+ "prettier" ,
218+ "plugin:import/recommended" ,
219+ "plugin:@typescript-eslint/eslint-recommended" ,
220+ "plugin:@typescript-eslint/recommended" ,
221+ "plugin:@typescript-eslint/strict" ,
222+ "plugin:@typescript-eslint/stylistic" ,
223+ "plugin:import/typescript" ,
224+ ) ,
225+ ) ;
226+
227+ const subgraphConfig = {
228+ files : [ "subgraph/src/**/*.ts" , "subgraph/tests/**/*.ts" ] ,
229+ extends : subgraphExtends ,
230+ plugins : sharedPlugins ,
231+ languageOptions : {
232+ parser : tsParser ,
233+ sourceType : "module" ,
234+ ecmaVersion : 2022 ,
235+ globals : globals . node ,
236+ parserOptions : {
237+ ...sharedParserOptions ,
238+ project : resolve ( __dirname , "./subgraph/tsconfig.json" ) ,
239+ } ,
240+ } ,
241+ settings : {
242+ react : { version : "999.999.999" } ,
243+ "import/ignore" : [ "^assemblyscript" ] ,
244+ "import/resolver" : {
245+ typescript : { } ,
246+ node : { extensions : [ ".ts" , ".js" ] , moduleDirectory : [ "node_modules" , "src" , "tests" , "generated" ] } ,
247+ } ,
248+ } ,
249+ linterOptions : { reportUnusedDisableDirectives : isProduction } ,
250+ rules : {
251+ ...sharedRules ,
252+ "import/no-cycle" : "off" ,
253+ "import/namespace" : "off" ,
254+ "import/named" : "off" ,
255+ "import/default" : "off" ,
256+ "import/no-extraneous-dependencies" : [
257+ "error" ,
258+ {
259+ devDependencies : [ "**/*.test.ts" , "**/tests/**" ] ,
260+ } ,
261+ ] ,
262+ "no-debugger" : isProduction ? "error" : "off" ,
263+ "no-underscore-dangle" : "error" ,
264+ "no-redeclare" : [ "error" , { builtinGlobals : true } ] ,
265+ "import/order" : [
266+ "error" ,
267+ {
268+ groups : [ "external" , "builtin" , "internal" , "type" , "parent" , "sibling" , "index" , "object" ] ,
269+ alphabetize : { order : "asc" , caseInsensitive : true } ,
270+ warnOnUnassignedImports : true ,
271+ "newlines-between" : "always" ,
272+ } ,
273+ ] ,
274+ "import/prefer-default-export" : "off" ,
275+ "import/extensions" : [ "error" , { json : "always" } ] ,
276+ "class-methods-use-this" : "off" ,
277+ "prefer-promise-reject-errors" : "off" ,
278+ "max-classes-per-file" : "off" ,
279+ "no-use-before-define" : [ "off" ] ,
280+ "no-shadow" : "off" ,
281+ curly : [ "error" , "all" ] ,
282+ "no-return-await" : "off" ,
283+ "prefer-destructuring" : "off" ,
284+ "@typescript-eslint/prefer-for-of" : "off" ,
285+ "@typescript-eslint/consistent-type-imports" : "off" ,
286+ "@typescript-eslint/explicit-member-accessibility" : [ "error" , { accessibility : "no-public" } ] ,
287+ "@typescript-eslint/explicit-module-boundary-types" : "error" ,
288+ "@typescript-eslint/no-use-before-define" : [ "error" , { functions : false , classes : false } ] ,
289+ "@typescript-eslint/no-shadow" : [
290+ "error" ,
291+ {
292+ builtinGlobals : true ,
293+ allow : [ "BigInt" , "Request" , "describe" , "afterEach" , "beforeEach" , "beforeAll" ] ,
221294 } ,
222295 ] ,
223296 } ,
@@ -228,5 +301,6 @@ const evalConfig = {
228301export default defineConfig ( [
229302 gasConfig ,
230303 evalConfig ,
231- globalIgnores ( [ "**/node_modules" , "**/dist" , "**/coverage" , "**/build" , "eslint.config.js" ] ) ,
304+ subgraphConfig ,
305+ globalIgnores ( [ "**/node_modules" , "**/dist" , "**/coverage" , "**/build" , "eslint.config.js" , "subgraph/generated" ] ) ,
232306] ) ;
0 commit comments