Skip to content

Commit f8e9960

Browse files
authored
refactor: replace synckit with make-synchronized (gajus#1366)
1 parent ed62262 commit f8e9960

7 files changed

+24
-28
lines changed

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
"escape-string-regexp": "^4.0.0",
1313
"espree": "^10.1.0",
1414
"esquery": "^1.6.0",
15+
"make-synchronized": "^0.3.0",
1516
"parse-imports": "^2.1.1",
1617
"semver": "^7.6.3",
17-
"spdx-expression-parse": "^4.0.0",
18-
"synckit": "^0.9.1"
18+
"spdx-expression-parse": "^4.0.0"
1919
},
2020
"description": "JSDoc linting rules for ESLint.",
2121
"devDependencies": {
@@ -146,7 +146,7 @@
146146
"scripts": {
147147
"tsc": "tsc",
148148
"tsc-build": "tsc -p tsconfig-prod.json",
149-
"build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && cp src/import-worker.mjs dist/import-worker.mjs && pnpm tsc-build",
149+
"build": "rimraf ./dist && cross-env NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build",
150150
"check-docs": "babel-node ./src/bin/generateDocs.js --check",
151151
"create-docs": "npm run create-options && babel-node ./src/bin/generateDocs.js",
152152
"create-rule": "babel-node ./src/bin/generateRule.js",

pnpm-lock.yaml

+8-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/getImports.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import makeSynchronized from 'make-synchronized';
2+
3+
// ESLint doesn't support async rules
4+
export default makeSynchronized(import.meta.url, async (imprt) => {
5+
const {parseImports} = await import('parse-imports')
6+
try {
7+
return [...await parseImports(imprt)];
8+
} catch (err) {
9+
return false;
10+
}
11+
})

src/import-worker.mjs

-11
This file was deleted.

src/rules/checkValues.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import { dirname, join } from 'node:path';
22
import { fileURLToPath } from 'node:url';
33

4-
import { createSyncFn } from 'synckit';
54
import semver from 'semver';
65
import spdxExpressionParse from 'spdx-expression-parse';
76
import iterateJsdoc from '../iterateJsdoc.js';
8-
9-
const __dirname = dirname(fileURLToPath(import.meta.url));
10-
const pathName = join(__dirname, '../import-worker.mjs');
7+
import getImports from '../getImports.js';
118

129
const allowedKinds = new Set([
1310
'class',
@@ -175,7 +172,6 @@ export default iterateJsdoc(({
175172
? `${typePart}${name} ${description}`
176173
: `${typePart}${name}`);
177174

178-
const getImports = createSyncFn(pathName);
179175
if (!getImports(imprt)) {
180176
report(
181177
`Bad @import tag`,

src/rules/noUndefinedTypes.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { dirname, join } from 'path';
22
import { fileURLToPath } from 'url';
33

4-
import { createSyncFn } from 'synckit';
54
import {
65
getJSDocComment,
76
parse as parseType,
@@ -11,9 +10,7 @@ import {
1110
import iterateJsdoc, {
1211
parseComment,
1312
} from '../iterateJsdoc.js';
14-
15-
const __dirname = dirname(fileURLToPath(import.meta.url));
16-
const pathName = join(__dirname, '../import-worker.mjs');
13+
import getImports from '../getImports.js';
1714

1815
const extraTypes = [
1916
'null', 'undefined', 'void', 'string', 'boolean', 'object',
@@ -152,7 +149,6 @@ export default iterateJsdoc(({
152149
? `${typePart}${name} ${description}`
153150
: `${typePart}${name}`);
154151

155-
const getImports = createSyncFn(pathName);
156152
const imports = /** @type {import('parse-imports').Import[]} */ (getImports(imprt));
157153
if (!imports) {
158154
return null;

tsconfig.json

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
"test/**/*.js",
1919
"typings/gitdown.d.ts",
2020
"typings/babel__eslint-parser.d.ts",
21-
"src/import-worker.mjs"
2221
],
2322
"exclude": ["node_modules"]
2423
}

0 commit comments

Comments
 (0)