@neurodevs/eslint-config-ndx 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,58 +1,53 @@
1
1
  {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "type": "node",
6
- "request": "attach",
7
- "name": "attach.tests",
8
- "port": 5200,
9
- "restart": true,
10
- "timeout": 10000
11
- },
12
- {
13
- "type": "node",
14
- "request": "launch",
15
- "name": "test.file",
16
- "runtimeExecutable": "node",
17
- "runtimeArgs": [
18
- "--inspect-brk",
19
- "--trace-warnings",
20
- "${workspaceFolder}/node_modules/.bin/jest",
21
- "${fileBasenameNoExtension}",
22
- "--detectOpenHandles"
23
- ],
24
- "cwd": "${workspaceFolder}",
25
- "console": "integratedTerminal",
26
- "internalConsoleOptions": "neverOpen"
27
- },
28
- {
29
- "type": "node",
30
- "request": "launch",
31
- "name": "test.all",
32
- "runtimeExecutable": "node",
33
- "runtimeArgs": [
34
- "--inspect-brk",
35
- "--trace-warnings",
36
- "${workspaceFolder}/node_modules/.bin/jest"
37
- ],
38
- "cwd": "${workspaceFolder}",
39
- "console": "integratedTerminal",
40
- "internalConsoleOptions": "neverOpen"
41
- },
42
- {
43
- "type": "node",
44
- "request": "launch",
45
- "name": "boot",
46
- "runtimeExecutable": "yarn",
47
- "runtimeArgs": [
48
- "run",
49
- "--inspect-brk",
50
- "--trace-warnings",
51
- "boot"
52
- ],
53
- "cwd": "${workspaceFolder}",
54
- "console": "integratedTerminal",
55
- "internalConsoleOptions": "neverOpen"
56
- }
57
- ]
58
- }
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "type": "node",
6
+ "request": "attach",
7
+ "name": "attach.tests",
8
+ "port": 5200,
9
+ "restart": true,
10
+ "timeout": 10000
11
+ },
12
+ {
13
+ "type": "node",
14
+ "request": "launch",
15
+ "name": "test.file",
16
+ "runtimeExecutable": "node",
17
+ "runtimeArgs": [
18
+ "--inspect-brk",
19
+ "--trace-warnings",
20
+ "${workspaceFolder}/node_modules/.bin/jest",
21
+ "${fileBasenameNoExtension}",
22
+ "--detectOpenHandles"
23
+ ],
24
+ "cwd": "${workspaceFolder}",
25
+ "console": "integratedTerminal",
26
+ "internalConsoleOptions": "neverOpen"
27
+ },
28
+ {
29
+ "type": "node",
30
+ "request": "launch",
31
+ "name": "test.all",
32
+ "runtimeExecutable": "node",
33
+ "runtimeArgs": [
34
+ "--inspect-brk",
35
+ "--trace-warnings",
36
+ "${workspaceFolder}/node_modules/.bin/jest"
37
+ ],
38
+ "cwd": "${workspaceFolder}",
39
+ "console": "integratedTerminal",
40
+ "internalConsoleOptions": "neverOpen"
41
+ },
42
+ {
43
+ "type": "node",
44
+ "request": "launch",
45
+ "name": "boot",
46
+ "runtimeExecutable": "yarn",
47
+ "runtimeArgs": ["run", "--inspect-brk", "--trace-warnings", "boot"],
48
+ "cwd": "${workspaceFolder}",
49
+ "console": "integratedTerminal",
50
+ "internalConsoleOptions": "neverOpen"
51
+ }
52
+ ]
53
+ }
@@ -1,67 +1,63 @@
1
1
  {
2
- "debug.node.autoAttach": "on",
3
- "git.ignoreLimitWarning": true,
4
- "javascript.validate.enable": false,
5
- "files.watcherExclude": {
6
- "**/.git/objects/**": true,
7
- "**/.git/subtree-cache/**": true,
8
- "**/build/**": true,
9
- "**/node_modules/**": true,
10
- },
11
- "search.exclude": {
12
- "**/build/**": true,
13
- "**/node_modules/**": true,
14
- "**/.next/**": true
15
- },
16
- "editor.maxTokenizationLineLength": 20000000,
17
- "[javascript]": {
18
- "editor.formatOnSave": false
19
- },
20
- "[javascriptreact]": {
21
- "editor.formatOnSave": false
22
- },
23
- "[typescript]": {
24
- "editor.formatOnSave": false
25
- },
26
- "[typescriptreact]": {
27
- "editor.formatOnSave": false
28
- },
29
- "[handlebars]": {
30
- "editor.formatOnSave": false
31
- },
32
- "typescript.tsdk": "node_modules/typescript/lib",
33
- "cSpell.ignorePaths": [
34
- "**/package-lock.json",
35
- "**/node_modules/**",
36
- "**/build/**",
37
- "**/vscode-extension/**",
38
- "**/.git/objects/**",
39
- ".vscode",
40
- ".spruce"
41
- ],
42
- "cSpell.words": [
43
- "arkit",
44
- "autogenerated",
45
- "scrollable",
46
- "serializable"
47
- ],
48
- "debug.javascript.unmapMissingSources": true,
49
- "javascript.preferences.importModuleSpecifier": "relative",
50
- "typescript.preferences.importModuleSpecifier": "relative",
51
- "eslint.useFlatConfig": true,
52
- "eslint.enable": true,
53
- "eslint.validate": [
54
- "javascript",
55
- "javascriptreact",
56
- "typescript",
57
- "typescriptreact"
58
- ],
59
- "eslint.workingDirectories": [
60
- "./"
61
- ],
62
- "typescript.validate.enable": true,
63
- "editor.formatOnSave": false,
64
- "editor.codeActionsOnSave": {
65
- "source.fixAll.eslint": "always"
66
- }
67
- }
2
+ "debug.node.autoAttach": "on",
3
+ "git.ignoreLimitWarning": true,
4
+ "javascript.validate.enable": false,
5
+ "files.watcherExclude": {
6
+ "**/.git/objects/**": true,
7
+ "**/.git/subtree-cache/**": true,
8
+ "**/build/**": true,
9
+ "**/node_modules/**": true
10
+ },
11
+ "search.exclude": {
12
+ "**/build/**": true,
13
+ "**/node_modules/**": true,
14
+ "**/.next/**": true
15
+ },
16
+ "editor.codeActionsOnSave": {
17
+ "source.fixAll.eslint": "always"
18
+ },
19
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
20
+ "editor.formatOnSave": true,
21
+ "editor.formatOnSaveMode": "file",
22
+ "editor.maxTokenizationLineLength": 20000000,
23
+ "[javascript]": {
24
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
25
+ "editor.formatOnSave": true
26
+ },
27
+ "[javascriptreact]": {
28
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
29
+ "editor.formatOnSave": true
30
+ },
31
+ "[typescript]": {
32
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
33
+ "editor.formatOnSave": true
34
+ },
35
+ "[typescriptreact]": {
36
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
37
+ "editor.formatOnSave": true
38
+ },
39
+ "eslint.enable": true,
40
+ "eslint.useFlatConfig": true,
41
+ "eslint.validate": [
42
+ "javascript",
43
+ "javascriptreact",
44
+ "typescript",
45
+ "typescriptreact"
46
+ ],
47
+ "eslint.workingDirectories": ["./"],
48
+ "debug.javascript.unmapMissingSources": true,
49
+ "javascript.preferences.importModuleSpecifier": "relative",
50
+ "typescript.preferences.importModuleSpecifier": "relative",
51
+ "typescript.tsdk": "node_modules/typescript/lib",
52
+ "typescript.validate.enable": true,
53
+ "cSpell.ignorePaths": [
54
+ "**/package-lock.json",
55
+ "**/node_modules/**",
56
+ "**/build/**",
57
+ "**/vscode-extension/**",
58
+ "**/.git/objects/**",
59
+ ".vscode",
60
+ ".spruce"
61
+ ],
62
+ "cSpell.words": ["arkit", "autogenerated", "scrollable", "serializable"]
63
+ }
@@ -127,4 +127,4 @@
127
127
  "type": "promptString"
