- Enable generating the new & minimal TS setup by default when
generating the `ts` preset with CNW.
The existing `NX_ADD_TS_PLUGIN` environment variable is kept with its
default value inverted and set to `true`. It can be used to opt out of
the new TS setup by running CNW with `NX_ADD_TS_PLUGIN=false`.
- Throw an error when running generators that don't yet support the new
TS setup.
- We'll add support for those generators incrementally in follow-up PRs.
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->
<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->
<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->
## Current Behavior
<!-- This is the behavior we have today -->
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
<!-- Fixes NXC-1066 -->
<!-- Fixes NXC-1068 -->
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
Fixes #
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->
<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->
<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->
## Current Behavior
<!-- This is the behavior we have today -->
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
Fixes #
---------
Co-authored-by: Colum Ferry <cferry09@gmail.com>
Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->
<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->
<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->
## Current Behavior
<!-- This is the behavior we have today -->
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
Fixes #
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->
<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->
<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->
## Current Behavior
<!-- This is the behavior we have today -->
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
Fixes #
---------
Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
We should be consistent about how options are defined in our plugins.
Currently, there are some options that use `enum`s and some that use
typed strings. I think typed strings are preferable because someone
extending a generator only needs to import the main generator that
they're extending, not all the transitive dependencies of that
generator.
Current extending code:
```
// ...
import { applicationGenerator as reactApplicationGenerator } from '@nx/react';
import { Linter } from '@nx/eslint';
export async function applicationGenerator(
tree: Tree,
options: ApplicationGeneratorSchema
) {
reactApplicationGenerator(tree, {
...options,
linter: Linter.EsLint,
});
}
```
Desired extending code:
```
// ...
import { applicationGenerator as reactApplicationGenerator } from '@nx/react';
export async function applicationGenerator(
tree: Tree,
options: ApplicationGeneratorSchema
) {
reactApplicationGenerator(tree, {
...options,
linter: 'eslint',
});
}
```
The problem is not just an extra line of code, the person extending the
`reactApplicationGenerator` has to dig into the implementation details
of the generator itself in order to know where to find the `Linter`
enum. The `e2eTestRunner` is already a typed string and is easily
extended.
The solution I'm proposing in this PR would define a typed string in the
same file as the existing enum. None of the implementations need to
change. No community plugin code will be broken.
* feat(devkit): split create-empty-tree to different functions
* chore(repo): apply migration for createEmptyTree
* cleanup(misc): fix tests that migration misses
* feat(testing): move jest config to .ts
move jest config and preset to ts files
ISSUES CLOSED: #8344
* fix(testing): update tests for jest.config.ts changes
update tests broken by renaming jest fils to ts files
* fix(testing): add .test. files to spec tsconfig template
add support for .test.ts and with supportTsx .test.{js|tsx|jsx} files
in the tsconfig.spec.json template.
Note each package that excludes testing files will need to be updated to
exclude the new files (coming in future commits)
* fix(angular): add .test.ts support in tsconfigs
add .test.ts in angular jest template
update angular generators to exclude test files
* fix(gatsby): add .test. file prefixes to tsconfig ignore
ignore the new .test.{js|ts|jsx|tsx} files added to jest configs
* fix(react): add .test. file prefix to app/lib tsconfigs
add .test.{ts|js|tsx|jsx} files to be excluded by app/lib tsconfig
* fix(node): add .test. file prefix to app/lib tsconfig
add .test.{ts|js|tsx|jsx} files to be excluded by app/lib tsconfig
ISSUES CLOSED: #7263
* fix(nest): update tests for new .test.ts files in tsconfig
update tests to account for changes in node generators which add .test.ts to the exclude of
tsconfigs
* fix(express): update tests to account for new tsconfig changes
updated snapshots
added new patterns for tsconfig
* fix(linter): update snapshots for new tsconfig changes
snapshot updated to include new .test.ts file changes for tsconfig
* fix(node): update testing to account for spec tsconfig changes
add .test.ts files in e2e tests
* fix(testing): add migration for tsconfig changes
initial migration and test for tsconfig changes
* chore(testing): add to migrations collection
add the update-ts-config-for-test-filenames to migrations
* fix(testing): fix filesystem issue with jest tests
mock readConfig to always return an basic config to prevent issues of not finding a config in non
linux environments, aka missing /root
* cleanup(testing): update error message
update message logged when tsconfig isn't found to mention what was trying to be accompished so it
can be manually updated if desired.
* feat(core): standalone project configuration is default
* chore(core): changes to e2e tests
* fix(core): intuit projects when inside their directories when using project.json files
* chore(core): e2e changes
* fix(core): standalone configurations work with npm-project generator
* chore(core): e2e tests should use standalone configurations
* chore(core): e2e fixes per review
* feat(angular): upgrade Angular to v12.0.0-rc.3
* feat(angular): target Nx v12.4.0-beta.0 for Angular v12.0.0-rc.0 upgrade
* fix(angular): use defaultConfiguration if no other configuration is passed
* cleanup(angular): sync migration folder name to target version
* fix(repo): creating custom schema flattener for docs
* chore(repo): amend yarn.lock
* feat(angular): update angular storybook to use webpack 5
* fix(angular): add legacy peer deps for angular+jest
* fix(angular): move migrations to 12.3.0-rc.0
Co-authored-by: Zack DeRose <zack.derose@gmail.com>
Co-authored-by: Jason Jean <jasonjean1993@gmail.com>