Skip to content

Commit b470a15

Browse files
deps: bump @biomejs/biome from 2.1.4 to 2.2.2 (#190)
1 parent 9dd224f commit b470a15

File tree

7 files changed

+170
-157
lines changed

7 files changed

+170
-157
lines changed

biome.jsonc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
{
22
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
33
"files": {
4-
"includes": ["**", "!**/*.snap.cjs", "!**/fixtures/**", "!**/expected/**", "!**/input/**"]
4+
"includes": [
5+
"**",
6+
"!**/*.snap.cjs",
7+
"!**/fixtures",
8+
"!**/expected",
9+
"!**/input"
10+
]
511
},
612
"assist": { "actions": { "source": { "organizeImports": "off" } } },
713
// Rules for the linter

package-lock.json

Lines changed: 36 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
},
2828
"homepage": "https://nodejs.org/learn/userland-migrations",
2929
"devDependencies": {
30-
"@biomejs/biome": "2.1.4",
30+
"@biomejs/biome": "2.2.2",
3131
"@types/node": "^24.3.0",
3232
"typescript": "^5.9.2"
3333
},

recipes/correct-ts-specifiers/src/is-dir.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@ describe('Is a directory', { concurrency: true }, () => {
2222
mock_resolveSpecifier = resolveSpecifier.mock;
2323

2424
mock.module('node:fs/promises', { namedExports: { lstat } });
25-
mock.module('./resolve-specifier.ts', { namedExports: { resolveSpecifier } });
25+
mock.module('./resolve-specifier.ts', {
26+
namedExports: { resolveSpecifier },
27+
});
2628

2729
({ isDir } = await import('./is-dir.ts'));
2830
});
2931

3032
it('should try to resolve an unresolved specifier', async () => {
3133
mock_resolveSpecifier.mockImplementationOnce(
32-
// @ts-ignore
3334
function mock_resolveSpecifier() {
3435
return resolvedPath;
3536
},
@@ -42,7 +43,6 @@ describe('Is a directory', { concurrency: true }, () => {
4243

4344
it('should ignore unrelated errors', async () => {
4445
mock_resolveSpecifier.mockImplementationOnce(
45-
// @ts-ignore
4646
function mock_resolveSpecifier() {
4747
const err = Object.assign(new Error(), { code: 'ERR_OTHER' });
4848
throw err;
@@ -56,9 +56,10 @@ describe('Is a directory', { concurrency: true }, () => {
5656

5757
it('should signal `null` when the specifier is unresolvable or cannot be found', async () => {
5858
mock_resolveSpecifier.mockImplementationOnce(
59-
// @ts-ignore
6059
function mock_resolveSpecifier() {
61-
const err = Object.assign(new Error(), { code: 'ERR_MODULE_NOT_FOUND' });
60+
const err = Object.assign(new Error(), {
61+
code: 'ERR_MODULE_NOT_FOUND',
62+
});
6263
throw err;
6364
},
6465
);
Lines changed: 74 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,85 @@
1-
import type { Edit, SgRoot } from "@codemod.com/jssg-types/main";
2-
import { getNodeRequireCalls } from "@nodejs/codemod-utils/ast-grep/require-call";
3-
import type Js from "@codemod.com/jssg-types/langs/javascript";
4-
import { getNodeImportStatements } from "@nodejs/codemod-utils/ast-grep/import-statement";
1+
import type { Edit, SgRoot } from '@codemod.com/jssg-types/main';
2+
import { getNodeRequireCalls } from '@nodejs/codemod-utils/ast-grep/require-call';
3+
import type Js from '@codemod.com/jssg-types/langs/javascript';
4+
import { getNodeImportStatements } from '@nodejs/codemod-utils/ast-grep/import-statement';
55

66
export default function tranform(root: SgRoot<Js>): string | null {
7-
const rootNode = root.root();
8-
const edits: Edit[] = [];
7+
const rootNode = root.root();
8+
const edits: Edit[] = [];
99

10-
// @ts-expect-error - ast-grep types are not fully compatible with JSSG types
11-
const requireStatements = getNodeRequireCalls(root, "fs");
10+
// @ts-expect-error - ast-grep types are not fully compatible with JSSG types
11+
const requireStatements = getNodeRequireCalls(root, 'fs');
1212

13-
for (const statement of requireStatements) {
14-
const objectPattern = statement.find({
15-
rule:
16-
{ kind: 'object_pattern' },
17-
});
13+
for (const statement of requireStatements) {
14+
const objectPattern = statement.find({
15+
rule: { kind: 'object_pattern' },
16+
});
1817

19-
if (objectPattern) {
20-
let objPatArr = objectPattern.findAll({
21-
rule:
22-
{ kind: 'shorthand_property_identifier_pattern' },
23-
}).map((v) => v.text());
24-
objPatArr = objPatArr.filter((v) => !['F_OK', 'R_OK', 'W_OK', 'X_OK'].includes(v));
25-
objPatArr.push('constants');
26-
edits.push(objectPattern.replace(`{ ${objPatArr.join(', ')} }`));
27-
};
28-
}
18+
if (objectPattern) {
19+
let objPatArr = objectPattern
20+
.findAll({
21+
rule: { kind: 'shorthand_property_identifier_pattern' },
22+
})
23+
.map((v) => v.text());
24+
objPatArr = objPatArr.filter(
25+
(v) => !['F_OK', 'R_OK', 'W_OK', 'X_OK'].includes(v),
26+
);
27+
objPatArr.push('constants');
28+
edits.push(objectPattern.replace(`{ ${objPatArr.join(', ')} }`));
29+
}
30+
}
2931

30-
// @ts-expect-error - ast-grep types are not fully compatible with JSSG types
31-
const importStatements = getNodeImportStatements(root, "fs");
32-
let promisesImportName = '';
32+
// @ts-expect-error - ast-grep types are not fully compatible with JSSG types
33+
const importStatements = getNodeImportStatements(root, 'fs');
34+
let promisesImportName = '';
3335

34-
for (const statement of importStatements) {
35-
const objectPattern = statement.find({
36-
rule:
37-
{ kind: 'named_imports' },
38-
});
36+
for (const statement of importStatements) {
37+
const objectPattern = statement.find({
38+
rule: { kind: 'named_imports' },
39+
});
3940

40-
if (objectPattern) {
41-
let objPatArr = objectPattern.findAll({
42-
rule:
43-
{ kind: 'import_specifier' },
44-
}).map((v) => v.text());
45-
objPatArr = objPatArr.filter((v) => !['F_OK', 'R_OK', 'W_OK', 'X_OK'].includes(v));
46-
const promisesImport = objPatArr.find((v) => v.startsWith('promises'));
47-
if (promisesImport) {
48-
if (promisesImport.includes('as')) {
49-
const m = promisesImport.matchAll((/promises as (\w+)/g));
50-
m.forEach((v) => promisesImportName = v[1] ?? 'promises');
51-
} else {
52-
promisesImportName = promisesImport;
53-
}
54-
promisesImportName = `${promisesImportName}.`
55-
} else {
56-
objPatArr.push('constants');
57-
}
58-
edits.push(objectPattern.replace(`{ ${objPatArr.join(', ')} }`));
59-
}
60-
}
41+
if (objectPattern) {
42+
let objPatArr = objectPattern
43+
.findAll({
44+
rule: { kind: 'import_specifier' },
45+
})
46+
.map((v) => v.text());
47+
objPatArr = objPatArr.filter(
48+
(v) => !['F_OK', 'R_OK', 'W_OK', 'X_OK'].includes(v),
49+
);
50+
const promisesImport = objPatArr.find((v) => v.startsWith('promises'));
51+
if (promisesImport) {
52+
if (promisesImport.includes('as')) {
53+
const m = promisesImport.matchAll(/promises as (\w+)/g);
54+
m.forEach((v) => {
55+
promisesImportName = v[1] ?? 'promises';
56+
});
57+
} else {
58+
promisesImportName = promisesImport;
59+
}
60+
promisesImportName = `${promisesImportName}.`;
61+
} else {
62+
objPatArr.push('constants');
63+
}
64+
edits.push(objectPattern.replace(`{ ${objPatArr.join(', ')} }`));
65+
}
66+
}
6167

62-
for (const _OK of ['F_OK', 'R_OK', 'W_OK', 'X_OK']) {
63-
for (const [prefix, replacement] of [['fs.', 'fs.constants.'], ['', `${promisesImportName ? promisesImportName : ''}constants.`]]) {
64-
const patterns = rootNode.findAll({
65-
rule: {
66-
pattern: `${prefix}${_OK}`
67-
}
68-
});
69-
for (const pattern of patterns) {
70-
edits.push(pattern.replace(`${replacement}${_OK}`));
71-
}
72-
}
73-
}
68+
for (const _OK of ['F_OK', 'R_OK', 'W_OK', 'X_OK']) {
69+
for (const [prefix, replacement] of [
70+
['fs.', 'fs.constants.'],
71+
['', `${promisesImportName ? promisesImportName : ''}constants.`],
72+
]) {
73+
const patterns = rootNode.findAll({
74+
rule: {
75+
pattern: `${prefix}${_OK}`,
76+
},
77+
});
78+
for (const pattern of patterns) {
79+
edits.push(pattern.replace(`${replacement}${_OK}`));
80+
}
81+
}
82+
}
7483

75-
return rootNode.commitEdits(edits);
84+
return rootNode.commitEdits(edits);
7685
}

0 commit comments

Comments
 (0)