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: https://github.com/nodejs/node/pull/27545 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
d099f2f124
commit
d7d6526260
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
|
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import('./test-esm-cyclic-dynamic-import.mjs');
|
import('./test-esm-cyclic-dynamic-import.mjs');
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
|
|
||||||
// Assert we can import files with `%` in their pathname.
|
// Assert we can import files with `%` in their pathname.
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
// ./test-esm-ok.mjs
|
// ./test-esm-ok.mjs
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
|
|
||||||
// eslint-disable-next-line no-undef
|
// eslint-disable-next-line no-undef
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules --experimental-json-modules
|
// Flags: --experimental-modules --experimental-json-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
|
|
||||||
import { strictEqual, deepStrictEqual } from 'assert';
|
import { strictEqual, deepStrictEqual } from 'assert';
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Flags: --experimental-modules --experimental-json-modules
|
// Flags: --experimental-modules --experimental-json-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import { strictEqual } from 'assert';
|
import { strictEqual } from 'assert';
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs
|
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import { expectsError, mustCall } from '../common/index.mjs';
|
import { expectsError, mustCall } from '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs
|
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
|
|
||||||
import { expectsError, mustCall } from '../common/index.mjs';
|
import { expectsError, mustCall } from '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs
|
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
|
|
||||||
import { expectsError } from '../common/index.mjs';
|
import { expectsError } from '../common/index.mjs';
|
||||||
|
|
||||||
import('test').catch(expectsError({
|
import('test').catch(expectsError({
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs
|
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import { readFile } from 'fs';
|
import { readFile } from 'fs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
import process from 'process';
|
import process from 'process';
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import { createRequire } from '../common/index.mjs';
|
import { createRequire } from '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-shared-dep.mjs
|
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-shared-dep.mjs
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import { createRequire } from '../common/index.mjs';
|
import { createRequire } from '../common/index.mjs';
|
||||||
|
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#! }]) // isn't js
|
#! }]) // isn't js
|
||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
|
|
||||||
const isJs = true;
|
const isJs = true;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import '../fixtures/es-modules/esm-snapshot-mutator.js';
|
import '../fixtures/es-modules/esm-snapshot-mutator.js';
|
||||||
import one from '../fixtures/es-modules/esm-snapshot.js';
|
import one from '../fixtures/es-modules/esm-snapshot.js';
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import cjs from '../fixtures/baz.js';
|
import cjs from '../fixtures/baz.js';
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import { message } from '../fixtures/es-modules/message.mjs';
|
import { message } from '../fixtures/es-modules/message.mjs';
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import four from '../fixtures/async-error.js';
|
import four from '../fixtures/async-error.js';
|
||||||
|
|
||||||
|
@ -4,4 +4,4 @@ Error: test
|
|||||||
at two (*fixtures*async-error.js:17:9)
|
at two (*fixtures*async-error.js:17:9)
|
||||||
at async three (*fixtures*async-error.js:20:3)
|
at async three (*fixtures*async-error.js:20:3)
|
||||||
at async four (*fixtures*async-error.js:24:3)
|
at async four (*fixtures*async-error.js:24:3)
|
||||||
at async main (*message*async_error_sync_esm.mjs:8:5)
|
at async main (*message*async_error_sync_esm.mjs:7:5)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable no-unused-vars, node-core/required-modules */
|
/* eslint-disable no-unused-vars */
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import {
|
import {
|
||||||
foo,
|
foo,
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import '../fixtures/es-module-loaders/syntax-error-import.mjs';
|
import '../fixtures/es-module-loaders/syntax-error-import.mjs';
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
// Flags: --experimental-modules
|
// Flags: --experimental-modules
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import '../common/index.mjs';
|
import '../common/index.mjs';
|
||||||
import '../fixtures/es-module-loaders/syntax-error.mjs';
|
import '../fixtures/es-module-loaders/syntax-error.mjs';
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-unknown-builtin-module.mjs
|
// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-unknown-builtin-module.mjs
|
||||||
/* eslint-disable node-core/required-modules */
|
|
||||||
import { expectsError, mustCall } from '../common/index.mjs';
|
import { expectsError, mustCall } from '../common/index.mjs';
|
||||||
import assert from 'assert';
|
import assert from 'assert';
|
||||||
|
|
||||||
|
@ -46,6 +46,10 @@ module.exports = function(context) {
|
|||||||
* @returns {undefined|String} required module name or undefined
|
* @returns {undefined|String} required module name or undefined
|
||||||
*/
|
*/
|
||||||
function getRequiredModuleName(str) {
|
function getRequiredModuleName(str) {
|
||||||
|
if (str === '../common/index.mjs') {
|
||||||
|
return 'common';
|
||||||
|
}
|
||||||
|
|
||||||
const value = path.basename(str);
|
const value = path.basename(str);
|
||||||
|
|
||||||
// Check if value is in required modules array
|
// Check if value is in required modules array
|
||||||
|
Loading…
x
Reference in New Issue
Block a user