catlint 1.2.1 → 2.0.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/cjs/cli/commands/init.d.ts +1 -0
- package/dist/cjs/cli/commands/lint.d.ts +1 -0
- package/dist/cjs/cli/index.d.ts +2 -0
- package/dist/cjs/config/api/defineConfig.d.ts +2 -0
- package/dist/cjs/config/api/loadConfig.d.ts +3 -0
- package/dist/cjs/config/index.d.ts +3 -0
- package/dist/cjs/config/types/config.d.ts +17 -0
- package/dist/cjs/config/types/configAdapter.d.ts +2 -0
- package/dist/cjs/core/api/index.d.ts +3 -0
- package/dist/cjs/core/api/lintProject.d.ts +2 -0
- package/dist/cjs/core/api/linter.d.ts +5 -0
- package/dist/cjs/core/index.d.ts +2 -0
- package/dist/cjs/core/models/index.d.ts +1 -0
- package/dist/cjs/core/models/lintResult/index.d.ts +1 -0
- package/dist/cjs/core/models/lintResult/model.d.ts +7 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/ir/index.d.ts +1 -0
- package/dist/cjs/ir/models/File.d.ts +6 -0
- package/dist/cjs/ir/models/IRParser.d.ts +2 -0
- package/dist/cjs/ir/models/Node.d.ts +13 -0
- package/dist/cjs/ir/models/index.d.ts +3 -0
- package/dist/cjs/rules/helpers/defaultAdapter.d.ts +9 -0
- package/dist/cjs/rules/index.d.ts +1 -0
- package/dist/cjs/rules/models/index.d.ts +2 -0
- package/dist/cjs/rules/models/message/index.d.ts +1 -0
- package/dist/cjs/rules/models/message/model.d.ts +10 -0
- package/dist/cjs/rules/models/rule/index.d.ts +2 -0
- package/dist/cjs/rules/models/rule/model.d.ts +12 -0
- package/dist/cjs/rules/models/rule/service.d.ts +2 -0
- package/dist/cjs/shared/pattern/loadFiles.d.ts +1 -0
- package/dist/esm/cli/commands/init.d.ts +1 -0
- package/dist/esm/cli/commands/init.js +18 -0
- package/dist/esm/cli/commands/lint.d.ts +1 -0
- package/dist/esm/cli/commands/lint.js +6 -0
- package/dist/esm/cli/index.d.ts +2 -0
- package/dist/esm/cli/index.js +15 -0
- package/dist/esm/config/api/defineConfig.d.ts +2 -0
- package/dist/esm/config/api/defineConfig.js +8 -0
- package/dist/esm/config/api/loadConfig.d.ts +3 -0
- package/dist/esm/config/api/loadConfig.js +22 -0
- package/dist/esm/config/index.d.ts +3 -0
- package/dist/esm/config/index.js +3 -0
- package/dist/esm/config/types/config.d.ts +17 -0
- package/dist/esm/config/types/config.js +8 -0
- package/dist/esm/config/types/configAdapter.d.ts +2 -0
- package/dist/esm/config/types/configAdapter.js +8 -0
- package/dist/esm/core/api/index.d.ts +3 -0
- package/dist/esm/core/api/index.js +3 -0
- package/dist/esm/core/api/lintProject.d.ts +2 -0
- package/dist/esm/core/api/lintProject.js +16 -0
- package/dist/esm/core/api/linter.d.ts +5 -0
- package/dist/esm/core/api/linter.js +15 -0
- package/dist/esm/core/index.d.ts +2 -0
- package/dist/esm/core/index.js +2 -0
- package/dist/esm/core/models/index.d.ts +1 -0
- package/dist/esm/core/models/index.js +1 -0
- package/dist/esm/core/models/lintResult/index.d.ts +1 -0
- package/dist/esm/core/models/lintResult/index.js +1 -0
- package/dist/esm/core/models/lintResult/model.d.ts +7 -0
- package/dist/esm/core/models/lintResult/model.js +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/ir/index.d.ts +1 -0
- package/dist/esm/ir/index.js +1 -0
- package/dist/esm/ir/models/File.d.ts +6 -0
- package/dist/esm/ir/models/File.js +1 -0
- package/dist/esm/ir/models/IRParser.d.ts +2 -0
- package/dist/esm/ir/models/IRParser.js +1 -0
- package/dist/esm/ir/models/Node.d.ts +13 -0
- package/dist/esm/ir/models/Node.js +8 -0
- package/dist/esm/ir/models/index.d.ts +3 -0
- package/dist/esm/ir/models/index.js +3 -0
- package/dist/esm/rules/helpers/defaultAdapter.d.ts +9 -0
- package/dist/esm/rules/helpers/defaultAdapter.js +16 -0
- package/dist/esm/rules/index.d.ts +1 -0
- package/dist/esm/rules/index.js +1 -0
- package/dist/esm/rules/models/index.d.ts +2 -0
- package/dist/esm/rules/models/index.js +2 -0
- package/dist/esm/rules/models/message/index.d.ts +1 -0
- package/dist/esm/rules/models/message/index.js +1 -0
- package/dist/esm/rules/models/message/model.d.ts +10 -0
- package/dist/esm/rules/models/message/model.js +6 -0
- package/dist/esm/rules/models/rule/index.d.ts +2 -0
- package/dist/esm/rules/models/rule/index.js +2 -0
- package/dist/esm/rules/models/rule/model.d.ts +12 -0
- package/dist/esm/rules/models/rule/model.js +1 -0
- package/dist/esm/rules/models/rule/service.d.ts +2 -0
- package/dist/esm/rules/models/rule/service.js +9 -0
- package/dist/esm/shared/pattern/loadFiles.d.ts +1 -0
- package/dist/esm/shared/pattern/loadFiles.js +6 -0
- package/dist/types/cli/commands/init.d.ts +1 -0
- package/dist/types/cli/commands/lint.d.ts +1 -0
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/config/api/defineConfig.d.ts +2 -0
- package/dist/types/config/api/loadConfig.d.ts +3 -0
- package/dist/types/config/index.d.ts +3 -0
- package/dist/types/config/types/config.d.ts +17 -0
- package/dist/types/config/types/configAdapter.d.ts +2 -0
- package/dist/types/core/api/index.d.ts +3 -0
- package/dist/types/core/api/lintProject.d.ts +2 -0
- package/dist/types/core/api/linter.d.ts +5 -0
- package/dist/types/core/index.d.ts +2 -0
- package/dist/types/core/models/index.d.ts +1 -0
- package/dist/types/core/models/lintResult/index.d.ts +1 -0
- package/dist/types/core/models/lintResult/model.d.ts +7 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/ir/index.d.ts +1 -0
- package/dist/types/ir/models/File.d.ts +6 -0
- package/dist/types/ir/models/IRParser.d.ts +2 -0
- package/dist/types/ir/models/Node.d.ts +13 -0
- package/dist/types/ir/models/index.d.ts +3 -0
- package/dist/types/rules/helpers/defaultAdapter.d.ts +9 -0
- package/dist/types/rules/index.d.ts +1 -0
- package/dist/types/rules/models/index.d.ts +2 -0
- package/dist/types/rules/models/message/index.d.ts +1 -0
- package/dist/types/rules/models/message/model.d.ts +10 -0
- package/dist/types/rules/models/rule/index.d.ts +2 -0
- package/dist/types/rules/models/rule/model.d.ts +12 -0
- package/dist/types/rules/models/rule/service.d.ts +2 -0
- package/dist/types/shared/pattern/loadFiles.d.ts +1 -0
- package/package.json +40 -15
- package/src/cli/commands/init.ts +1 -1
- package/src/config/api/loadConfig.ts +1 -1
- package/src/core/api/lintProject.ts +1 -1
- package/tsconfig.build.json +9 -0
- package/tsconfig.cjs.json +11 -0
- package/tsconfig.esm.json +11 -0
- package/tsconfig.json +3 -2
- package/dist/chunk-XMKWAQ3V.js +0 -4934
- package/dist/cli/index.cjs +0 -27896
- package/dist/cli/index.js +0 -22995
- package/dist/index.cjs +0 -4976
- package/dist/index.js +0 -50
- package/legacy/group/model.ts +0 -6
- package/legacy/group/service.ts +0 -13
- package/legacy/shared/yagni/index.ts +0 -4
- package/legacy/shared/yagni/noUnusedFeatures/index.ts +0 -4
- package/legacy/shared/yagni/noUnusedFeatures/main.ts +0 -10
- package/legacy/shared/yagni/noUnusedFeatures/noUnusedClasses.ts +0 -26
- package/legacy/shared/yagni/noUnusedFeatures/noUnusedFunctions.ts +0 -26
- package/legacy/shared/yagni/noUnusedFeatures/noUnusedVariables.ts +0 -26
- package/legacy/shared/yagni/utils.ts +0 -5
- package/tsup.config.ts +0 -13
package/dist/index.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
defaultConfig,
|
|
3
|
-
defineConfig,
|
|
4
|
-
lintFile,
|
|
5
|
-
lintProject,
|
|
6
|
-
loadConfig,
|
|
7
|
-
loadConfigFromFile,
|
|
8
|
-
travelFile
|
|
9
|
-
} from "./chunk-XMKWAQ3V.js";
|
|
10
|
-
|
|
11
|
-
// src/ir/models/Node.ts
|
|
12
|
-
var IRKind = /* @__PURE__ */ ((IRKind2) => {
|
|
13
|
-
IRKind2[IRKind2["Codeline"] = 0] = "Codeline";
|
|
14
|
-
IRKind2[IRKind2["Literal"] = 1] = "Literal";
|
|
15
|
-
IRKind2[IRKind2["Function"] = 2] = "Function";
|
|
16
|
-
IRKind2[IRKind2["Class"] = 3] = "Class";
|
|
17
|
-
IRKind2[IRKind2["Variable"] = 4] = "Variable";
|
|
18
|
-
return IRKind2;
|
|
19
|
-
})(IRKind || {});
|
|
20
|
-
|
|
21
|
-
// src/rules/models/rule/service.ts
|
|
22
|
-
var createRule = (name, fn) => {
|
|
23
|
-
const subrules = [];
|
|
24
|
-
const ruleFn = fn((subrule) => subrules.push(subrule));
|
|
25
|
-
return {
|
|
26
|
-
name,
|
|
27
|
-
fn: ruleFn,
|
|
28
|
-
subrules
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// src/rules/models/message/model.ts
|
|
33
|
-
var Level = /* @__PURE__ */ ((Level2) => {
|
|
34
|
-
Level2["Error"] = "ERROR";
|
|
35
|
-
Level2["Warning"] = "WARNING";
|
|
36
|
-
Level2["Info"] = "INFO";
|
|
37
|
-
return Level2;
|
|
38
|
-
})(Level || {});
|
|
39
|
-
export {
|
|
40
|
-
IRKind,
|
|
41
|
-
Level,
|
|
42
|
-
createRule,
|
|
43
|
-
defaultConfig,
|
|
44
|
-
defineConfig,
|
|
45
|
-
lintFile,
|
|
46
|
-
lintProject,
|
|
47
|
-
loadConfig,
|
|
48
|
-
loadConfigFromFile,
|
|
49
|
-
travelFile
|
|
50
|
-
};
|
package/legacy/group/model.ts
DELETED
package/legacy/group/service.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Rule } from '@rules/$/models/rule/model';
|
|
2
|
-
import type { Group } from './model';
|
|
3
|
-
|
|
4
|
-
export const createGroup = (
|
|
5
|
-
name: string,
|
|
6
|
-
method: (push: (rule: Rule) => void, subgroup: (group: Group) => void) => void,
|
|
7
|
-
): Group => {
|
|
8
|
-
const rules: Rule[] = [];
|
|
9
|
-
const push = (rule: Rule) => rules.push(rule);
|
|
10
|
-
const subgroup = (group: Group) => group.rules.forEach(push);
|
|
11
|
-
method(push, subgroup);
|
|
12
|
-
return { name, rules };
|
|
13
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { noUnusedClasses } from './noUnusedClasses';
|
|
2
|
-
import { noUnusedFunctions } from './noUnusedFunctions';
|
|
3
|
-
import { noUnusedVariables } from './noUnusedVariables';
|
|
4
|
-
import { createRule } from '@rules/models/rule/service';
|
|
5
|
-
|
|
6
|
-
export const noUnusedFeatures = createRule('No unused features', () => [], [
|
|
7
|
-
noUnusedVariables,
|
|
8
|
-
noUnusedFunctions,
|
|
9
|
-
noUnusedClasses,
|
|
10
|
-
]);
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { IRKind } from '@ir/models/Node';
|
|
2
|
-
import { Level, type Message } from '@rules/models/message/model';
|
|
3
|
-
import type { Rule } from '@rules/models/rule/model';
|
|
4
|
-
import { flattenNodes } from '../utils';
|
|
5
|
-
import { createRule } from '@rules/models/rule/service';
|
|
6
|
-
|
|
7
|
-
export const noUnusedClasses: Rule = createRule('No unused classes', (file) => {
|
|
8
|
-
const messages: Message[] = [];
|
|
9
|
-
const allNodes = flattenNodes(file.program);
|
|
10
|
-
const declaredClasses = allNodes.filter((n) => n.kind === IRKind.Class);
|
|
11
|
-
const referencedNames = new Set(
|
|
12
|
-
allNodes.filter((n) => n.kind !== IRKind.Class).map((n) => n.name),
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
for (const cls of declaredClasses) {
|
|
16
|
-
if (!referencedNames.has(cls.name)) {
|
|
17
|
-
messages.push({
|
|
18
|
-
message: `Class '${cls.name}' is declared but never used.`,
|
|
19
|
-
line: cls.line,
|
|
20
|
-
level: Level.Error,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return messages;
|
|
26
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { IRKind } from '@ir/models/Node';
|
|
2
|
-
import { Level, type Message } from '@rules/models/message/model';
|
|
3
|
-
import type { Rule } from '@rules/models/rule/model';
|
|
4
|
-
import { flattenNodes } from '../utils';
|
|
5
|
-
import { createRule } from '@rules/models/rule/service';
|
|
6
|
-
|
|
7
|
-
export const noUnusedFunctions: Rule = createRule('No unused functions', (file) => {
|
|
8
|
-
const messages: Message[] = [];
|
|
9
|
-
const allNodes = flattenNodes(file.program);
|
|
10
|
-
const declaredFunctions = allNodes.filter((n) => n.kind === IRKind.Function);
|
|
11
|
-
const referencedNames = new Set(
|
|
12
|
-
allNodes.filter((n) => n.kind !== IRKind.Function).map((n) => n.name),
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
for (const fn of declaredFunctions) {
|
|
16
|
-
if (!referencedNames.has(fn.name)) {
|
|
17
|
-
messages.push({
|
|
18
|
-
message: `Function '${fn.name}' is declared but never called.`,
|
|
19
|
-
line: fn.line,
|
|
20
|
-
level: Level.Error,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return messages;
|
|
26
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { IRKind } from '@ir/models/Node';
|
|
2
|
-
import { Level, type Message } from '@rules/models/message/model';
|
|
3
|
-
import type { Rule } from '@rules/models/rule/model';
|
|
4
|
-
import { flattenNodes } from '../utils';
|
|
5
|
-
import { createRule } from '@rules/models/rule/service';
|
|
6
|
-
|
|
7
|
-
export const noUnusedVariables: Rule = createRule('No unused variables', (file) => {
|
|
8
|
-
const messages: Message[] = [];
|
|
9
|
-
const allNodes = flattenNodes(file.program);
|
|
10
|
-
const declaredVariables = allNodes.filter((n) => n.kind === IRKind.Variable);
|
|
11
|
-
const referencedNames = new Set(
|
|
12
|
-
allNodes.filter((n) => n.kind !== IRKind.Variable).map((n) => n.name),
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
for (const variable of declaredVariables) {
|
|
16
|
-
if (!referencedNames.has(variable.name)) {
|
|
17
|
-
messages.push({
|
|
18
|
-
message: `Variable '${variable.name}' is declared but never used.`,
|
|
19
|
-
line: variable.line,
|
|
20
|
-
level: Level.Error,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return messages;
|
|
26
|
-
});
|
package/tsup.config.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'tsup';
|
|
2
|
-
|
|
3
|
-
export default defineConfig({
|
|
4
|
-
entry: ['src/index.ts', 'src/cli/index.ts'],
|
|
5
|
-
format: ['esm', 'cjs'],
|
|
6
|
-
dts: true,
|
|
7
|
-
clean: true,
|
|
8
|
-
esbuildOptions(options) {
|
|
9
|
-
options.alias = {
|
|
10
|
-
src: './src',
|
|
11
|
-
};
|
|
12
|
-
},
|
|
13
|
-
});
|