128
128
  }
129
129
  ]
130
- }
130
+ }
package/README.md CHANGED
@@ -1,2 +1,3 @@
1
1
  # eslint-config-ndx
2
+
2
3
  ESLint flat-config preset for modern Node.js + TypeScript projects
@@ -1,8 +1,4 @@
1
1
  {
2
- "skipped": [
3
- "skill"
4
- ],
5
- "installed": [
6
- "test"
7
- ]
8
- }
2
+ "skipped": ["skill"],
3
+ "installed": ["test"]
4
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: any[];
2
+ export default _default;
@@ -1,14 +1,11 @@
1
1
  import globals from 'globals';
2
- import { defineConfig } from 'eslint/config';
3
- import prettierImport from 'eslint-config-prettier/flat';
4
- const prettierConfig = prettierImport && typeof prettierImport === 'object' && 'default' in prettierImport
5
- ? prettierImport.default
6
- : prettierImport;
2
+ import prettierConfig from 'eslint-config-prettier/flat';
3
+ import biomeConfig from 'eslint-config-biome';
7
4
  import esTypescript from '@typescript-eslint/eslint-plugin';
8
5
  import esParser from '@typescript-eslint/parser';
9
6
  import esImport from 'eslint-plugin-import';
10
7
  import esReact from 'eslint-plugin-react';
