Skip to content

Commit 6f5e81d

Browse files
authored
feat(prefer-promises): Add support for process.getBuiltinModule() (#437)
1 parent fca7cf4 commit 6f5e81d

File tree

4 files changed

+46
-0
lines changed

4 files changed

+46
-0
lines changed

lib/rules/prefer-promises/dns.js

+7
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ const {
1010
ReferenceTracker,
1111
} = require("@eslint-community/eslint-utils")
1212
const { getScope } = require("../../util/eslint-compat")
13+
const {
14+
iterateProcessGetBuiltinModuleReferences,
15+
} = require("../../util/iterate-process-get-builtin-module-references")
1316

1417
/** @type {import('@eslint-community/eslint-utils').TraceMap<boolean>} */
1518
const dns = {
@@ -63,6 +66,10 @@ module.exports = {
6366
const tracker = new ReferenceTracker(scope, { mode: "legacy" })
6467
const references = [
6568
...tracker.iterateCjsReferences(traceMap),
69+
...iterateProcessGetBuiltinModuleReferences(
70+
tracker,
71+
traceMap
72+
),
6673
...tracker.iterateEsmReferences(traceMap),
6774
]
6875

lib/rules/prefer-promises/fs.js

+7
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
const { CALL, ReferenceTracker } = require("@eslint-community/eslint-utils")
88
const { getScope } = require("../../util/eslint-compat")
9+
const {
10+
iterateProcessGetBuiltinModuleReferences,
11+
} = require("../../util/iterate-process-get-builtin-module-references")
912

1013
/** @type {import('@eslint-community/eslint-utils').TraceMap<boolean>} */
1114
const traceMap = {
@@ -61,6 +64,10 @@ module.exports = {
6164
const tracker = new ReferenceTracker(scope, { mode: "legacy" })
6265
const references = [
6366
...tracker.iterateCjsReferences(traceMap),
67+
...iterateProcessGetBuiltinModuleReferences(
68+
tracker,
69+
traceMap
70+
),
6471
...tracker.iterateEsmReferences(traceMap),
6572
]
6673

tests/lib/rules/prefer-promises/dns.js

+16
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ new RuleTester({
2222
"import * as dns from 'dns'; dns.promises.lookup()",
2323
"import {promises} from 'dns'; promises.lookup()",
2424
"import {promises as dns} from 'dns'; dns.lookup()",
25+
"const dns = process.getBuiltinModule('dns'); dns.promises.lookup()",
26+
"const dns = process.getBuiltinModule('node:dns'); dns.promises.lookup()",
27+
"const {promises} = process.getBuiltinModule('dns'); promises.lookup()",
28+
"const {promises: dns} = process.getBuiltinModule('dns'); dns.lookup()",
2529
],
2630
invalid: [
2731
{
@@ -52,6 +56,18 @@ new RuleTester({
5256
code: "import {lookup} from 'dns'; lookup()",
5357
errors: [{ messageId: "preferPromises", data: { name: "lookup" } }],
5458
},
59+
{
60+
code: "const dns = process.getBuiltinModule('dns'); dns.lookup()",
61+
errors: [{ messageId: "preferPromises", data: { name: "lookup" } }],
62+
},
63+
{
64+
code: "const dns = process.getBuiltinModule('node:dns'); dns.lookup()",
65+
errors: [{ messageId: "preferPromises", data: { name: "lookup" } }],
66+
},
67+
{
68+
code: "const {lookup} = process.getBuiltinModule('dns'); lookup()",
69+
errors: [{ messageId: "preferPromises", data: { name: "lookup" } }],
70+
},
5571

5672
// Other members
5773
{

tests/lib/rules/prefer-promises/fs.js

+16
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ new RuleTester({
2323
"import * as fs from 'fs'; fs.promises.access()",
2424
"import {promises} from 'fs'; promises.access()",
2525
"import {promises as fs} from 'fs'; fs.access()",
26+
"const fs = process.getBuiltinModule('fs'); fs.promises.access()",
27+
"const fs = process.getBuiltinModule('node:fs'); fs.promises.access()",
28+
"const {promises} = process.getBuiltinModule('fs'); promises.access()",
29+
"const {promises: fs} = process.getBuiltinModule('fs'); fs.access()",
2630
],
2731
invalid: [
2832
{
@@ -53,6 +57,18 @@ new RuleTester({
5357
code: "import {access} from 'fs'; access()",
5458
errors: [{ messageId: "preferPromises", data: { name: "access" } }],
5559
},
60+
{
61+
code: "const fs = process.getBuiltinModule('fs'); fs.access()",
62+
errors: [{ messageId: "preferPromises", data: { name: "access" } }],
63+
},
64+
{
65+
code: "const fs = process.getBuiltinModule('node:fs'); fs.access()",
66+
errors: [{ messageId: "preferPromises", data: { name: "access" } }],
67+
},
68+
{
69+
code: "const {access} = process.getBuiltinModule('fs'); access()",
70+
errors: [{ messageId: "preferPromises", data: { name: "access" } }],
71+
},
5672

5773
// Other members
5874
{

0 commit comments

Comments
 (0)