@jeremybarbet/oxlint-plugin 0.4.0 → 0.5.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/README.md CHANGED
@@ -41,11 +41,11 @@ Not reported:
41
41
  - Anything matching `**/*.config.*`, always. A config file is loaded by path by the tool that owns
42
42
  it, so its default export is an entry point by definition.
43
43
 
44
- | Option | Default | |
45
- | --- | --- | --- |
46
- | `unusedExports` | `true` | Report exports nothing imports. |
47
- | `missingExports` | `false` | Report files with no exports. Noisy — every spec and mock qualifies. |
48
- | `ignoreExports` | `[]` | Globs whose exports are never reported. Put your entry points here. |
44
+ | Option | Default | |
45
+ | ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
46
+ | `unusedExports` | `true` | Report exports nothing imports. |
47
+ | `missingExports` | `false` | Report files with no exports. Noisy — every spec and mock qualifies. |
48
+ | `ignoreExports` | `[]` | Globs whose exports are never reported. Put your entry points here. |
49
49
  | `ignoreDefaultExports` | `false` | Never report `export default`. Pass globs to scope it — a file-based router like expo-router loads its routes by path, so their default export is an entry point, never an import. |
50
50
 
51
51
  ```ts
@@ -64,10 +64,10 @@ Reports a binding that is exported but only ever used inside its own declaring f
64
64
  complement of `no-unused-modules`, which deliberately leaves this case alone because the two want
65
65
  opposite fixes:
66
66
 
67
- | Rule | Condition | Fix |
68
- | --- | --- | --- |
69
- | `no-unused-modules` | Nothing references the export, anywhere. | Delete the declaration. |
70
- | `no-unnecessary-export` | Only the declaring file references it. | Drop the `export` keyword. |
67
+ | Rule | Condition | Fix |
68
+ | ----------------------- | ---------------------------------------- | -------------------------- |
69
+ | `no-unused-modules` | Nothing references the export, anywhere. | Delete the declaration. |
70
+ | `no-unnecessary-export` | Only the declaring file references it. | Drop the `export` keyword. |
71
71
 
72
72
  The two never both fire on one name. Together they mean an export is either imported somewhere or
73
73
  reported.
@@ -81,10 +81,10 @@ import, so the fix is offered as an editor suggestion and `--fix` leaves the fil
81
81
  `export const x = …` gets one: a specifier list drops an entry rather than the keyword, and a
82
82
  destructured or multi-declarator export may still have an imported sibling.
83
83
 
84
- | Option | Default | |
85
- | --- | --- | --- |
86
- | `includeTypes` | `false` | Also report type-only exports. |
87
- | `ignoreExports` | `[]` | Globs whose exports are never reported. |
84
+ | Option | Default | |
85
+ | --------------- | ------- | --------------------------------------- |
86
+ | `includeTypes` | `false` | Also report type-only exports. |
87
+ | `ignoreExports` | `[]` | Globs whose exports are never reported. |
88
88
 
89
89
  ```ts
90
90
  'op/no-unnecessary-export': 'error',
@@ -95,7 +95,7 @@ destructured or multi-declarator export may still have an imported sibling.
95
95
  Reports public class members that nothing outside the declaring file references.
96
96
 
97
97
  This is the gap that motivated the package. `knip` analyses module-level exports only, so an
98
- exported class that *is* used hides its entire body from it; `tsc`'s `noUnusedLocals` covers
98
+ exported class that _is_ used hides its entire body from it; `tsc`'s `noUnusedLocals` covers
99
99
  `private` members alone. In a codebase where most logic lives on service and controller classes,
100
100
  that leaves most of the code unchecked.
101
101
 
@@ -112,11 +112,11 @@ Not reported:
112
112
  polymorphically by a base class or by whatever holds the interface.
113
113
  - Members referenced only from test files (mirrors `knip --production`).
114
114
 