11
- export default defineConfig([
8
+ export default [
12
9
  prettierConfig,
13
10
  {
14
11
  ignores: ['build/**'],
@@ -37,6 +34,11 @@ export default defineConfig([
37
34
  'react/prop-types': 'off',
38
35
  },
39
36
  settings: {
37
+ 'import/resolver': {
38
+ node: {
39
+ extensions: ['.js', '.mjs', '.ts', '.tsx'],
40
+ },
41
+ },
40
42
  react: {
41
43
  version: 'detect',
42
44
  },
@@ -69,11 +71,14 @@ export default defineConfig([
69
71
  },
70
72
  },
71
73
  {
72
- files: ['*.js'],
74
+ files: ['**/*.js', '**/*.mjs'],
73
75
  plugins: {
74
- '@typescript-eslint': esTypescript,
76
+ import: esImport,
77
+ },
78
+ rules: {
79
+ ...esImport.configs.recommended.rules,
75
80
  },
76
- rules: Object.assign(esImport.rules),
77
81
  },
78
- ]);
79
- //# sourceMappingURL=eslint.config.mjs.map
82
+ biomeConfig,
83
+ ];
84
+ //# sourceMappingURL=eslint.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../src/eslint.config.js"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,cAAc,MAAM,6BAA6B,CAAA;AACxD,OAAO,WAAW,MAAM,qBAAqB,CAAA;AAE7C,OAAO,YAAY,MAAM,kCAAkC,CAAA;AAC3D,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAEhD,OAAO,QAAQ,MAAM,sBAAsB,CAAA;AAC3C,OAAO,OAAO,MAAM,qBAAqB,CAAA;AAEzC,eAAe;IACX,cAAc;IACd;QACI,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,OAAO,EAAE;YACL,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;SACjB;QACD,eAAe,EAAE;YACb,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE;gBACL,GAAG,OAAO,CAAC,OAAO;gBAClB,GAAG,OAAO,CAAC,IAAI;gBACf,GAAG,OAAO,CAAC,IAAI;aAClB;SACJ;QACD,KAAK,EAAE;YACH,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,OAAO;YACjB,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YACvC,oBAAoB,EAAE,OAAO;YAC7B,kBAAkB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE;YACN,iBAAiB,EAAE;gBACf,IAAI,EAAE;oBACF,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;iBAC7C;aACJ;YACD,KAAK,EAAE;gBACH,OAAO,EAAE,QAAQ;aACpB;SACJ;KACJ;IACD;QACI,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC9B,OAAO,EAAE;YACL,oBAAoB,EAAE,YAAY;SACrC;QACD,eAAe,EAAE;YACb,MAAM,EAAE,QAAQ;SACnB;QACD,KAAK,EAAE;YACH,mCAAmC,EAAE;gBACjC,OAAO;gBACP;oBACI,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,IAAI;oBACvB,yBAAyB,EAAE,IAAI;iBAClC;aACJ;YACD,uCAAuC,EAAE,CAAC;YAC1C,+DAA+D;YAC/D,kEAAkE;YAClE,kCAAkC,EAAE,CAAC;YACrC,sCAAsC,EAAE,CAAC;YACzC,kDAAkD,EAAE,CAAC;YACrD,oCAAoC,EAAE,CAAC;SAC1C;KACJ;IACD;QACI,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC9B,OAAO,EAAE;YACL,MAAM,EAAE,QAAQ;SACnB;QACD,KAAK,EAAE;YACH,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;SACxC;KACJ;IACD,WAAW;CACd,CAAA"}
package/build/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { default } from './eslint.config.mjs';
1
+ export { default } from './eslint.config.js';
package/build/index.js CHANGED
@@ -1,9 +1,2 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = void 0;
7
- var eslint_config_mjs_1 = require("./eslint.config.mjs");
8
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(eslint_config_mjs_1).default; } });
1
+ export { default } from './eslint.config.js';
9
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA6C;AAApC,6HAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,12 +1,7 @@
1
1
  import globals from 'globals'
