diff --git a/doc/api/modules.md b/doc/api/modules.md index 77369a500fbc10..213a60dc961444 100644 --- a/doc/api/modules.md +++ b/doc/api/modules.md @@ -912,6 +912,29 @@ by the [module wrapper][]. To access it, require the `Module` module: const builtin = require('module').builtinModules; ``` +### module.containsModuleSyntax(source) + + +* `source` {string} JavaScript source code +* Returns: {boolean} + +Detect whether input JavaScript source code contains [ECMAScript Module][] +syntax, defined as `import` or `export` statements. Returns `true` as soon as +the first `import` or `export` statement is encountered, or `false` if none are +found. Note that dynamic `import()` is not an `import` statement. + +```js +const { containsModuleSyntax } = require('module'); + +containsModuleSyntax('import { fn } from "pkg"'); // true +containsModuleSyntax('console.log(process.version)'); // false + +containsModuleSyntax('import "./file.mjs"'); // true +containsModuleSyntax('import("./file.mjs")'); // false +``` + ### module.createRequire(filename)