Skip to content

Commit 3d37414

Browse files
bnoordhuistargos
authored andcommitted
tools: fix node-core/required-modules eslint rule
Make the node-core/required-modules eslint rule smart enough to recognize that `import '../common/index.mjs'` in ESM files imports the mandatory 'common' module. PR-URL: #27545 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
1 parent de337bb commit 3d37414

29 files changed

+6
-35
lines changed

test/es-module/test-esm-basic-imports.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import assert from 'assert';
54
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import('./test-esm-cyclic-dynamic-import.mjs');

test/es-module/test-esm-double-encoding.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43

54
// Assert we can import files with `%` in their pathname.

test/es-module/test-esm-encoded-path.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import assert from 'assert';
54
// ./test-esm-ok.mjs

test/es-module/test-esm-forbidden-globals.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43

54
// eslint-disable-next-line no-undef

test/es-module/test-esm-import-meta.mjs

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
3-
42
import '../common/index.mjs';
53
import assert from 'assert';
64

test/es-module/test-esm-json-cache.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules --experimental-json-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43

54
import { strictEqual, deepStrictEqual } from 'assert';

test/es-module/test-esm-json.mjs

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
// Flags: --experimental-modules --experimental-json-modules
2-
/* eslint-disable node-core/required-modules */
3-
42
import '../common/index.mjs';
53
import { strictEqual } from 'assert';
64

test/es-module/test-esm-live-binding.mjs

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
3-
42
import '../common/index.mjs';
53
import assert from 'assert';
64

test/es-module/test-esm-loader-invalid-format.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs
2-
/* eslint-disable node-core/required-modules */
32
import { expectsError, mustCall } from '../common/index.mjs';
43
import assert from 'assert';
54

test/es-module/test-esm-loader-invalid-url.mjs

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs
2-
/* eslint-disable node-core/required-modules */
3-
42
import { expectsError, mustCall } from '../common/index.mjs';
53
import assert from 'assert';
64

test/es-module/test-esm-loader-missing-dynamic-instantiate-hook.mjs

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs
2-
/* eslint-disable node-core/required-modules */
3-
42
import { expectsError } from '../common/index.mjs';
53

64
import('test').catch(expectsError({

test/es-module/test-esm-main-lookup.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import assert from 'assert';
54

test/es-module/test-esm-named-exports.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import { readFile } from 'fs';
54
import assert from 'assert';

test/es-module/test-esm-namespace.mjs

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
3-
42
import '../common/index.mjs';
53
import * as fs from 'fs';
64
import assert from 'assert';

test/es-module/test-esm-process.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import assert from 'assert';
54
import process from 'process';

test/es-module/test-esm-require-cache.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import { createRequire } from '../common/index.mjs';
43
import assert from 'assert';
54
//

test/es-module/test-esm-shared-loader-dep.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-shared-dep.mjs
2-
/* eslint-disable node-core/required-modules */
32
import { createRequire } from '../common/index.mjs';
43

54
import assert from 'assert';

test/es-module/test-esm-shebang.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#! }]) // isn't js
22
// Flags: --experimental-modules
3-
/* eslint-disable node-core/required-modules */
43
import '../common/index.mjs';
54

65
const isJs = true;

test/es-module/test-esm-snapshot.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import '../fixtures/es-modules/esm-snapshot-mutator.js';
54
import one from '../fixtures/es-modules/esm-snapshot.js';

test/es-module/test-esm-throw-undefined.mjs

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
3-
42
import '../common/index.mjs';
53
import assert from 'assert';
64

test/es-module/test-esm-type-flag.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import cjs from '../fixtures/baz.js';
43
import '../common/index.mjs';
54
import { message } from '../fixtures/es-modules/message.mjs';

test/message/async_error_sync_esm.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import four from '../fixtures/async-error.js';
54

test/message/async_error_sync_esm.out

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ Error: test
44
at two (*fixtures*async-error.js:17:9)
55
at async three (*fixtures*async-error.js:20:3)
66
at async four (*fixtures*async-error.js:24:3)
7-
at async main (*message*async_error_sync_esm.mjs:8:5)
7+
at async main (*message*async_error_sync_esm.mjs:7:5)

test/message/esm_display_syntax_error_import.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable no-unused-vars, node-core/required-modules */
2+
/* eslint-disable no-unused-vars */
33
import '../common/index.mjs';
44
import {
55
foo,
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import '../fixtures/es-module-loaders/syntax-error-import.mjs';
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
// Flags: --experimental-modules
2-
/* eslint-disable node-core/required-modules */
32
import '../common/index.mjs';
43
import '../fixtures/es-module-loaders/syntax-error.mjs';

test/parallel/test-loaders-unknown-builtin-module.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-unknown-builtin-module.mjs
2-
/* eslint-disable node-core/required-modules */
32
import { expectsError, mustCall } from '../common/index.mjs';
43
import assert from 'assert';
54

tools/eslint-rules/required-modules.js

+4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ module.exports = function(context) {
4646
* @returns {undefined|String} required module name or undefined
4747
*/
4848
function getRequiredModuleName(str) {
49+
if (str === '../common/index.mjs') {
50+
return 'common';
51+
}
52+
4953
const value = path.basename(str);
5054

5155
// Check if value is in required modules array

0 commit comments

Comments
 (0)