Skip to content

Commit b0306dd

Browse files
committed
refactor: update code to latest eslint-config and rules
refactor(core): do not use vitest deprecated methods refactor(core): disable unneeded react/prop-types eslint rule refactor(core): fix prefer-global-this refactor(core): fix do not use typeof === undefined refactor(core): fix unicorn number eslint rules refactor(core): fix no-this-assignment and prefer-class-fields refactor(core): fix unicorn DOM eslint rules refactor(core): fix prefer-add-event-listener refactor(core): fix no-instanceof-builtins refactor(core): fix error message eslint rules refactor(core): fix no-lonely-if eslint rule refactor(core): fix unicorn string related eslint rules refactor(core): fix unicorn array length eslint rules refactor(core): fix no-array-for-each refactor(core): fix no-for-loop refactor(core): fix no-array-reduce refactor(core): fix remaining array like eslint rules refactor(core): fix prefer spread refactor(core): fix prefer-switch refactor(core): fix a more unicorn eslint rules chore(core): bump eslint-config to latest refactor(docs-generator): update eslint rules refactor(code): update eslint config refactor(playground): update eslint-config refactor(docs): update eslint config
1 parent 8a12a0f commit b0306dd

File tree

355 files changed

+2353
-1903
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

355 files changed

+2353
-1903
lines changed

.changeset/slick-rockets-care.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@react-md/core": patch
3+
---
4+
5+
Updated code for new eslint rules which mostly changed usage of `window` to `globalThis`. This should generally not require any changes on your end.

apps/docs/eslint.config.mjs

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
// @ts-check
22
import { FlatCompat } from "@eslint/eslintrc";
3-
import { configs, defineConfig, gitignore } from "@react-md/eslint-config";
3+
import { configs, gitignore } from "@react-md/eslint-config";
4+
import { defineConfig } from "eslint/config";
45

56
const compat = new FlatCompat({
67
baseDirectory: import.meta.dirname,
78
});
89

