diff --git a/.eslintrc.js b/.eslintrc.js index 9fda1a68397b23..bda641797e2951 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -76,6 +76,29 @@ module.exports = { 'doc/api/packages.md/*.js', ], parserOptions: { sourceType: 'module' }, + rules: { 'no-restricted-globals': [ + 'error', + { + name: '__filename', + message: 'Use import.meta.url instead', + }, + { + name: '__dirname', + message: 'Not available in ESM', + }, + { + name: 'exports', + message: 'Not available in ESM', + }, + { + name: 'module', + message: 'Not available in ESM', + }, + { + name: 'require', + message: 'Use import instead', + }, + ] }, }, ], rules: { diff --git a/doc/api/crypto.md b/doc/api/crypto.md index e9a2be8f26ef90..8bd28d20b0c6ee 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -1518,9 +1518,7 @@ hash.end(); Example: Using `Hash` and piped streams: ```mjs -const { - createReadStream, -} = require('fs'); +import { createReadStream } from 'fs'; const { createHash, @@ -1551,7 +1549,7 @@ Example: Using the [`hash.update()`][] and [`hash.digest()`][] methods: ```mjs const { createHash, -} = require('crypto'); +} = await import('crypto'); const hash = createHash('sha256'); @@ -1596,7 +1594,7 @@ its [`hash.digest()`][] method has been called. // Calculate a rolling hash. const { createHash, -} = require('crypto'); +} = await import('crypto'); const hash = createHash('sha256'); @@ -1691,7 +1689,7 @@ Example: Using `Hmac` objects as streams: ```mjs const { createHmac, -} = require('crypto'); +} = await import('crypto'); const hmac = createHmac('sha256', 'a secret'); diff --git a/doc/api/esm.md b/doc/api/esm.md index 38d5d5fe6021d3..40cb34ee90899b 100644 --- a/doc/api/esm.md +++ b/doc/api/esm.md @@ -387,7 +387,7 @@ analysis process. For example, consider a CommonJS module written: -```js +```cjs // cjs.cjs exports.name = 'exported'; ``` diff --git a/doc/api/packages.md b/doc/api/packages.md index 6e87336a0095c6..4e7c8691a980e7 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -704,7 +704,7 @@ import { another } from 'a-package/m.mjs'; Self-referencing is also available when using `require`, both in an ES module, and in a CommonJS one. For example, this code will also work: -```js +```cjs // ./a-module.js const { something } = require('a-package/foo'); // Loads from ./foo.js. ``` @@ -807,7 +807,7 @@ to be treated as ES modules, just as `"type": "commonjs"` would cause them to be treated as CommonJS. See [Enabling](#esm_enabling). -```js +```cjs // ./node_modules/pkg/index.cjs exports.name = 'value'; ``` @@ -920,7 +920,7 @@ CommonJS and ES module instances of the package: CommonJS and ES module versions of the package. For example, if the CommonJS and ES module entry points are `index.cjs` and `index.mjs`, respectively: - ```js + ```cjs // ./node_modules/pkg/index.cjs const state = require('./state.cjs'); module.exports.state = state; @@ -1034,7 +1034,7 @@ The `"main"` field defines the script that is used when the [package directory is loaded via `require()`](modules.md#modules_folders_as_modules). Its value is a path. -```js +```cjs require('./path/to/directory'); // This resolves to ./path/to/directory/main.js. ```