source: frontend/node_modules/eslint-plugin-import/docs/rules/unambiguous.md

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 13 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[9af201e]1# import/unambiguous
2
3<!-- end auto-generated rule header -->
4
5Warn if a `module` could be mistakenly parsed as a `script` by a consumer leveraging
6[Unambiguous JavaScript Grammar] to determine correct parsing goal.
7
8Will respect the [`parserOptions.sourceType`] from ESLint config, i.e. files parsed
9as `script` per that setting will not be reported.
10
11This plugin uses [Unambiguous JavaScript Grammar] internally to decide whether
12dependencies should be parsed as modules and searched for exports matching the
13`import`ed names, so it may be beneficial to keep this rule on even if your application
14will run in an explicit `module`-only environment.
15
16## Rule Details
17
18For files parsed as `module` by ESLint, the following are valid:
19
20```js
21import 'foo'
22function x() { return 42 }
23```
24
25```js
26export function x() { return 42 }
27```
28
29```js
30(function x() { return 42 })()
31export {} // simple way to mark side-effects-only file as 'module' without any imports/exports
32```
33
34...whereas the following file would be reported:
35
36```js
37(function x() { return 42 })()
38```
39
40## When Not To Use It
41
42If your application environment will always know via [some other means](https://github.com/nodejs/node-eps/issues/13)
43how to parse, regardless of syntax, you may not need this rule.
44
45Remember, though, that this plugin uses this strategy internally, so if you were
46to `import` from a module with no `import`s or `export`s, this plugin would not
47report it as it would not be clear whether it should be considered a `script` or
48a `module`.
49
50## Further Reading
51
52 - [Unambiguous JavaScript Grammar]
53 - [`parserOptions.sourceType`]
54 - [node-eps#13](https://github.com/nodejs/node-eps/issues/13)
55
56[`parserOptions.sourceType`]: https://eslint.org/docs/user-guide/configuring#specifying-parser-options
57[Unambiguous JavaScript Grammar]: https://github.com/nodejs/node-eps/blob/HEAD/002-es-modules.md#32-determining-if-source-is-an-es-module
Note: See TracBrowser for help on using the repository browser.