2
2
 
3
- import { defineConfig } from 'eslint/config'
4
- import prettierImport from 'eslint-config-prettier/flat'
5
-
6
- const prettierConfig =
7
- prettierImport && typeof prettierImport === 'object' && 'default' in prettierImport
8
- ? prettierImport.default
9
- : prettierImport
3
+ import prettierConfig from 'eslint-config-prettier/flat'
4
+ import biomeConfig from 'eslint-config-biome'
10
5
 
11
6
  import esTypescript from '@typescript-eslint/eslint-plugin'
12
7
  import esParser from '@typescript-eslint/parser'
@@ -14,8 +9,7 @@ import esParser from '@typescript-eslint/parser'
14
9
  import esImport from 'eslint-plugin-import'
15
10
  import esReact from 'eslint-plugin-react'
16
11
 
17
-
18
- export default defineConfig([
12
+ export default [
19
13
  prettierConfig,
20
14
  {
21
15
  ignores: ['build/**'],
@@ -32,7 +26,7 @@ export default defineConfig([
32
26
  ...globals.jest,
33
27
  },
34
28
  },
35
- rules: {
29
+ rules: {
36
30
  curly: 'error',
37
31
  'no-console': 'off',
38
32
  'no-undef': 'off',
@@ -76,10 +70,19 @@ export default defineConfig([
76
70
  },
77
71
  },
78
72
  {
79
- files: ['*.js'],
73
+ files: ['**/*.js', '**/*.mjs'],
80
74
  plugins: {
81
- '@typescript-eslint': esTypescript,
75
+ import: esImport,
76
+ },
77
+ rules: {
78
+ ...esImport.configs.recommended.rules,
79
+ },
80
+ },
81
+ {
82
+ files: ['**/eslint.config.js'],
83
+ rules: {
84
+ 'import/no-unresolved': 'off',
82
85
  },
83
- rules: Object.assign(esImport.rules),
84
86
  },
85
- ])
87
+ biomeConfig,
88
+ ]
package/package.json CHANGED
@@ -1,83 +1,85 @@
1
1
  {
2
- "name": "@neurodevs/eslint-config-ndx",
3
- "version": "0.0.7",
4
- "description": "ESLint flat-config preset for modern Node.js + TypeScript projects",
5
- "keywords": [
6
- "nodejs",
7
- "typescript",
8
- "tdd",
9
- "eslint"
10
- ],
11
- "license": "MIT",
12
- "author": "Eric Yates <hello@ericthecurious.com>",
13
- "homepage": "https://github.com/neurodevs/eslint-config-ndx",
14
- "repository": {
15
- "type": "git",
16
- "url": "git+https://github.com/neurodevs/eslint-config-ndx.git"
17
- },
18
- "bugs": {
19
- "url": "https://github.com/neurodevs/eslint-config-ndx/issues"
20
- },
21
- "main": "build/index.js",
22
- "scripts": {
23
- "build.ci": "yarn run build.tsc && yarn run lint",
24
- "build.dev": "yarn run build.tsc --sourceMap ; yarn run lint",
25
- "build.copy-files": "mkdir -p build && rsync -avzq --exclude='*.ts' ./src/ ./build/",
26
- "build.tsc": "yarn run build.copy-files && tsc",
27
- "clean": "yarn run clean.build",
28
- "clean.all": "yarn run clean.dependencies && yarn run clean.build",
29
- "clean.build": "rm -rf build/",
30
- "clean.dependencies": "rm -rf node_modules/ package-lock.json yarn.lock",
31
- "fix.lint": "eslint --fix --cache '**/*.ts'",
32
- "lint": "eslint --cache '**/*.ts'",
33
- "lint.tsc": "tsc -p . --noEmit",
34
- "post.watch.build": "yarn run build.copy-files",
35
- "rebuild": "yarn run clean.all && yarn install && yarn run build.dev",
36
- "update.dependencies": "yarn run clean.dependencies && yarn",
37
- "test": "jest",
38
- "watch.build.dev": "tsc-watch --sourceMap --onCompilationComplete 'yarn run post.watch.build'",
39
- "watch.rebuild": "yarn run clean.all && yarn install && yarn run watch.build.dev",
40
- "watch.tsc": "tsc -w"
41
- },
42
- "dependencies": {
43
- "@typescript-eslint/eslint-plugin": "^8.56.0",
44
- "@typescript-eslint/parser": "^8.56.0",
45
- "eslint": "^9.39.2",
46
- "eslint-config-prettier": "^10.1.8",
47
- "eslint-plugin-import": "^2.32.0",
48
- "eslint-plugin-react": "^7.37.5"
49
- },
50
- "devDependencies": {
51
- "@neurodevs/node-tdd": "^0.2.5",
52
- "@types/node": "^25.3.0",
53
- "chokidar-cli": "^3.0.0",
54
- "concurrently": "^9.2.1",
55
- "jest": "^30.2.0",
56
- "jest-circus": "^30.2.0",
57
- "prettier": "^3.8.1",
58
- "ts-node": "^10.9.2",
59
- "tsc-watch": "^7.2.0",
60
- "typescript": "^5.9.3"
61
- },
62
- "skill": {
63
- "namespace": "eslint-config-ndx"
64
- },
65
- "jest": {
66
- "testRunner": "jest-circus/runner",
67
- "maxWorkers": 4,
68
- "testTimeout": 120000,
69
- "testEnvironment": "node",
70
- "testPathIgnorePatterns": [
71
- "<rootDir>/tmp/",
72
- "<rootDir>/src/",
73
- "<rootDir>/node_modules/",
74
- "<rootDir>/build/__tests__/testDirsAndFiles/"
2
+ "name": "@neurodevs/eslint-config-ndx",
3
+ "version": "0.0.9",
4
+ "description": "ESLint config for the Neurodevs ecosystem",
5
+ "type": "module",
6
+ "keywords": [
7
+ "nodejs",
8
+ "typescript",
9
+ "tdd",
10
+ "eslint"
75
11
  ],
76
- "testMatch": [
77
- "**/__tests__/**/*.test.js?(x)"
78
- ],
79
- "moduleNameMapper": {
80
- "^#spruce/(.*)$": "<rootDir>/build/.spruce/$1"
12
+ "license": "MIT",
13
+ "author": "Eric Yates <hello@ericthecurious.com>",
14
+ "homepage": "https://github.com/neurodevs/eslint-config-ndx",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/neurodevs/eslint-config-ndx.git"
18
+ },
19
+ "bugs": {
20
+ "url": "https://github.com/neurodevs/eslint-config-ndx/issues"
21
+ },
22
+ "main": "build/index.js",
23
+ "scripts": {
24
+ "build.ci": "yarn run build.tsc && yarn run lint",
25
+ "build.dev": "yarn run build.tsc --sourceMap ; yarn run lint",
26
+ "build.copy-files": "mkdir -p build && rsync -avzq --exclude='*.ts' ./src/ ./build/",
27
+ "build.tsc": "yarn run build.copy-files && tsc",
28
+ "clean": "yarn run clean.build",
29
+ "clean.all": "yarn run clean.dependencies && yarn run clean.build",
30
+ "clean.build": "rm -rf build/",
31
+ "clean.dependencies": "rm -rf node_modules/ package-lock.json yarn.lock",
32
+ "fix.lint": "eslint --fix --cache '**/*.ts'",
33
+ "lint": "eslint --cache '**/*.ts'",
34
+ "lint.tsc": "tsc -p . --noEmit",
35
+ "post.watch.build": "yarn run build.copy-files",
36
+ "rebuild": "yarn run clean.all && yarn install && yarn run build.dev",
37
+ "update.dependencies": "yarn run clean.dependencies && yarn",
38
+ "test": "jest",
39
+ "watch.build.dev": "tsc-watch --sourceMap --onCompilationComplete 'yarn run post.watch.build'",
40
+ "watch.rebuild": "yarn run clean.all && yarn install && yarn run watch.build.dev",
41
+ "watch.tsc": "tsc -w"
42
+ },
43
+ "dependencies": {
44
+ "@typescript-eslint/eslint-plugin": "^8.56.0",
45
+ "@typescript-eslint/parser": "^8.56.0",
46
+ "eslint": "^9.39.2",
47
+ "eslint-config-biome": "^2.1.3",
48
+ "eslint-config-prettier": "^10.1.8",
49
+ "eslint-plugin-import": "^2.32.0",
50
+ "eslint-plugin-react": "^7.37.5"
51
+ },
52
+ "devDependencies": {
53
+ "@neurodevs/node-tdd": "^0.2.5",
54
+ "@neurodevs/prettier-config-ndx": "^0.0.1",
55
+ "@types/node": "^25.3.0",
56
+ "chokidar-cli": "^3.0.0",
57
+ "concurrently": "^9.2.1",
58
+ "jest": "^30.2.0",
59
+ "jest-circus": "^30.2.0",
60
+ "ts-node": "^10.9.2",
61
+ "tsc-watch": "^7.2.0",
62
+ "typescript": "^5.9.3"
63
+ },
64
+ "skill": {
65
+ "namespace": "eslint-config-ndx"
66
+ },
67
+ "jest": {
68
+ "testRunner": "jest-circus/runner",
69
+ "maxWorkers": 4,
70
+ "testTimeout": 120000,
71
+ "testEnvironment": "node",
72
+ "testPathIgnorePatterns": [
73
+ "<rootDir>/tmp/",
74
+ "<rootDir>/src/",
75
+ "<rootDir>/node_modules/",
76
+ "<rootDir>/build/__tests__/testDirsAndFiles/"
77
+ ],
78
+ "testMatch": [
79
+ "**/__tests__/**/*.test.js?(x)"
80
+ ],
81
+ "moduleNameMapper": {
82
+ "^#spruce/(.*)$": "<rootDir>/build/.spruce/$1"
83
+ }
81
84
  }
82
- }
83
85
  }
@@ -0,0 +1,3 @@
1
+ import prettierConfigNdx from '@neurodevs/prettier-config-ndx'
2
+
3
+ export default prettierConfigNdx
@@ -1,8 +1,4 @@
1
1
  {
2
- "skipped": [
3
- "skill"
4
- ],
5
- "installed": [
6
- "test"
7
- ]
8
- }
2
+ "skipped": ["skill"],
3
+ "installed": ["test"]
4
+ }
@@ -1,12 +1,7 @@
1
1
  import globals from 'globals'
2
2
 
3
- import { defineConfig } from 'eslint/config'
4
- import prettierImport from 'eslint-config-prettier/flat'
5
-
6
- const prettierConfig =
7
- prettierImport && typeof prettierImport === 'object' && 'default' in prettierImport
8
- ? prettierImport.default
9
- : prettierImport
3
+ import prettierConfig from 'eslint-config-prettier/flat'
4
+ import biomeConfig from 'eslint-config-biome'
10
5
 
11
6
  import esTypescript from '@typescript-eslint/eslint-plugin'
12
7
  import esParser from '@typescript-eslint/parser'
@@ -14,8 +9,7 @@ import esParser from '@typescript-eslint/parser'
14
9
  import esImport from 'eslint-plugin-import'
15
10
  import esReact from 'eslint-plugin-react'
16
11
 
17
-
18
- export default defineConfig([
12
+ export default [
19
13
  prettierConfig,
20
14
  {
21
15
  ignores: ['build/**'],
@@ -32,7 +26,7 @@ export default defineConfig([
32
26
  ...globals.jest,
33
27
  },
34
28
  },
35
- rules: {
29
+ rules: {
36
30
  curly: 'error',
37
31
  'no-console': 'off',
38
32
  'no-undef': 'off',
@@ -44,6 +38,11 @@ export default defineConfig([
44
38
  'react/prop-types': 'off',
45
39
  },
46
40
  settings: {
41
+ 'import/resolver': {
42
+ node: {
43
+ extensions: ['.js', '.mjs', '.ts', '.tsx'],
44
+ },
45
+ },
47
46
  react: {
48
47
  version: 'detect',
49
48
  },
@@ -76,10 +75,13 @@ export default defineConfig([
76
75
  },
77
76
  },
78
77
  {
79
- files: ['*.js'],
78
+ files: ['**/*.js', '**/*.mjs'],
80
79
  plugins: {
81
- '@typescript-eslint': esTypescript,
80
+ import: esImport,
81
+ },
82
+ rules: {
83
+ ...esImport.configs.recommended.rules,
82
84
  },
83
- rules: Object.assign(esImport.rules),
84
85
  },
85
- ])
86
+ biomeConfig,
87
+ ]
package/src/index.ts CHANGED
@@ -1 +1 @@
1
- export { default } from './eslint.config.mjs'
1
+ export { default } from './eslint.config.js'
package/tsconfig.json CHANGED
@@ -1,28 +1,25 @@
1
1
  {
2
- "compilerOptions": {
3
- "module": "nodenext",
4
- "moduleResolution": "nodenext",
5
- "target": "ES2022",
6
- "lib": ["ES2022"],
7
- "types": ["node"],
8
- "baseUrl": "src",
9
- "outDir": "build",
10
- "sourceMap": false,
11
- "strict": true,
12
- "noImplicitAny": true,
13
- "noImplicitReturns": true,
14
- "noUnusedLocals": true,
15
- "forceConsistentCasingInFileNames": true,
16
- "declaration": true,
17
- "skipLibCheck": true,
18
- "esModuleInterop": true,
19
- "moduleDetection": "force",
20
- "allowJs": true,
21
- "resolveJsonModule": true,
22
- "experimentalDecorators": true
23
- },
24
- "include": [
25
- "./src/*.ts",
26
- "./src/**/*.ts"
27
- ]
28
- }
2
+ "compilerOptions": {
3
+ "module": "nodenext",
4
+ "moduleResolution": "nodenext",
5
+ "target": "ES2022",
6
+ "lib": ["ES2022"],
7
+ "types": ["node"],
8
+ "baseUrl": "src",
9
+ "outDir": "build",
10
+ "sourceMap": false,
11
+ "strict": true,
12
+ "noImplicitAny": true,
13
+ "noImplicitReturns": true,
14
+ "noUnusedLocals": true,
15
+ "forceConsistentCasingInFileNames": true,
16
+ "declaration": true,
17
+ "skipLibCheck": true,
18
+ "esModuleInterop": true,
19
+ "moduleDetection": "force",
20
+ "allowJs": true,
21
+ "resolveJsonModule": true,
22
+ "experimentalDecorators": true
23
+ },
24
+ "include": ["./src/*.ts", "./src/**/*.ts"]
25
+ }
@@ -1,2 +0,0 @@
1
- declare const _default: import("eslint/config").Config[];
2
- export default _default;
@@ -1 +0,0 @@
1
- {"version":3,"file":"eslint.config.mjs","sourceRoot":"","sources":["../src/eslint.config.mjs"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,cAAc,MAAM,6BAA6B,CAAA;AAExD,MAAM,cAAc,GAChB,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,SAAS,IAAI,cAAc;IAC/E,CAAC,CAAC,cAAc,CAAC,OAAO;IACxB,CAAC,CAAC,cAAc,CAAA;AAExB,OAAO,YAAY,MAAM,kCAAkC,CAAA;AAC3D,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAEhD,OAAO,QAAQ,MAAM,sBAAsB,CAAA;AAC3C,OAAO,OAAO,MAAM,qBAAqB,CAAA;AAGzC,eAAe,YAAY,CAAC;IACxB,cAAc;IACd;QACI,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,OAAO,EAAE;YACL,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;SACjB;QACD,eAAe,EAAE;YACb,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE;gBACL,GAAG,OAAO,CAAC,OAAO;gBAClB,GAAG,OAAO,CAAC,IAAI;gBACf,GAAG,OAAO,CAAC,IAAI;aAClB;SACJ;QACD,KAAK,EAAE;YACH,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,OAAO;YACjB,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YACvC,oBAAoB,EAAE,OAAO;YAC7B,kBAAkB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE;YACN,KAAK,EAAE;gBACH,OAAO,EAAE,QAAQ;aACpB;SACJ;KACJ;IACD;QACI,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC9B,OAAO,EAAE;YACL,oBAAoB,EAAE,YAAY;SACrC;QACD,eAAe,EAAE;YACb,MAAM,EAAE,QAAQ;SACnB;QACD,KAAK,EAAE;YACH,mCAAmC,EAAE;gBACjC,OAAO;gBACP;oBACI,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,IAAI;oBACvB,yBAAyB,EAAE,IAAI;iBAClC;aACJ;YACD,uCAAuC,EAAE,CAAC;YAC1C,+DAA+D;YAC/D,kEAAkE;YAClE,kCAAkC,EAAE,CAAC;YACrC,sCAAsC,EAAE,CAAC;YACzC,kDAAkD,EAAE,CAAC;YACrD,oCAAoC,EAAE,CAAC;SAC1C;KACJ;IACD;QACI,KAAK,EAAE,CAAC,MAAM,CAAC;QACf,OAAO,EAAE;YACL,oBAAoB,EAAE,YAAY;SACrC;QACD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;KACvC;CACJ,CAAC,CAAA"}