oxlint-plugin-react-doctor 0.4.0-dev.15bd9d8 → 0.4.0-dev.36ecd05
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/index.js +9 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -829,6 +829,9 @@ const isNextjsMetadataImageRouteFilename = (rawFilename) => {
|
|
|
829
829
|
return /^(opengraph-image|twitter-image|icon|apple-icon)\d*\.(jsx?|tsx?)$/.test(path.basename(rawFilename));
|
|
830
830
|
};
|
|
831
831
|
//#endregion
|
|
832
|
+
//#region src/plugin/utils/normalize-filename.ts
|
|
833
|
+
const normalizeFilename$1 = (filename) => filename.replaceAll("\\", "/");
|
|
834
|
+
//#endregion
|
|
832
835
|
//#region src/plugin/utils/is-hidden-from-screen-reader.ts
|
|
833
836
|
const isHiddenFromScreenReader = (openingElement, settings) => {
|
|
834
837
|
if (getElementType(openingElement, settings).toLowerCase() === "input") {
|
|
@@ -1000,7 +1003,7 @@ const altText = defineRule({
|
|
|
1000
1003
|
recommendation: "Give every meaningful image an `alt`, `aria-label`, or `aria-labelledby`.",
|
|
1001
1004
|
category: "Accessibility",
|
|
1002
1005
|
create: (context) => {
|
|
1003
|
-
if (isNextjsMetadataImageRouteFilename(context.filename)) return {};
|
|
1006
|
+
if (isNextjsMetadataImageRouteFilename(normalizeFilename$1(context.filename ?? ""))) return {};
|
|
1004
1007
|
const settings = resolveSettings$53(context.settings);
|
|
1005
1008
|
const checkImg = !settings.elements || settings.elements.includes("img");
|
|
1006
1009
|
const checkObject = !settings.elements || settings.elements.includes("object");
|
|
@@ -3073,9 +3076,6 @@ const asyncDeferAwait = defineRule({
|
|
|
3073
3076
|
}
|
|
3074
3077
|
});
|
|
3075
3078
|
//#endregion
|
|
3076
|
-
//#region src/plugin/utils/normalize-filename.ts
|
|
3077
|
-
const normalizeFilename$1 = (filename) => filename.replaceAll("\\", "/");
|
|
3078
|
-
//#endregion
|
|
3079
3079
|
//#region src/plugin/utils/get-callee-identifier-trail.ts
|
|
3080
3080
|
const getCalleeIdentifierTrail = (call) => {
|
|
3081
3081
|
let entry = call;
|
|
@@ -12954,8 +12954,9 @@ const nextjsNoImgElement = defineRule({
|
|
|
12954
12954
|
create: (context) => {
|
|
12955
12955
|
const filename = normalizeFilename$1(context.filename ?? "");
|
|
12956
12956
|
const isOgRoute = OG_ROUTE_PATTERN.test(filename);
|
|
12957
|
+
const isMetadataImageRoute = isNextjsMetadataImageRouteFilename(filename);
|
|
12957
12958
|
return { JSXOpeningElement(node) {
|
|
12958
|
-
if (isOgRoute) return;
|
|
12959
|
+
if (isOgRoute || isMetadataImageRoute) return;
|
|
12959
12960
|
if (isNodeOfType(node.name, "JSXIdentifier") && node.name.name === "img") context.report({
|
|
12960
12961
|
node,
|
|
12961
12962
|
message: "Plain <img> ships unoptimized, oversized images to your users."
|
|
@@ -23517,6 +23518,7 @@ const noUnknownProperty = defineRule({
|
|
|
23517
23518
|
create: (context) => {
|
|
23518
23519
|
const { ignore = [], requireDataLowercase = false } = resolveSettings$10(context.settings);
|
|
23519
23520
|
const ignoreSet = new Set(ignore);
|
|
23521
|
+
if (isNextjsMetadataImageRouteFilename(context.filename)) ignoreSet.add("tw");
|
|
23520
23522
|
let fileIsNonReactJsx = false;
|
|
23521
23523
|
return {
|
|
23522
23524
|
Program(node) {
|
|
@@ -24211,6 +24213,8 @@ const ENTRY_POINT_BASENAMES = new Set([
|
|
|
24211
24213
|
"global-error.jsx",
|
|
24212
24214
|
"route.tsx",
|
|
24213
24215
|
"route.jsx",
|
|
24216
|
+
"_layout.tsx",
|
|
24217
|
+
"_layout.jsx",
|
|
24214
24218
|
"_app.tsx",
|
|
24215
24219
|
"_app.jsx",
|
|
24216
24220
|
"_document.tsx",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oxlint-plugin-react-doctor",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
3
|
+
"version": "0.4.0-dev.36ecd05",
|
|
4
4
|
"description": "oxlint plugin for React Doctor: diagnose React codebases for security, performance, correctness, accessibility, bundle-size, and architecture issues",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"accessibility",
|