@matrixai/lint 0.1.0 → 0.2.0
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.
- package/dist/bin/lint.js +45 -36
- package/dist/bin/lint.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.js +27 -12
- package/dist/utils.js.map +1 -1
- package/package.json +7 -5
package/dist/bin/lint.js
CHANGED
|
@@ -4,32 +4,30 @@ import path from 'node:path';
|
|
|
4
4
|
import process from 'node:process';
|
|
5
5
|
import childProcess from 'node:child_process';
|
|
6
6
|
import fs from 'node:fs';
|
|
7
|
+
import { Command } from 'commander';
|
|
7
8
|
import * as utils from '../utils.js';
|
|
8
9
|
const platform = os.platform();
|
|
10
|
+
const program = new Command();
|
|
11
|
+
const DEFAULT_SHELLCHECK_SEARCH_ROOTS = ['./src', './scripts', './tests'];
|
|
12
|
+
program
|
|
13
|
+
.name('matrixai-lint')
|
|
14
|
+
.description('Lint source files, scripts, and markdown with configured rules.')
|
|
15
|
+
.option('-f, --fix', 'Automatically fix problems')
|
|
16
|
+
.option('--user-config', 'Use user-provided ESLint config instead of built-in one')
|
|
17
|
+
.option('--config <path>', 'Path to explicit ESLint config file')
|
|
18
|
+
.option('--eslint <pat...>', 'Glob(s) to pass to ESLint')
|
|
19
|
+
.option('--shell <pat...>', 'Glob(s) to pass to shell-check')
|
|
20
|
+
.allowUnknownOption(true); // Optional: force rejection of unknown flags
|
|
9
21
|
/* eslint-disable no-console */
|
|
10
22
|
async function main(argv = process.argv) {
|
|
11
|
-
|
|
23
|
+
await program.parseAsync(argv);
|
|
24
|
+
const options = program.opts();
|
|
25
|
+
const fix = Boolean(options.fix);
|
|
26
|
+
const useUserConfig = Boolean(options.userConfig);
|
|
27
|
+
const explicitConfigPath = options.config;
|
|
28
|
+
const eslintPatterns = options.eslint;
|
|
29
|
+
const shellPatterns = options.shell;
|
|
12
30
|
let hadFailure = false;
|
|
13
|
-
let fix = false;
|
|
14
|
-
let useUserConfig = false;
|
|
15
|
-
let explicitConfigPath;
|
|
16
|
-
const restArgs = [];
|
|
17
|
-
while (argv.length > 0) {
|
|
18
|
-
const option = argv.shift();
|
|
19
|
-
switch (option) {
|
|
20
|
-
case '--fix':
|
|
21
|
-
fix = true;
|
|
22
|
-
break;
|
|
23
|
-
case '--user-config':
|
|
24
|
-
useUserConfig = true;
|
|
25
|
-
break;
|
|
26
|
-
case '--config':
|
|
27
|
-
explicitConfigPath = argv.shift(); // Grab the next token
|
|
28
|
-
break;
|
|
29
|
-
default:
|
|
30
|
-
restArgs.push(option);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
31
|
// Resolve which config file to use
|
|
34
32
|
let chosenConfig;
|
|
35
33
|
if (explicitConfigPath !== undefined) {
|
|
@@ -47,16 +45,22 @@ async function main(argv = process.argv) {
|
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
47
|
try {
|
|
50
|
-
await utils.runESLint({
|
|
48
|
+
await utils.runESLint({
|
|
49
|
+
fix,
|
|
50
|
+
configPath: chosenConfig,
|
|
51
|
+
explicitGlobs: eslintPatterns,
|
|
52
|
+
});
|
|
51
53
|
}
|
|
52
54
|
catch (err) {
|
|
53
55
|
console.error(`ESLint failed: \n${err}`);
|
|
54
56
|
hadFailure = true;
|
|
55
57
|
}
|
|
58
|
+
const searchRoots = (shellPatterns?.length ? shellPatterns : DEFAULT_SHELLCHECK_SEARCH_ROOTS)
|
|
59
|
+
.map((p) => path.resolve(process.cwd(), p))
|
|
60
|
+
.filter((p) => fs.existsSync(p));
|
|
56
61
|
// Linting shell scripts (this does not have auto-fixing)
|
|
57
62
|
const shellCheckArgs = [
|
|
58
|
-
|
|
59
|
-
'./scripts',
|
|
63
|
+
...searchRoots,
|
|
60
64
|
'-type',
|
|
61
65
|
'f',
|
|
62
66
|
'-regextype',
|
|
@@ -70,19 +74,24 @@ async function main(argv = process.argv) {
|
|
|
70
74
|
];
|
|
71
75
|
if (utils.commandExists('find') && utils.commandExists('shellcheck')) {
|
|
72
76
|
console.error('Running shellcheck:');
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
childProcess.execFileSync('find', shellCheckArgs, {
|
|
76
|
-
stdio: ['inherit', 'inherit', 'inherit'],
|
|
77
|
-
windowsHide: true,
|
|
78
|
-
encoding: 'utf-8',
|
|
79
|
-
shell: platform === 'win32' ? true : false,
|
|
80
|
-
cwd: process.cwd(),
|
|
81
|
-
});
|
|
77
|
+
if (searchRoots.length === 0) {
|
|
78
|
+
console.warn('No search roots found for shellcheck. Skipping shellcheck.');
|
|
82
79
|
}
|
|
83
|
-
|
|
84
|
-
console.error('
|
|
85
|
-
|
|
80
|
+
else {
|
|
81
|
+
console.error(' ' + ['find', ...shellCheckArgs].join(' '));
|
|
82
|
+
try {
|
|
83
|
+
childProcess.execFileSync('find', shellCheckArgs, {
|
|
84
|
+
stdio: ['inherit', 'inherit', 'inherit'],
|
|
85
|
+
windowsHide: true,
|
|
86
|
+
encoding: 'utf-8',
|
|
87
|
+
shell: platform === 'win32' ? true : false,
|
|
88
|
+
cwd: process.cwd(),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
console.error('Shellcheck failed. ' + err);
|
|
93
|
+
hadFailure = true;
|
|
94
|
+
}
|
|
86
95
|
}
|
|
87
96
|
}
|
|
88
97
|
else {
|
package/dist/bin/lint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/bin/lint.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/bin/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,4 +6,11 @@ type RawMatrixCfg = Partial<{
|
|
|
6
6
|
tsconfigPaths: unknown;
|
|
7
7
|
forceInclude: unknown;
|
|
8
8
|
}>;
|
|
9
|
-
|
|
9
|
+
type CLIOptions = {
|
|
10
|
+
fix: boolean;
|
|
11
|
+
userConfig: boolean;
|
|
12
|
+
config?: string;
|
|
13
|
+
eslint?: string[];
|
|
14
|
+
shell?: string[];
|
|
15
|
+
};
|
|
16
|
+
export type { MatrixAILintCfg, RawMatrixCfg, CLIOptions };
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { MatrixAILintCfg } from './types.js';
|
|
2
|
-
declare function runESLint({ fix, configPath, }: {
|
|
2
|
+
declare function runESLint({ fix, configPath, explicitGlobs, }: {
|
|
3
3
|
fix: boolean;
|
|
4
4
|
configPath?: string;
|
|
5
|
+
explicitGlobs?: string[];
|
|
5
6
|
}): Promise<void>;
|
|
6
7
|
/**
|
|
7
8
|
* Find the user's ESLint config file in the current working directory.
|
package/dist/utils.js
CHANGED
|
@@ -6,36 +6,51 @@ import url from 'node:url';
|
|
|
6
6
|
import ts from 'typescript';
|
|
7
7
|
import { ESLint } from 'eslint';
|
|
8
8
|
/* eslint-disable no-console */
|
|
9
|
-
async function runESLint({ fix, configPath, }) {
|
|
9
|
+
async function runESLint({ fix, configPath, explicitGlobs, }) {
|
|
10
10
|
const dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
11
11
|
const defaultConfigPath = path.resolve(dirname, './configs/js.js');
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
// PATH A – user supplied explicit globs
|
|
13
|
+
if (explicitGlobs?.length) {
|
|
14
|
+
console.log('Linting with explicit patterns:');
|
|
15
|
+
explicitGlobs.forEach((g) => console.log(' ' + g));
|
|
16
|
+
const eslint = new ESLint({
|
|
17
|
+
overrideConfigFile: configPath || defaultConfigPath,
|
|
18
|
+
fix,
|
|
19
|
+
errorOnUnmatchedPattern: false,
|
|
20
|
+
warnIgnored: false,
|
|
21
|
+
ignorePatterns: [], // Trust caller entirely
|
|
22
|
+
});
|
|
23
|
+
await lintAndReport(eslint, explicitGlobs, fix);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
// PATH B – default behaviour (tsconfig + matrix config)
|
|
27
|
+
const { forceInclude, tsconfigPaths } = resolveMatrixConfig();
|
|
15
28
|
if (tsconfigPaths.length === 0) {
|
|
16
29
|
console.error('[matrixai-lint] ⚠ No tsconfig.json files found.');
|
|
17
30
|
}
|
|
18
31
|
console.log(`Found ${tsconfigPaths.length} tsconfig.json files:`);
|
|
19
|
-
tsconfigPaths.forEach((
|
|
20
|
-
const { files:
|
|
32
|
+
tsconfigPaths.forEach((p) => console.log(' ' + p));
|
|
33
|
+
const { files: patterns, ignore: ignorePats } = buildPatterns(tsconfigPaths[0], forceInclude);
|
|
21
34
|
console.log('Linting files:');
|
|
22
|
-
|
|
35
|
+
patterns.forEach((p) => console.log(' ' + p));
|
|
23
36
|
const eslint = new ESLint({
|
|
24
37
|
overrideConfigFile: configPath || defaultConfigPath,
|
|
25
38
|
fix,
|
|
26
39
|
errorOnUnmatchedPattern: false,
|
|
27
40
|
warnIgnored: false,
|
|
28
|
-
ignorePatterns:
|
|
41
|
+
ignorePatterns: ignorePats,
|
|
29
42
|
});
|
|
30
|
-
|
|
43
|
+
await lintAndReport(eslint, patterns, fix);
|
|
44
|
+
}
|
|
45
|
+
async function lintAndReport(eslint, patterns, fix) {
|
|
46
|
+
const results = await eslint.lintFiles(patterns);
|
|
31
47
|
if (fix) {
|
|
32
48
|
await ESLint.outputFixes(results);
|
|
33
49
|
}
|
|
34
50
|
const formatter = await eslint.loadFormatter('stylish');
|
|
35
|
-
|
|
36
|
-
console.log(resultText);
|
|
37
|
-
/* eslint-enable no-console */
|
|
51
|
+
console.log(formatter.format(results));
|
|
38
52
|
}
|
|
53
|
+
/* eslint-enable no-console */
|
|
39
54
|
/**
|
|
40
55
|
* Find the user's ESLint config file in the current working directory.
|
|
41
56
|
* It looks for the following files:
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,+BAA+B;AAC/B,KAAK,UAAU,SAAS,CAAC,EACvB,GAAG,EACH,UAAU,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matrixai/lint",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"author": "Roger Qiu",
|
|
5
5
|
"description": "Org wide custom eslint rules",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"build": "shx rm -rf ./dist && tsc -p ./tsconfig.build.json && shx chmod +x dist/bin/lint.js",
|
|
27
27
|
"postversion": "npm install --package-lock-only --ignore-scripts --silent",
|
|
28
28
|
"tsx": "tsx",
|
|
29
|
-
"lint": "test -f ./dist/bin/lint.js || npm run build && ./dist/bin/lint.js",
|
|
30
|
-
"lintfix": "sh -c 'test -f ./dist/bin/lint.js || npm run build && ./dist/bin/lint.js --fix'",
|
|
29
|
+
"lint": "test -f ./dist/bin/lint.js || npm run build && ./dist/bin/lint.js --eslint \"{src,scripts,tests}/**/*.{js,mjs,ts,mts,jsx,tsx}\" --shell src scripts tests",
|
|
30
|
+
"lintfix": "sh -c 'test -f ./dist/bin/lint.js || npm run build && ./dist/bin/lint.js --fix --eslint \"{src,scripts,tests}/**/*.{js,mjs,ts,mts,jsx,tsx}\"' --shell src scripts tests",
|
|
31
31
|
"lint-shell": "find ./src ./tests ./scripts -type f -regextype posix-extended -regex '.*\\.(sh)' -exec shellcheck {} +",
|
|
32
32
|
"docs": "shx rm -rf ./docs && typedoc --entryPointStrategy expand --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src",
|
|
33
33
|
"test": "node ./scripts/test.mjs"
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"@typescript-eslint/eslint-plugin": "^8.27.0",
|
|
39
39
|
"@typescript-eslint/parser": "^8.27.0",
|
|
40
40
|
"@typescript-eslint/utils": "^8.26.1",
|
|
41
|
-
"eslint": "
|
|
41
|
+
"eslint": ">=9.0.0",
|
|
42
42
|
"eslint-config-prettier": "^9.1.0",
|
|
43
43
|
"eslint-plugin-import": "^2.31.0",
|
|
44
|
-
"eslint-plugin-prettier": "^5.2.1",
|
|
45
44
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
45
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
46
46
|
"eslint-plugin-react": "^7.37.4",
|
|
47
47
|
"eslint-plugin-react-hooks": "^5.1.0",
|
|
48
48
|
"eslint-plugin-tailwindcss": "^3.18.0"
|
|
@@ -52,9 +52,11 @@
|
|
|
52
52
|
"@swc/jest": "^0.2.29",
|
|
53
53
|
"@types/jest": "^29.5.2",
|
|
54
54
|
"@types/node": "^20.5.7",
|
|
55
|
+
"commander": "^13.1.0",
|
|
55
56
|
"jest": "^29.6.2",
|
|
56
57
|
"jest-extended": "^4.0.2",
|
|
57
58
|
"jest-junit": "^16.0.0",
|
|
59
|
+
"minimatch": "^10.0.1",
|
|
58
60
|
"prettier": "^3.0.0",
|
|
59
61
|
"shx": "^0.3.4",
|
|
60
62
|
"tsconfig-paths": "^3.9.0",
|