oxlint-plugin-arch 0.8.0 → 0.9.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/CHANGELOG.md +4 -0
- package/dist/presets/index.js +4 -3
- package/dist/presets/next-react-modules-preset.js +4 -3
- package/dist/presets/react-modules-preset.js +4 -3
- package/dist/presets/tanstack-start-react-modules-preset.js +4 -3
- package/dist/types/preset.types.d.ts +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
- Add `limits.maxTypeFileLines` (default `1000`): the preset applies this `max-lines` limit to `*.types.ts` files in app roots instead of `limits.maxFileLines`. Other files keep `maxFileLines`.
|
|
6
|
+
|
|
3
7
|
## 0.8.0
|
|
4
8
|
|
|
5
9
|
- Add `tests.mocking` to choose which test-double APIs the preset bans in test files: `'modules'` (default, unchanged) or `'strict'`, which also bans `spyOn`, `stubGlobal` and `stubEnv` outside `*.driver.test.ts` and asks for a fake driver. The object form adds `deny` API patterns and per-file `allow` exceptions.
|
package/dist/presets/index.js
CHANGED
|
@@ -1539,9 +1539,10 @@ function presetResolveContext(options) {
|
|
|
1539
1539
|
|
|
1540
1540
|
// src/services/preset-compose.ts
|
|
1541
1541
|
function presetCompose(context, policies, plugins) {
|
|
1542
|
-
const { options, level, safetyFiles, ui, generated } = context;
|
|
1542
|
+
const { options, level, app, safetyFiles, ui, generated } = context;
|
|
1543
1543
|
const severities = options.ruleSeverities ?? {};
|
|
1544
1544
|
const levels = (rules) => presetRuleSeverities(presetSeverity(rules, level), severities);
|
|
1545
|
+
const maxLines = (max) => levels({ "max-lines": ["error", { max, skipBlankLines: true, skipComments: true }] });
|
|
1545
1546
|
const overrideList = [];
|
|
1546
1547
|
for (const name of presetPolicyOrder) {
|
|
1547
1548
|
const setting = options.policies?.[name];
|
|
@@ -1558,9 +1559,9 @@ function presetCompose(context, policies, plugins) {
|
|
|
1558
1559
|
}
|
|
1559
1560
|
}
|
|
1560
1561
|
overrideList.push(presetOverride(safetyFiles, levels({
|
|
1561
|
-
|
|
1562
|
+
...maxLines(options.limits?.maxFileLines ?? 400),
|
|
1562
1563
|
complexity: ["error", { max: options.limits?.maxFunctionComplexity ?? 32 }]
|
|
1563
|
-
}), ui));
|
|
1564
|
+
}), ui), presetOverride(presetScopes(app, "**/*.types.ts"), maxLines(options.limits?.maxTypeFileLines ?? 1000), ui));
|
|
1564
1565
|
const named = new Set([...Object.keys(presetCommonRules), ...overrideList.flatMap((entry) => Object.keys(entry.rules ?? {}))]);
|
|
1565
1566
|
const unnamedLevels = Object.fromEntries(Object.entries(severities).filter(([rule]) => !named.has(rule)));
|
|
1566
1567
|
for (const [rule, files] of Object.entries(options.ruleExclusions ?? {})) {
|
|
@@ -1539,9 +1539,10 @@ function presetResolveContext(options) {
|
|
|
1539
1539
|
|
|
1540
1540
|
// src/services/preset-compose.ts
|
|
1541
1541
|
function presetCompose(context, policies, plugins) {
|
|
1542
|
-
const { options, level, safetyFiles, ui, generated } = context;
|
|
1542
|
+
const { options, level, app, safetyFiles, ui, generated } = context;
|
|
1543
1543
|
const severities = options.ruleSeverities ?? {};
|
|
1544
1544
|
const levels = (rules) => presetRuleSeverities(presetSeverity(rules, level), severities);
|
|
1545
|
+
const maxLines = (max) => levels({ "max-lines": ["error", { max, skipBlankLines: true, skipComments: true }] });
|
|
1545
1546
|
const overrideList = [];
|
|
1546
1547
|
for (const name of presetPolicyOrder) {
|
|
1547
1548
|
const setting = options.policies?.[name];
|
|
@@ -1558,9 +1559,9 @@ function presetCompose(context, policies, plugins) {
|
|
|
1558
1559
|
}
|
|
1559
1560
|
}
|
|
1560
1561
|
overrideList.push(presetOverride(safetyFiles, levels({
|
|
1561
|
-
|
|
1562
|
+
...maxLines(options.limits?.maxFileLines ?? 400),
|
|
1562
1563
|
complexity: ["error", { max: options.limits?.maxFunctionComplexity ?? 32 }]
|
|
1563
|
-
}), ui));
|
|
1564
|
+
}), ui), presetOverride(presetScopes(app, "**/*.types.ts"), maxLines(options.limits?.maxTypeFileLines ?? 1000), ui));
|
|
1564
1565
|
const named = new Set([...Object.keys(presetCommonRules), ...overrideList.flatMap((entry) => Object.keys(entry.rules ?? {}))]);
|
|
1565
1566
|
const unnamedLevels = Object.fromEntries(Object.entries(severities).filter(([rule]) => !named.has(rule)));
|
|
1566
1567
|
for (const [rule, files] of Object.entries(options.ruleExclusions ?? {})) {
|
|
@@ -1539,9 +1539,10 @@ function presetResolveContext(options) {
|
|
|
1539
1539
|
|
|
1540
1540
|
// src/services/preset-compose.ts
|
|
1541
1541
|
function presetCompose(context, policies, plugins) {
|
|
1542
|
-
const { options, level, safetyFiles, ui, generated } = context;
|
|
1542
|
+
const { options, level, app, safetyFiles, ui, generated } = context;
|
|
1543
1543
|
const severities = options.ruleSeverities ?? {};
|
|
1544
1544
|
const levels = (rules) => presetRuleSeverities(presetSeverity(rules, level), severities);
|
|
1545
|
+
const maxLines = (max) => levels({ "max-lines": ["error", { max, skipBlankLines: true, skipComments: true }] });
|
|
1545
1546
|
const overrideList = [];
|
|
1546
1547
|
for (const name of presetPolicyOrder) {
|
|
1547
1548
|
const setting = options.policies?.[name];
|
|
@@ -1558,9 +1559,9 @@ function presetCompose(context, policies, plugins) {
|
|
|
1558
1559
|
}
|
|
1559
1560
|
}
|
|
1560
1561
|
overrideList.push(presetOverride(safetyFiles, levels({
|
|
1561
|
-
|
|
1562
|
+
...maxLines(options.limits?.maxFileLines ?? 400),
|
|
1562
1563
|
complexity: ["error", { max: options.limits?.maxFunctionComplexity ?? 32 }]
|
|
1563
|
-
}), ui));
|
|
1564
|
+
}), ui), presetOverride(presetScopes(app, "**/*.types.ts"), maxLines(options.limits?.maxTypeFileLines ?? 1000), ui));
|
|
1564
1565
|
const named = new Set([...Object.keys(presetCommonRules), ...overrideList.flatMap((entry) => Object.keys(entry.rules ?? {}))]);
|
|
1565
1566
|
const unnamedLevels = Object.fromEntries(Object.entries(severities).filter(([rule]) => !named.has(rule)));
|
|
1566
1567
|
for (const [rule, files] of Object.entries(options.ruleExclusions ?? {})) {
|
|
@@ -1539,9 +1539,10 @@ function presetResolveContext(options) {
|
|
|
1539
1539
|
|
|
1540
1540
|
// src/services/preset-compose.ts
|
|
1541
1541
|
function presetCompose(context, policies, plugins) {
|
|
1542
|
-
const { options, level, safetyFiles, ui, generated } = context;
|
|
1542
|
+
const { options, level, app, safetyFiles, ui, generated } = context;
|
|
1543
1543
|
const severities = options.ruleSeverities ?? {};
|
|
1544
1544
|
const levels = (rules) => presetRuleSeverities(presetSeverity(rules, level), severities);
|
|
1545
|
+
const maxLines = (max) => levels({ "max-lines": ["error", { max, skipBlankLines: true, skipComments: true }] });
|
|
1545
1546
|
const overrideList = [];
|
|
1546
1547
|
for (const name of presetPolicyOrder) {
|
|
1547
1548
|
const setting = options.policies?.[name];
|
|
@@ -1558,9 +1559,9 @@ function presetCompose(context, policies, plugins) {
|
|
|
1558
1559
|
}
|
|
1559
1560
|
}
|
|
1560
1561
|
overrideList.push(presetOverride(safetyFiles, levels({
|
|
1561
|
-
|
|
1562
|
+
...maxLines(options.limits?.maxFileLines ?? 400),
|
|
1562
1563
|
complexity: ["error", { max: options.limits?.maxFunctionComplexity ?? 32 }]
|
|
1563
|
-
}), ui));
|
|
1564
|
+
}), ui), presetOverride(presetScopes(app, "**/*.types.ts"), maxLines(options.limits?.maxTypeFileLines ?? 1000), ui));
|
|
1564
1565
|
const named = new Set([...Object.keys(presetCommonRules), ...overrideList.flatMap((entry) => Object.keys(entry.rules ?? {}))]);
|
|
1565
1566
|
const unnamedLevels = Object.fromEntries(Object.entries(severities).filter(([rule]) => !named.has(rule)));
|
|
1566
1567
|
for (const [rule, files] of Object.entries(options.ruleExclusions ?? {})) {
|
|
@@ -58,6 +58,8 @@ export interface PresetFormattingOptions {
|
|
|
58
58
|
}
|
|
59
59
|
export interface PresetLimitsOptions {
|
|
60
60
|
maxFileLines?: number;
|
|
61
|
+
/** `max-lines` for `*.types.ts` files; defaults to 1000. */
|
|
62
|
+
maxTypeFileLines?: number;
|
|
61
63
|
maxFunctionComplexity?: number;
|
|
62
64
|
}
|
|
63
65
|
export interface PresetModulesOptions {
|