-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
# Conflicts: # CHANGELOG.md # src/index.js # src/rules/default.js # src/rules/extensions.js # src/rules/no-named-as-default.js # tests/src/rules/default.js
- Loading branch information
Showing
67 changed files
with
2,461 additions
and
1,921 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
{ | ||
"presets": [ "es2015-loose" ], | ||
"presets": [ "es2015-argon" ], | ||
"sourceMaps": "inline", | ||
"env": { | ||
"test": { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,18 @@ | ||
/** | ||
* - adds `.jsx` as an extension | ||
* Adds `.jsx` as an extension, and enables JSX parsing. | ||
* | ||
* Even if _you_ aren't using JSX (or .jsx) directly, if your dependencies | ||
* define jsnext:main and have JSX internally, you may run into problems | ||
* if you don't enable these settings at the top level. | ||
*/ | ||
module.exports = { | ||
|
||
settings: { | ||
'import/extensions': ['.js', '.jsx'], | ||
}, | ||
|
||
parserOptions: { | ||
ecmaFeatures: { jsx: true }, | ||
}, | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/** | ||
* The basics. | ||
* @type {Object} | ||
*/ | ||
module.exports = { | ||
rules: { | ||
// analysis/correctness | ||
'import/no-unresolved': 'error', | ||
'import/named': 'error', | ||
'import/namespace': 'error', | ||
'import/default': 'error', | ||
'import/export': 'error', | ||
|
||
// red flags (thus, warnings) | ||
'import/no-named-as-default': 'warn', | ||
'import/no-named-as-default-member': 'warn', | ||
'import/no-duplicates': 'warn', | ||
'import/unambiguous': 'warn', | ||
}, | ||
|
||
// need all these for parsing dependencies (even if _your_ code doesn't need | ||
// all of them) | ||
parserOptions: { | ||
sourceType: 'module', | ||
ecmaVersion: 6, | ||
ecmaFeatures: { experimentalObjectRestSpread: true }, | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# imports-first | ||
# first | ||
|
||
This rule reports any imports that come after non-import | ||
statements. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# unambiguous | ||
|
||
Warn if a `module` could be mistakely parsed as a `script` by a consumer leveraging | ||
[Unambiguous JavaScript Grammar] to determine correct parsing goal. | ||
|
||
Will respect the [`parserOptions.sourceType`] from ESLint config, i.e. files parsed | ||
as `script` per that setting will not be reported. | ||
|
||
This plugin uses [Unambiguous JavaScript Grammar] internally to decide whether | ||
dependencies should be parsed as modules and searched for exports matching the | ||
`import`ed names, so it may be beneficial to keep this rule on even if your application | ||
will run in an explicit `module`-only environment. | ||
|
||
## Rule Details | ||
|
||
For files parsed as `module` by ESLint, the following are valid: | ||
|
||
```js | ||
import 'foo' | ||
function x() { return 42 } | ||
``` | ||
|
||
```js | ||
export function x() { return 42 } | ||
``` | ||
|
||
```js | ||
(function x() { return 42 })() | ||
export {} // simple way to mark side-effects-only file as 'module' without any imports/exports | ||
``` | ||
|
||
...whereas the following file would be reported: | ||
```js | ||
(function x() { return 42 })() | ||
``` | ||
|
||
## When Not To Use It | ||
|
||
If your application environment will always know via [some other means](https://github.com/nodejs/node-eps/issues/13) | ||
how to parse, regardless of syntax, you may not need this rule. | ||
|
||
Remember, though, that this plugin uses this strategy internally, so if you were | ||
to `import` from a module with no `import`s or `export`s, this plugin would not | ||
report it as it would not be clear whether it should be considered a `script` or | ||
a `module`. | ||
|
||
## Further Reading | ||
|
||
- [Unambiguous JavaScript Grammar] | ||
- [`parserOptions.sourceType`] | ||
- [node-eps#13](https://github.com/nodejs/node-eps/issues/13) | ||
|
||
[`parserOptions.sourceType`]: http://eslint.org/docs/user-guide/configuring#specifying-parser-options | ||
[Unambiguous JavaScript Grammar]: https://github.com/nodejs/node-eps/blob/master/002-es6-modules.md#51-determining-if-source-is-an-es-module |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.