115
- | Option | Default | |
116
- | --- | --- | --- |
117
- | `ignoreNames` | framework lifecycle hooks | Member names never reported. |
118
- | `ignoreUsagesIn` | specs, mocks, `src/test/**` | Globs whose references do not count as usage. |
119
- | `reportPrivateCandidates` | `false` | Also report members used *only* inside their own file, suggesting `private`. Off by default: those are a refactor prompt, not dead code. |
115
+ | Option | Default | |
116
+ | ------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
117
+ | `ignoreNames` | framework lifecycle hooks | Member names never reported. |
118
+ | `ignoreUsagesIn` | specs, mocks, `src/test/**` | Globs whose references do not count as usage. |
119
+ | `reportPrivateCandidates` | `false` | Also report members used _only_ inside their own file, suggesting `private`. Off by default: those are a refactor prompt, not dead code. |
120
120
 
121
121
  ### `no-export-all`
122
122
 
@@ -125,7 +125,8 @@ Disallows `export *`, which defeats tree-shaking and invites name clashes.
125
125
  ### `no-unused-styles`
126
126
 
127
127
  React Native. Reports entries in a `StyleSheet.create` object that nothing consumes. Understands the
128
- plain object form and both function forms `react-native-unistyles` uses.
128
+ plain object form and both function forms `react-native-unistyles` uses, and counts reads of the styles
129
+ `useVariants` returns.
129
130
 
130
131
  ### `require-cache-control`
131
132
 
