forked from sindresorhus/eslint-plugin-unicorn
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
prefer-node-protocol.mjs
100 lines (96 loc) · 2.06 KB
/
prefer-node-protocol.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import outdent from 'outdent';
import {getTester} from './utils/test.mjs';
const {test} = getTester(import.meta);
test.snapshot({
valid: [
'import unicorn from "unicorn";',
'import fs from "./fs";',
'import fs from "unknown-builtin-module";',
'import fs from "node:fs";',
outdent`
async function foo() {
const fs = await import(fs);
}
`,
outdent`
async function foo() {
const fs = await import(0);
}
`,
outdent`
async function foo() {
const fs = await import(\`fs\`);
}
`,
],
invalid: [
'import fs from "fs";',
'export {promises} from "fs";',
outdent`
async function foo() {
const fs = await import('fs');
}
`,
'import fs from "fs/promises";',
'export {default} from "fs/promises";',
outdent`
async function foo() {
const fs = await import('fs/promises');
}
`,
'import {promises} from "fs";',
'export {default as promises} from "fs";',
'import {promises} from \'fs\';',
outdent`
async function foo() {
const fs = await import("fs/promises");
}
`,
outdent`
async function foo() {
const fs = await import(/* escaped */"\\u{66}s/promises");
}
`,
'import "buffer";',
'import "child_process";',
'import "timers/promises";',
],
});
// `require`
test.snapshot({
valid: [
'const fs = require("node:fs");',
'const fs = require("node:fs/promises");',
'const fs = require(fs);',
'const fs = notRequire("fs");',
'const fs = foo.require("fs");',
'const fs = require.resolve("fs");',
'const fs = require(`fs`);',
'const fs = require?.("fs");',
'const fs = require("fs", extra);',
'const fs = require();',
'const fs = require(...["fs"]);',
'const fs = require("unicorn");',
],
invalid: [
'const {promises} = require("fs")',
'const fs = require(\'fs/promises\')',
],
});
test.babel({
valid: [
'export fs from "node:fs";',
],
invalid: [
{
code: 'export fs from "fs";',
output: 'export fs from "node:fs";',
errors: 1,
},
{
code: 'await import(\'assert/strict\')',
output: 'await import(\'node:assert/strict\')',
errors: 1,
},
],
});