51 Commits

Author SHA1 Message Date
James Henry
bafabb3a11
feat(linter): add support for workspace rules (#6859)
* feat(linter): add support for workspace rules

* chore(linter): move deps to correct package

* feat(linter): workspace-lint-rules as project with test target

* chore(linter): tiny clean up

* fix(linter): update generators.json after refactor

* chore(linter): implement e2e test and PR feedback

* docs(linter): update generator docs

* docs(linter): update generator docs

* docs(linter): update generator docs
2021-09-01 12:49:11 -04:00
Miroslav Jonaš
3aca62af68
cleanup(repo): remove unused ext from file data and fix ext regex matcher (#6550) 2021-08-04 09:45:07 -04:00
James Henry
f76a33f5bb
chore(core): add readCachedProjectGraph and deprecate previous utility (#6385)
* chore(core): add readCachedProjectGraph and deprecate previous utility

* chore(core): whitespace

* chore(core): explicitly use type ProjectGraphCache

* chore(core): fix typo
2021-07-20 11:44:48 -04:00
Miroslav Jonaš
8ab463e386
cleanup(core): replace deprecated usage of appRootPath (#6241)
* cleanup(core): replace deprecated usage of appRootPath

* cleanup(core): revert migration changes
2021-07-05 15:51:19 -04:00
James Henry
a3c08a9153
feat(linter): do not set eslint parserOptions.project by default (#5798) 2021-05-28 13:35:34 +00:00
Miroslav Jonaš
f112b9283a
fix(linter): improve error message for circular reference (#5721)
Improves original error message by providing a hint

Closes #5625
2021-05-19 17:50:58 +00:00
Phillip Barta
053d488801 cleanup(core): removed reexport of devkit types in workspace 2021-05-19 13:42:03 -04:00
Miroslav Jonaš
ff3cc38b0c
feat(linter): optimize lint performance. resolves #5210 (#5576)
* feat(linter): optimize containsFile function

related to #5210

* feat(linter): optimize find project function

related to #5210

* feat(core): cleanup target project locator

* fix(core): fix false positive match on resolvedModule

* chore(core): mark old code for removal

* feat(linter): move npm check before expensive typescript resolution

* feat(linter): improve performance of extension removal

* feat(linter): improve I/O operations

* feat(linter): read ts config only once in project locator

* feat(linter): remove double path normalization from rule

normalization is already part of getSourceFilePath function

* feat(linter): run find source only once

* feat(linter): defer source file path calculation will after whitelist check

* feat(linter): map project graph node files to hash map

* fix(linter): map projectGraph only once per runtime

* feat(linter): introduce mapped project graph type
2021-05-18 16:41:12 +02:00
Miroslav Jonaš
6d22f628b5
fix(linter): add missing self-circular check for tslint (#5613)
* fix(linter): add missing self-circular check for tslint

* feat(linter): add test for tslint self-circular deps
2021-05-11 16:39:12 +00:00
Miroslav Jonaš
f28097e264
fix(linter): disable absolute paths within project (#5555)
* fix(linter): disable absolute paths within project

* fix(linter): add missing colon before the import path

* feat(linter): add flag to disable self circular check
2021-05-06 12:17:28 +01:00
Jason Jean
e2bec26b18
fix(linter): safely check if angular-eslint is the right version (#5511) 2021-04-30 11:40:56 -04:00
James Henry
1cf7a69ce2
feat(angular): update angular-eslint to v4 (#5499)
* feat(angular): update angular-eslint to v4

* fix(linter): add check to see if right version is used

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2021-04-29 22:19:50 +00:00
Zachary DeRose
780bb0300a
fix(linter): Apply enforce-module-boundaries rule to exports (#5160)
* fix(linter): Apply enfore-module-boundaries rule to exports

* fixing formatting
2021-04-22 11:58:49 -04:00
vsavkin
e377a41dec fix(linter): fix enforce-module-boundaries rule to return when no project graph is present 2021-04-10 21:17:17 -04:00
Jack Hsu
20fea36058
feat(linter): use recommended react hooks eslint config (#5258) 2021-04-07 02:52:10 +00:00
vsavkin
b5efa6bfee feat(core): hash only relevant parts of global config files 2021-04-06 20:20:47 -04:00
puku0x
b1d9363bd9 fix(linter): add import source type check for literals
ISSUES CLOSED: #5224
2021-04-04 12:54:54 -04:00
Jack Hsu
c84bbb3c93
feat(react): add support for new jsx transform (#5131) 2021-04-01 13:46:12 +00:00
Noriyuki Shinpuku
d582875599
fix(linter): apply enforce-module-boundaries rule to import expressions (#5054)
ISSUES CLOSED: #3857
2021-03-26 08:27:25 -04:00
James Henry
00dec221e2
feat(linter): convert-tslint-to-eslint generators (#4943)
* feat(linter): convert-tslint-to-eslint generators

* fix(core): remove generators in collection for ng and nest

* fix(core): update tao to support mixed generators and schematics

* fix(core): update tao to support mixed generators and schematics

* fix(core): address some PR feedback

* fix(core): fix snapshots after syncing up with master

* feat(core): store user preference for removeTSLintIfNoMoreTSLintTargets

* fix(linter): unit tests

* feat(core): apply root tslint.json conversion to root .eslintrc.json
2021-03-19 13:41:13 -04:00
Victor Savkin
b977f42f67
fix(core): optimize task orderer to handle large graphs (#4992) 2021-03-10 17:36:05 +00:00
Gustavo Perdomo
5b0f23a3e4
chore(linter): update eslint-config-prettier (#4899)
* chore(linter): update eslint-config-prettier

* fix(linter): fix migrations

* feat(linter): update migrations

* fix(linter): move peer dependency to eslint-plugin-nx

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2021-03-05 20:22:16 +00:00
James Henry
48c7c7b6a3
fix(core): always use project level tsconfigs with eslint (#4657)
* chore(core): increase coverage of eslint config file contents

* fix(core): always use project level tsconfigs with eslint

* chore(core): enhance depcheck to ignore type only imports

* chore(linter): migration always-use-project-level-tsconfigs-with-eslint

* fix(core): snapshots

* feat(core): thin wrapper around tseslint parser

* fix(core): depcheck for eslint-plugin-nx

* fix(core): revert wrapped parser

* fix(linter): add tsconfig root dir to allow for normalized paths for project configs

* fix(linter): move migration to 11.5.0

* fix(linter): add dependency on to @nrwl/workspace

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2021-03-05 11:48:18 -05:00
James Henry
a4a2947ae8
fix(core): disable no-var-requires eslint rule for JS files (#4831) 2021-02-18 13:52:44 -05:00
James Henry
cc88815ece
fix(core): set browser + node eslint env in @nrwl/nx/javascript (#4804) 2021-02-16 12:42:13 -05:00
Jason Jean
f25776d903
feat(linter): migrate eslint executor to devkit (#4607) 2021-01-25 15:00:53 -05:00
Victor Savkin
a25e081a84 feat(core): remove angular devkit deps 2021-01-25 12:52:30 -05:00
Kevin Brewer
b10e92818f
fix(linter): allow type imports from lazy-loaded libraries (#4431) 2021-01-14 08:45:26 +00:00
James Henry
bd92a12c33
feat(angular): eslint config including template linting (#3988)
* feat(angular): eslint config including template linting

* feat(angular): migration add-template-support-and-presets

* feat(angular): add support for component and directive prefix in lint config

* fix(angular): tests

* fix(angular): e2e tests

* fix(angular): update to latest and make updates

* fix(angular): update to latest and make updates

* fix(angular): lockfile

* fix(angular): update to latest and make updates

* fix(angular): bump angular-eslint

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2020-11-25 13:55:22 -05:00
Victor Savkin
2824794a92 feat(core): clean up the language to use word executor 2020-11-24 09:49:52 -05:00
James Henry
4f5fb0f8fc
feat(linter): use overrides in root eslint config (#3949)
* feat(linter): use overrides in root eslint config

* feat(linter): update-root-eslint-config-to-use-overrides migration
2020-10-23 16:14:09 -04:00
James Henry
588effd5c5
feat(linter): shareable eslint configs (#3882)
* feat(linter): shareable eslint configs

* chore(linter): migration towards shareable eslint configs
2020-10-16 15:31:26 -04:00
Jason Jean
f057978400
fix(core): fix lint failures for npm packages (#3827) 2020-09-28 18:31:29 -04:00
maxkoretskyi
4a942d9eda fix(linter): fix performance issues with boundaries lint checks 2020-09-28 13:20:25 -04:00
Jason Jean
970a60d08c fix(core): combine npm and project locators to scan files only once 2020-09-28 11:52:31 -04:00
Jason Jean
fc61fcb2ab
fix(linter): fix dependencies from projects on themselves when another circular dependency exists (#3163) 2020-06-12 10:07:56 -04:00
Jonathan Cammisuli
3a4a3bea13
fix(core): use typescript module resolution for linting (#3075)
* fix(core): use typescript module resolution only for linting

* fix(core): fix unit tests

* fix(core): pass npm scope to target project locator for fallback

* chore(core): move comment about npmscope
2020-06-05 11:11:17 -04:00
Jason Jean
e06822da7e
chore(repo): update prettier to v2 (#2934)
this is just for the repo, and not the workspace

Co-authored-by: Rares Matei <matei.rar@gmail.com>
2020-04-29 01:09:37 -04:00
Jonathan Cammisuli
1c4078986f
TypeScript module resolution and lint updates (#2309)
* Revert "Revert "fix(core): sort node names for module resolution""

This reverts commit 0b77072fcfe63f8d02fccb73ba138aca99cb7f66.

* fix(core): add target project locator

This will sort nodes by length of the root (high to low) then nodes that have no root.

It also uses TypeScript to first try and resolve a module. If it is not found via TypeScript, it will
fall back to using a string match.
2020-01-31 13:08:12 -05:00
Juri
98a60d118f feat(core): add enforceBuildableLibDependency to make buildable lib rule configurable
This way if the buildable lib dependency rule doesn't work for some people they have an easy way to
opt-out of it
2020-01-21 12:02:13 -05:00
Juri
36463cf2a2 feat(core): add rule to enforce deps buildable-lib to buildable-lib
buildable libraries should only be able to import other buildable libraries
to avoid confusion. Importing non-buildable libs would effectively
mean embedding their src into the buildable libs, even potentially
multiple times.
2020-01-21 12:02:13 -05:00
Victor Savkin
0b77072fcf Revert "fix(core): sort node names for module resolution" 2020-01-11 22:42:33 -05:00
Jonathan Cammisuli
dddc1b1e6c fix(core): sort node names for module resolution 2020-01-09 19:13:53 -05:00
Jonathan Cammisuli
3d05bf08d0 Revert "Revert "fix(misc): resolve projects for linting using TypeScript""
This reverts commit ab25e84b08a938661d5766c5c7f4d501cfaf8b0b.
2020-01-09 19:13:53 -05:00
Victor Savkin
ab25e84b08 Revert "fix(misc): resolve projects for linting using TypeScript"
This reverts commit 6411a29683eff436ad314692aec61ea403155d3a.
2020-01-02 22:19:33 -05:00
Jonathan Cammisuli
6411a29683 fix(misc): resolve projects for linting using TypeScript 2019-12-30 15:39:46 -05:00
Victor Savkin
8749c18f91 cleanup(core): extract "core" folder from "command-line" 2019-12-16 16:04:35 -05:00
Jack Hsu
a82737968b
chore(core): refactor generation of dependency graph (aka project graph) (#2151) 2019-12-12 15:54:31 -05:00
Jason Jean
98fc5e00bb refactor(nx): refactor affected to produce affected metadata 2019-10-03 13:47:47 -04:00
Victor Savkin
17f8a79282 fix(nx): normalize paths in the eslint version of boundaries check 2019-08-14 11:58:19 -04:00