@@ -46,6 +46,7 @@ const rule = {
46
46
  create(context) {
47
47
  const styleSheets = new Map();
48
48
  const usages = [];
49
+ const aliases = new Map();
49
50
  return {
50
51
  // Collect every member expression up front — the stylesheet it refers to may not have been
51
52
  // visited yet, so matching is deferred to `Program:exit`.
@@ -78,6 +79,10 @@ const rule = {
78
79
  styleSheets.set(variableName, { node: stylesNode, styles: new Set(styles) });
79
80
  }
80
81
  },
82
+ // `const variantStyles = styles.useVariants({ size })`
83
+ 'VariableDeclarator[id.type="Identifier"][init.callee.object.type="Identifier"][init.callee.property.name="useVariants"]'(node) {
84
+ aliases.set(node.id.name, node.init.callee.object.name);
85
+ },
81
86
  // `const { container } = styles`
82
87
  VariableDeclarator(node) {
83
88
  if (node.init?.type !== 'Identifier' || node.id.type !== 'ObjectPattern') {
@@ -99,17 +104,18 @@ const rule = {
99
104
  'Program:exit'() {
100
105
  const usedStyles = new Set();
101
106
  for (const { objectName, styleName } of usages) {
102
- const sheet = styleSheets.get(objectName);
107
+ const sheetName = aliases.get(objectName) ?? objectName;
108
+ const sheet = styleSheets.get(sheetName);
103
109
  if (!sheet) {
104
110
  continue;
105
111
  }
106
112
  if (styleName === ALL_STYLES) {
107
113
  for (const name of sheet.styles) {
108
- usedStyles.add(`${objectName}.${name}`);
114
+ usedStyles.add(`${sheetName}.${name}`);
109
115
  }
110
116
  }
111
117
  else {
112
- usedStyles.add(`${objectName}.${styleName}`);
118
+ usedStyles.add(`${sheetName}.${styleName}`);
113
119
  }
114
120
  }
115
121
  for (const [sheetName, sheet] of styleSheets) {
@@ -1 +1 @@
1
- {"version":3,"file":"no-unused-styles.mjs","sourceRoot":"","sources":["../../src/rules/no-unused-styles.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unused-styles.mjs","sourceRoot":"","sources":["../../src/rules/no-unused-styles.mts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,MAAM,cAAc,CAAC;AAYlE,kEAAkE;AAClE,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,MAAM,aAAa,GAAG,CAAC,MAAY,EAAY,EAAE,CAC9C,MAAM,CAAC,UAAqB;KAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,YAAY,CAAC;KAC3E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAc,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,eAAe,GAAG,CAAC,QAA0B,EAAe,EAAE;IAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC,IAAY,CAAC;IAC/B,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAI,QAAQ,CAAC,IAAI,CAAC,IAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;QAE/G,IAAI,eAAe,EAAE,QAAQ,EAAE,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC3D,OAAO,eAAe,CAAC,QAAgB,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,IAAI,GAAS;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,8EAA8E;SAC5F;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,6CAA6C;SAC3D;QACD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,MAAM;KAChB;IACD,MAAM,CAAC,OAAgB;QACrB,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;QACvD,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE1C,OAAO;YACL,2FAA2F;YAC3F,0DAA0D;YAC1D,gBAAgB,CAAC,IAAU;gBACzB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACtC,OAAO;gBACT,CAAC;gBAED,IAAI,SAAS,GAAkB,IAAI,CAAC;gBAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC1D,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAc,CAAC;gBAC3C,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5C,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAe,CAAC;gBAC5C,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAc,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,gFAAgF,CAAC,IAAU;gBACzF,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBAC9C,OAAO;gBACT,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAA0B,CAAC;gBAC/D,MAAM,UAAU,GAAG,eAAe,CAAE,IAAI,CAAC,SAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAElE,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;gBAEzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YAED,uDAAuD;YACvD,yHAAyH,CACvH,IAAU;gBAEV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAc,CAAC,CAAC;YAC9E,CAAC;YAED,iCAAiC;YACjC,kBAAkB,CAAC,IAAU;gBAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACzE,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAc,CAAC;gBAE5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAoB,EAAE,CAAC;oBAChD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAc,EAAE,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,aAAa,CAAC,IAAU;gBACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;oBACzC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAc,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAED,cAAc;gBACZ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;gBAErC,KAAK,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,MAAM,EAAE,CAAC;oBAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;oBACxD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,SAAS;oBACX,CAAC;oBAED,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;wBAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;4BAChC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBAED,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;oBAC7C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACrC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC;4BAChD,SAAS;wBACX,CAAC;wBAED,MAAM,SAAS,GAAI,KAAK,CAAC,IAAI,CAAC,UAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC;wBAE/F,IAAI,CAAC,SAAS,EAAE,CAAC;4BACf,SAAS;wBACX,CAAC;wBAED,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,SAAS,CAAC,GAAW;4BAC3B,SAAS,EAAE,aAAa;4BACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BACzB,GAAG,CAAC,KAAK;gCACP,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;gCAC/B,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gCACvD,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gCAEzD,wEAAwE;gCACxE,IAAI,UAAU,EAAE,KAAK,KAAK,GAAG,EAAE,CAAC;oCAC9B,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACtE,CAAC;gCAED,IAAI,WAAW,EAAE,KAAK,KAAK,GAAG,EAAE,CAAC;oCAC/B,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACvE,CAAC;gCAED,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;4BACjC,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jeremybarbet/oxlint-plugin",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Shared oxlint JS plugin: dead-code rules that oxlint, tsc and knip each miss, plus a few house rules.",
5
5
  "author": "Jérémy Barbet <jeremgraph@gmail.com> (https://github.com/jeremybarbet)",
6
6
  "repository": "https://github.com/jeremybarbet/oxlint-plugin",
@@ -39,6 +39,12 @@
39
39
  },
40
40
  "scripts": {
41
41
  "build": "rm -rf dist && tsc",
42
+ "lint": "yarn lint:tsc && yarn lint:oxlint && yarn lint:oxfmt",
43
+ "lint:ci": "yarn lint:tsc && yarn lint:oxlint:ci && yarn lint:oxfmt:ci",
44
+ "lint:oxfmt": "oxfmt -c oxfmt.config.mts",
45
+ "lint:oxfmt:ci": "oxfmt -c oxfmt.config.mts --check",
46
+ "lint:oxlint": "oxlint -c oxlint.config.mts --fix",
47
+ "lint:oxlint:ci": "oxlint -c oxlint.config.mts",
42
48
  "lint:tsc": "tsc --noEmit",
43
49
  "prepack": "yarn build"
44
50
  },
@@ -50,6 +56,9 @@
50
56
  },
51
57
  "devDependencies": {
52
58
  "@types/node": "25.9.1",
59
+ "oxfmt": "0.65.0",
60
+ "oxlint": "1.80.0",
61
+ "oxlint-tsgolint": "7.0.2001",
53
62
  "typescript": "5.9.3"
54
63
  }
55
64
  }