9-
const strict = process.env.STRICT_TYPING === "true";
10-
11-
const frontend = strict
12-
? configs.frontendTypeChecking(import.meta.dirname, "jest")
13-
: configs.frontend("jest");
14-
1510
export default defineConfig(
1611
gitignore(import.meta.url),
1712
...compat.config({
1813
extends: ["plugin:@next/next/core-web-vitals"],
1914
}),
20-
...frontend,
15+
...configs.recommendedFrontend({
16+
testFramework: "vitest",
17+
tsconfigRootDir:
18+
process.env.STRICT_TYPING === "true" ? import.meta.dirname : undefined,
19+
}),
2120
{
2221
// this seems to be needed to set the module/moduleResolution/target to "nodenext" + "esnext"
2322
languageOptions: {
@@ -38,12 +37,6 @@ export default defineConfig(
3837
"src/generated/**",
3938
],
4039
},
41-
{
42-
files: ["scripts/**"],
43-
rules: {
44-
"no-console": "off",
45-
},
46-
},
4740
{
4841
files: ["**/(demos)/**"],
4942
rules: {

apps/docs/scripts/createScssLookup.ts

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,26 @@ import { logComplete } from "docs-generator/utils/log";
55

66
import { ensureGeneratedDir } from "./ensureGeneratedDir.js";
77

8-
if (!process.argv.includes("--watch")) {
8+
if (process.argv.includes("--watch")) {
9+
const CORE_DIST = "node_modules/@react-md/core/dist";
10+
11+
const debounced = debounce(createScssLookup, 1000);
12+
const watcher = watch(CORE_DIST, {
13+
persistent: true,
14+
ignored: (path, stats) => !!stats?.isFile() && !path.endsWith(".scss"),
15+
});
16+
watcher.on("change", () => {
17+
try {
18+
debounced();
19+
} catch (error) {
20+
console.error(error);
21+
}
22+
});
23+
24+
watcher.on("ready", () => {
25+
logComplete("Watching for sass changes");
26+
});
27+
} else {
928
await ensureGeneratedDir();
1029
await createScssLookup();
11-
process.exit(0);
1230
}
13-
14-
const CORE_DIST = "node_modules/@react-md/core/dist";
15-
16-
const debounced = debounce(createScssLookup, 1000);
17-
const watcher = watch(CORE_DIST, {
18-
persistent: true,
19-
ignored: (path, stats) => !!stats?.isFile() && !path.endsWith(".scss"),
20-
});
21-
watcher.on("change", () => {
22-
try {
23-
debounced();
24-
} catch (e) {
25-
console.error(e);
26-
}
27-
});
28-
29-
watcher.on("ready", () => {
30-
logComplete("Watching for sass changes");
31-
});

apps/docs/scripts/createStackBlitzTemplate.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ import { ensureGeneratedDir } from "./ensureGeneratedDir.js";
1414
function getAllFiles(dir: string): readonly string[] {
1515
const files: string[] = [];
1616
const dirFiles = readdirSync(dir);
17-
dirFiles.forEach((file) => {
17+
for (const file of dirFiles) {
1818
if (
1919
/node_modules|(\.git$)|RootLayout|MainNavigation|README|CHANGELOG|(\.(ico|png))/.test(
2020
file
2121
)
2222
) {
23-
return;
23+
continue;
2424
}
2525

2626
const fullPath = join(dir, file);
@@ -29,7 +29,7 @@ function getAllFiles(dir: string): readonly string[] {
2929
} else {
3030
files.push(fullPath);
3131
}
32-
});
32+
}
3333

3434
return files;
3535
}
@@ -90,6 +90,7 @@ export const STACKBLITZ_DEPENDENCIES: Record<string, string> = ${JSON.stringify(
9090
}
9191

9292
await log(
93+
// eslint-disable-next-line unicorn/prefer-top-level-await
9394
run(),
9495
"",
9596
`Created ${getAliasedFileName(GENERATED_STACKBLITZ_FILE)}`

apps/docs/scripts/sassdoc-utils/generateNavItems.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,19 @@ export async function generateNavItems(
1313
): Promise<void> {
1414
const { mixins, functions, variables } = options;
1515
const groups = new Set<string>();
16-
mixins.forEach((item) => groups.add(item.group));
17-
functions.forEach((item) => groups.add(item.group));
18-
variables.forEach((item) => groups.add(item.group));
16+
for (const [, item] of mixins) {
17+
groups.add(item.group);
18+
}
19+
for (const [, item] of functions) {
20+
groups.add(item.group);
21+
}
22+
for (const [, item] of variables) {
23+
groups.add(item.group);
24+
}
1925

2026
const components: NavigationItemStringChildrenRoute[] = [];
2127
const remainingItems: NavigationItemStringChildrenRoute[] = [];
22-
groups.forEach((group) => {
28+
for (const group of groups) {
2329
if (group.startsWith("core.")) {
2430
const withoutCore = group.replace("core.", "");
2531
if (withoutCore === "form") {
@@ -42,7 +48,7 @@ export async function generateNavItems(
4248
children: titleCase(group, "-"),
4349
});
4450
}
45-
});
51+
}
4652

4753
await createNavItems({
4854
name: "SASSDOC_NAV_ITEMS",

apps/docs/scripts/sassdoc-utils/touch.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { log, logComplete } from "docs-generator/utils/log";
22
import { getAliasedFileName } from "docs-generator/utils/writeGeneratedFile";
3-
import { existsSync } from "fs";
3+
import { existsSync } from "node:fs";
44
import { type GeneratedSassDocWithOrder } from "sassdoc-generator";
55

66
import {
@@ -43,9 +43,9 @@ export const touch = async (): Promise<void> => {
4343
await Promise.all(
4444
updates.map(async ([fn, fileNames]) => {
4545
if (await runIfNotExists(fn, fileNames)) {
46-
fileNames.forEach((fileName) => {
46+
for (const fileName of fileNames) {
4747
logComplete(`Created an empty "${getAliasedFileName(fileName)}`);
48-
});
48+
}
4949
}
5050
})
5151
);

apps/docs/scripts/sassdoc.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ import { touch } from "./sassdoc-utils/touch.js";
99

1010
if (process.argv.includes("--touch")) {
1111
await touch();
12-
process.exit(0);
13-
}
12+
} else {
13+
async function run(): Promise<void> {
14+
await ensureGeneratedDir();
15+
const generated = await generate({ src: CORE_SRC });
16+
await Promise.all([
17+
createSassDocFile(generated),
18+
generateNavItems(generated),
19+
]);
20+
}
1421

15-
async function run(): Promise<void> {
16-
await ensureGeneratedDir();
17-
const generated = await generate({ src: CORE_SRC });
18-
await Promise.all([
19-
createSassDocFile(generated),
20-
generateNavItems(generated),
21-
]);
22+
// eslint-disable-next-line unicorn/prefer-top-level-await
23+
await log(run(), "", "sassdoc script completed");
2224
}
23-
24-
await log(run(), "", "sassdoc script completed");

0 commit comments

Comments
 (0)