@nx/remix 17.0.0 → 17.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +32 -89
  3. package/executors.json +0 -12
  4. package/generators.d.ts +14 -0
  5. package/generators.js +31 -0
  6. package/generators.json +14 -19
  7. package/index.d.ts +1 -0
  8. package/index.js +5 -0
  9. package/migrations.json +68 -86
  10. package/package.json +44 -13
  11. package/plugin.d.ts +1 -0
  12. package/plugin.js +6 -0
  13. package/plugins/component-testing/index.js +11 -6
  14. package/src/executors/build/build.impl.js +64 -74
  15. package/src/executors/build/schema.json +1 -1
  16. package/src/executors/serve/serve.impl.js +43 -43
  17. package/src/generators/action/action.impl.js +24 -26
  18. package/src/generators/action/schema.d.ts +7 -1
  19. package/src/generators/action/schema.json +11 -8
  20. package/src/generators/application/__snapshots__/application.impl.spec.ts.snap +1119 -305
  21. package/src/generators/application/application.impl.d.ts +3 -1
  22. package/src/generators/application/application.impl.js +171 -110
  23. package/src/generators/application/files/common/app/nx-welcome.tsx__tmpl__ +886 -0
  24. package/src/generators/application/files/common/app/root.tsx__tmpl__ +3 -3
  25. package/src/generators/application/files/common/app/routes/_index.tsx__tmpl__ +9 -0
  26. package/src/generators/application/files/common/remix.config.js__tmpl__ +13 -7
  27. package/src/generators/application/files/common/tests/routes/_index.spec.tsx__tmpl__ +16 -0
  28. package/src/generators/application/files/common/tsconfig.app.json__tmpl__ +20 -0
  29. package/src/generators/application/files/common/tsconfig.json__tmpl__ +20 -14
  30. package/src/generators/application/files/integrated/package.json__tmpl__ +1 -0
  31. package/src/generators/application/lib/add-e2e.d.ts +3 -0
  32. package/src/generators/application/lib/add-e2e.js +68 -0
  33. package/src/generators/application/lib/index.d.ts +1 -0
  34. package/src/generators/application/lib/index.js +1 -1
  35. package/src/generators/application/lib/normalize-options.d.ts +8 -3
  36. package/src/generators/application/lib/normalize-options.js +52 -14
  37. package/src/generators/application/lib/update-unit-test-config.d.ts +1 -1
  38. package/src/generators/application/lib/update-unit-test-config.js +32 -7
  39. package/src/generators/application/schema.d.ts +7 -1
  40. package/src/generators/application/schema.json +17 -11
  41. package/src/generators/cypress-component-configuration/cypress-component-configuration.impl.d.ts +3 -1
  42. package/src/generators/cypress-component-configuration/cypress-component-configuration.impl.js +26 -17
  43. package/src/generators/cypress-component-configuration/schema.d.ts +1 -0
  44. package/src/generators/error-boundary/__snapshots__/error-boundary.impl.spec.ts.snap +39 -27
  45. package/src/generators/error-boundary/error-boundary.impl.js +6 -15
  46. package/src/generators/error-boundary/lib/add-v2-error-boundary.js +11 -16
  47. package/src/generators/error-boundary/lib/index.d.ts +0 -1
  48. package/src/generators/error-boundary/lib/index.js +0 -2
  49. package/src/generators/error-boundary/lib/normalize-options.d.ts +1 -1
  50. package/src/generators/error-boundary/lib/normalize-options.js +9 -5
  51. package/src/generators/error-boundary/schema.d.ts +7 -2
  52. package/src/generators/error-boundary/schema.json +14 -16
  53. package/src/generators/init/init.d.ts +5 -0
  54. package/src/generators/init/init.js +60 -0
  55. package/src/generators/init/schema.d.ts +7 -0
  56. package/src/generators/init/schema.json +33 -0
  57. package/src/generators/library/__snapshots__/library.impl.spec.ts.snap +157 -0
  58. package/src/generators/library/lib/add-tsconfig-entry-points.js +0 -1
  59. package/src/generators/library/lib/add-unit-testing.js +5 -7
  60. package/src/generators/library/lib/index.js +0 -1
  61. package/src/generators/library/lib/normalize-options.d.ts +3 -2
  62. package/src/generators/library/lib/normalize-options.js +21 -11
  63. package/src/generators/library/lib/update-buildable-config.js +5 -2
  64. package/src/generators/library/library.impl.d.ts +3 -1
  65. package/src/generators/library/library.impl.js +37 -33
  66. package/src/generators/library/schema.d.ts +3 -0
  67. package/src/generators/library/schema.json +7 -1
  68. package/src/generators/loader/loader.impl.js +24 -26
  69. package/src/generators/loader/schema.d.ts +7 -1
  70. package/src/generators/loader/schema.json +11 -8
  71. package/src/generators/meta/lib/v2.impl.js +14 -16
  72. package/src/generators/meta/meta.impl.js +2 -17
  73. package/src/generators/meta/schema.d.ts +7 -2
  74. package/src/generators/meta/schema.json +11 -12
  75. package/src/generators/preset/lib/normalize-options.js +5 -3
  76. package/src/generators/preset/preset.impl.js +22 -23
  77. package/src/generators/preset/schema.json +2 -1
  78. package/src/generators/resource-route/__snapshots__/resource-route.impl.spec.ts.snap +21 -0
  79. package/src/generators/resource-route/resource-route.impl.js +32 -26
  80. package/src/generators/resource-route/schema.d.ts +7 -1
  81. package/src/generators/resource-route/schema.json +11 -8
  82. package/src/generators/route/__snapshots__/route.impl.spec.ts.snap +62 -9
  83. package/src/generators/route/route.impl.js +56 -43
  84. package/src/generators/route/schema.d.ts +7 -1
  85. package/src/generators/route/schema.json +12 -9
  86. package/src/generators/setup/schema.json +2 -1
  87. package/src/generators/setup/setup.impl.js +23 -23
  88. package/src/generators/setup-tailwind/__snapshots__/setup-tailwind.impl.spec.ts.snap +51 -33
  89. package/src/generators/setup-tailwind/lib/index.js +0 -1
  90. package/src/generators/setup-tailwind/lib/update-remix-config.js +3 -7
  91. package/src/generators/setup-tailwind/schema.json +2 -1
  92. package/src/generators/setup-tailwind/setup-tailwind.impl.js +25 -29
  93. package/src/generators/storybook-configuration/__snapshots__/storybook-configuration.impl.spec.ts.snap +15 -27
  94. package/src/generators/storybook-configuration/schema.d.ts +2 -1
  95. package/src/generators/storybook-configuration/schema.json +5 -12
  96. package/src/generators/storybook-configuration/storybook-configuration.impl.d.ts +2 -1
  97. package/src/generators/storybook-configuration/storybook-configuration.impl.js +19 -12
  98. package/src/generators/style/schema.d.ts +7 -1
  99. package/src/generators/style/schema.json +13 -10
  100. package/src/generators/style/style.impl.js +32 -24
  101. package/src/generators/utils/update-dependencies.d.ts +2 -0
  102. package/src/generators/utils/update-dependencies.js +21 -0
  103. package/src/plugins/__snapshots__/plugin.spec.ts.snap +113 -0
  104. package/src/plugins/plugin.d.ts +9 -0
  105. package/src/plugins/plugin.js +134 -0
  106. package/src/utils/create-watch-paths.js +8 -13
  107. package/src/utils/get-default-export-name.js +1 -3
  108. package/src/utils/get-default-export.js +0 -1
  109. package/src/utils/insert-import.js +0 -1
  110. package/src/utils/insert-statement-after-imports.js +0 -1
  111. package/src/utils/insert-statement-in-default-function.js +0 -1
  112. package/src/utils/remix-config.d.ts +2 -2
  113. package/src/utils/remix-config.js +34 -11
  114. package/src/utils/remix-route-utils.d.ts +2 -2
  115. package/src/utils/remix-route-utils.js +23 -17
  116. package/src/utils/testing-config-utils.d.ts +3 -2
  117. package/src/utils/testing-config-utils.js +24 -10
  118. package/src/utils/upsert-links-function.js +0 -1
  119. package/src/utils/versions.d.ts +10 -9
  120. package/src/utils/versions.js +15 -15
  121. package/plugins/component-testing/index.js.map +0 -1
  122. package/src/executors/build/build.impl.js.map +0 -1
  123. package/src/executors/build/compat.d.ts +0 -2
  124. package/src/executors/build/compat.js +0 -6
  125. package/src/executors/build/compat.js.map +0 -1
  126. package/src/executors/serve/compat.d.ts +0 -2
  127. package/src/executors/serve/compat.js +0 -6
  128. package/src/executors/serve/compat.js.map +0 -1
  129. package/src/executors/serve/serve.impl.js.map +0 -1
  130. package/src/generators/action/action.impl.js.map +0 -1
  131. package/src/generators/application/application.impl.js.map +0 -1
  132. package/src/generators/application/files/common/app/routes/index.tsx__tmpl__ +0 -32
  133. package/src/generators/application/lib/index.js.map +0 -1
  134. package/src/generators/application/lib/normalize-options.js.map +0 -1
  135. package/src/generators/application/lib/update-unit-test-config.js.map +0 -1
  136. package/src/generators/cypress/cypress.impl.d.ts +0 -3
  137. package/src/generators/cypress/cypress.impl.js +0 -67
  138. package/src/generators/cypress/cypress.impl.js.map +0 -1
  139. package/src/generators/cypress/schema.d.ts +0 -10
  140. package/src/generators/cypress/schema.json +0 -55
  141. package/src/generators/cypress-component-configuration/cypress-component-configuration.impl.js.map +0 -1
  142. package/src/generators/error-boundary/error-boundary.impl.js.map +0 -1
  143. package/src/generators/error-boundary/lib/add-v1-error-boundary.d.ts +0 -3
  144. package/src/generators/error-boundary/lib/add-v1-error-boundary.js +0 -21
  145. package/src/generators/error-boundary/lib/add-v1-error-boundary.js.map +0 -1
  146. package/src/generators/error-boundary/lib/add-v2-error-boundary.js.map +0 -1
  147. package/src/generators/error-boundary/lib/index.js.map +0 -1
  148. package/src/generators/error-boundary/lib/normalize-options.js.map +0 -1
  149. package/src/generators/library/lib/add-tsconfig-entry-points.js.map +0 -1
  150. package/src/generators/library/lib/add-unit-testing.js.map +0 -1
  151. package/src/generators/library/lib/index.js.map +0 -1
  152. package/src/generators/library/lib/normalize-options.js.map +0 -1
  153. package/src/generators/library/lib/update-buildable-config.js.map +0 -1
  154. package/src/generators/library/library.impl.js.map +0 -1
  155. package/src/generators/loader/loader.impl.js.map +0 -1
  156. package/src/generators/meta/lib/normalize-options.d.ts +0 -3
  157. package/src/generators/meta/lib/normalize-options.js +0 -15
  158. package/src/generators/meta/lib/normalize-options.js.map +0 -1
  159. package/src/generators/meta/lib/v1.impl.d.ts +0 -3
  160. package/src/generators/meta/lib/v1.impl.js +0 -30
  161. package/src/generators/meta/lib/v1.impl.js.map +0 -1
  162. package/src/generators/meta/lib/v2.impl.js.map +0 -1
  163. package/src/generators/meta/meta.impl.js.map +0 -1
  164. package/src/generators/preset/lib/normalize-options.js.map +0 -1
  165. package/src/generators/preset/preset.impl.js.map +0 -1
  166. package/src/generators/resource-route/resource-route.impl.js.map +0 -1
  167. package/src/generators/route/route.impl.js.map +0 -1
  168. package/src/generators/setup/setup.impl.js.map +0 -1
  169. package/src/generators/setup-tailwind/lib/index.js.map +0 -1
  170. package/src/generators/setup-tailwind/lib/update-remix-config.js.map +0 -1
  171. package/src/generators/setup-tailwind/setup-tailwind.impl.js.map +0 -1
  172. package/src/generators/storybook-configuration/storybook-configuration.impl.js.map +0 -1
  173. package/src/generators/style/style.impl.js.map +0 -1
  174. package/src/index.d.ts +0 -15
  175. package/src/index.js +0 -21
  176. package/src/index.js.map +0 -1
  177. package/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.d.ts +0 -6
  178. package/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.js +0 -45
  179. package/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.js.map +0 -1
  180. package/src/migrations/update-15-8-6/update-remix-env-d.d.ts +0 -6
  181. package/src/migrations/update-15-8-6/update-remix-env-d.js +0 -27
  182. package/src/migrations/update-15-8-6/update-remix-env-d.js.map +0 -1
  183. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +0 -2
  184. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +0 -13
  185. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js.map +0 -1
  186. package/src/utils/create-watch-paths.js.map +0 -1
  187. package/src/utils/get-default-export-name.js.map +0 -1
  188. package/src/utils/get-default-export.js.map +0 -1
  189. package/src/utils/get-remix-projects.d.ts +0 -2
  190. package/src/utils/get-remix-projects.js +0 -15
  191. package/src/utils/get-remix-projects.js.map +0 -1
  192. package/src/utils/insert-import.js.map +0 -1
  193. package/src/utils/insert-statement-after-imports.js.map +0 -1
  194. package/src/utils/insert-statement-in-default-function.js.map +0 -1
  195. package/src/utils/project.d.ts +0 -2
  196. package/src/utils/project.js +0 -15
  197. package/src/utils/project.js.map +0 -1
  198. package/src/utils/remix-config.js.map +0 -1
  199. package/src/utils/remix-route-utils.js.map +0 -1
  200. package/src/utils/testing-config-utils.js.map +0 -1
  201. package/src/utils/upsert-links-function.js.map +0 -1
  202. package/src/utils/versions.js.map +0 -1
@@ -1,3 +1,5 @@
1
1
  import { GeneratorCallback, Tree } from '@nx/devkit';
2
2
  import { NxRemixGeneratorSchema } from './schema';
3
- export default function (tree: Tree, _options: NxRemixGeneratorSchema): Promise<GeneratorCallback>;
3
+ export declare function remixApplicationGenerator(tree: Tree, options: NxRemixGeneratorSchema): Promise<GeneratorCallback>;
4
+ export declare function remixApplicationGeneratorInternal(tree: Tree, _options: NxRemixGeneratorSchema): Promise<GeneratorCallback>;
5
+ export default remixApplicationGenerator;
@@ -1,21 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
3
+ exports.remixApplicationGeneratorInternal = exports.remixApplicationGenerator = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const create_ts_config_1 = require("@nx/js/src/utils/typescript/create-ts-config");
6
6
  const versions_1 = require("../../utils/versions");
7
- const cypress_impl_1 = require("../cypress/cypress.impl");
8
7
  const lib_1 = require("./lib");
9
- function default_1(tree, _options) {
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- const options = (0, lib_1.normalizeOptions)(tree, _options);
12
- const tasks = [];
13
- (0, devkit_1.addProjectConfiguration)(tree, options.projectName, {
14
- root: options.projectRoot,
15
- sourceRoot: `${options.projectRoot}`,
16
- projectType: 'application',
17
- tags: options.parsedTags,
18
- targets: {
8
+ const update_dependencies_1 = require("../utils/update-dependencies");
9
+ const init_1 = require("../init/init");
10
+ const js_1 = require("@nx/js");
11
+ const add_build_target_defaults_1 = require("@nx/devkit/src/generators/add-build-target-defaults");
12
+ const log_show_project_command_1 = require("@nx/devkit/src/utils/log-show-project-command");
13
+ const testing_config_utils_1 = require("../../utils/testing-config-utils");
14
+ function remixApplicationGenerator(tree, options) {
15
+ return remixApplicationGeneratorInternal(tree, {
16
+ addPlugin: false,
17
+ ...options,
18
+ });
19
+ }
20
+ exports.remixApplicationGenerator = remixApplicationGenerator;
21
+ async function remixApplicationGeneratorInternal(tree, _options) {
22
+ const options = await (0, lib_1.normalizeOptions)(tree, _options);
23
+ const tasks = [
24
+ await (0, init_1.default)(tree, {
25
+ skipFormat: true,
26
+ addPlugin: options.addPlugin,
27
+ }),
28
+ await (0, js_1.initGenerator)(tree, { skipFormat: true }),
29
+ ];
30
+ (0, add_build_target_defaults_1.addBuildTargetDefaults)(tree, '@nx/remix:build');
31
+ (0, devkit_1.addProjectConfiguration)(tree, options.projectName, {
32
+ root: options.projectRoot,
33
+ sourceRoot: `${options.projectRoot}`,
34
+ projectType: 'application',
35
+ tags: options.parsedTags,
36
+ targets: !options.addPlugin
37
+ ? {
19
38
  build: {
20
39
  executor: '@nx/remix:build',
21
40
  outputs: ['{options.outputPath}'],
@@ -26,125 +45,167 @@ function default_1(tree, _options) {
26
45
  serve: {
27
46
  executor: `@nx/remix:serve`,
28
47
  options: {
48
+ command: `${(0, devkit_1.getPackageManagerCommand)().exec} remix-serve build/index.js`,
49
+ manual: true,
29
50
  port: 4200,
30
51
  },
31
52
  },
32
53
  start: {
33
54
  dependsOn: ['build'],
34
- command: `remix-serve build`,
55
+ command: `remix-serve build/index.js`,
35
56
  options: {
36
57
  cwd: options.projectRoot,
37
58
  },
38
59
  },
39
60
  typecheck: {
40
- command: `tsc`,
61
+ command: `tsc --project tsconfig.app.json`,
41
62
  options: {
42
63
  cwd: options.projectRoot,
43
64
  },
44
65
  },
45
- },
46
- });
47
- const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {
48
- '@remix-run/node': versions_1.remixVersion,
49
- '@remix-run/react': versions_1.remixVersion,
50
- '@remix-run/serve': versions_1.remixVersion,
51
- isbot: versions_1.isbotVersion,
52
- react: versions_1.reactVersion,
53
- 'react-dom': versions_1.reactDomVersion,
54
- }, {
55
- '@remix-run/dev': versions_1.remixVersion,
56
- '@remix-run/eslint-config': versions_1.remixVersion,
57
- '@types/react': versions_1.typesReactVersion,
58
- '@types/react-dom': versions_1.typesReactDomVersion,
59
- eslint: versions_1.eslintVersion,
60
- typescript: versions_1.typescriptVersion,
61
- });
62
- tasks.push(installTask);
63
- const vars = Object.assign(Object.assign({}, options), { tmpl: '', offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot), remixVersion: versions_1.remixVersion,
64
- isbotVersion: versions_1.isbotVersion,
65
- reactVersion: versions_1.reactVersion,
66
- reactDomVersion: versions_1.reactDomVersion,
67
- typesReactVersion: versions_1.typesReactVersion,
68
- typesReactDomVersion: versions_1.typesReactDomVersion,
69
- eslintVersion: versions_1.eslintVersion,
70
- typescriptVersion: versions_1.typescriptVersion });
71
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files/common'), options.projectRoot, vars);
72
- if (options.rootProject) {
73
- const gitignore = tree.read('.gitignore', 'utf-8');
74
- tree.write('.gitignore', `${gitignore}\n.cache\nbuild\npublic/build\n.env\n`);
75
- }
76
- else {
77
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files/integrated'), options.projectRoot, vars);
78
- }
79
- if (options.unitTestRunner !== 'none') {
80
- if (options.unitTestRunner === 'vitest') {
81
- const { vitestGenerator } = (0, devkit_1.ensurePackage)('@nx/vite', (0, versions_1.getPackageVersion)(tree, 'nx'));
82
- const vitestTask = yield vitestGenerator(tree, {
83
- uiFramework: 'react',
84
- project: options.projectName,
85
- coverageProvider: 'c8',
86
- inSourceTests: false,
87
- skipFormat: true,
88
- testEnvironment: 'jsdom',
89
- });
90
- tasks.push(vitestTask);
91
- }
92
- else {
93
- const { jestProjectGenerator } = (0, devkit_1.ensurePackage)('@nx/jest', (0, versions_1.getPackageVersion)(tree, 'nx'));
94
- const jestTask = yield jestProjectGenerator(tree, {
95
- project: options.projectName,
96
- skipFormat: true,
97
- setupFile: 'none',
98
- supportTsx: true,
99
- });
100
- tasks.push(jestTask);
101
66
  }
102
- const pkgInstallTask = (0, lib_1.updateUnitTestConfig)(tree, options.projectRoot, options.unitTestRunner);
103
- tasks.push(pkgInstallTask);
104
- }
105
- if (options.js) {
106
- (0, devkit_1.toJS)(tree);
107
- }
108
- if (options.rootProject && tree.exists('tsconfig.base.json')) {
109
- // If this is a standalone project, merge tsconfig.json and tsconfig.base.json.
110
- const tsConfigBaseJson = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
111
- (0, devkit_1.updateJson)(tree, 'tsconfig.json', (json) => {
112
- var _a, _b, _c, _d;
113
- delete json.extends;
114
- json.compilerOptions = Object.assign(Object.assign(Object.assign({}, tsConfigBaseJson.compilerOptions), json.compilerOptions), {
115
- // Taken from remix default setup
116
- // https://github.com/remix-run/remix/blob/68c8982/templates/remix/tsconfig.json#L15-L17
117
- paths: {
118
- '~/*': ['./app/*'],
119
- } });
120
- json.include = [
121
- ...((_a = tsConfigBaseJson.include) !== null && _a !== void 0 ? _a : []),
122
- ...((_b = json.include) !== null && _b !== void 0 ? _b : []),
123
- ];
124
- json.exclude = [
125
- ...((_c = tsConfigBaseJson.exclude) !== null && _c !== void 0 ? _c : []),
126
- ...((_d = json.exclude) !== null && _d !== void 0 ? _d : []),
127
- ];
128
- return json;
67
+ : {},
68
+ });
69
+ const installTask = (0, update_dependencies_1.updateDependencies)(tree);
70
+ tasks.push(installTask);
71
+ const vars = {
72
+ ...options,
73
+ tmpl: '',
74
+ offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot),
75
+ remixVersion: versions_1.remixVersion,
76
+ isbotVersion: versions_1.isbotVersion,
77
+ reactVersion: versions_1.reactVersion,
78
+ reactDomVersion: versions_1.reactDomVersion,
79
+ typesReactVersion: versions_1.typesReactVersion,
80
+ typesReactDomVersion: versions_1.typesReactDomVersion,
81
+ eslintVersion: versions_1.eslintVersion,
82
+ typescriptVersion: versions_1.typescriptVersion,
83
+ };
84
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files/common'), options.projectRoot, vars);
85
+ if (options.rootProject) {
86
+ const gitignore = tree.read('.gitignore', 'utf-8');
87
+ tree.write('.gitignore', `${gitignore}\n.cache\nbuild\npublic/build\n.env\n`);
88
+ }
89
+ else {
90
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files/integrated'), options.projectRoot, vars);
91
+ }
92
+ if (options.unitTestRunner !== 'none') {
93
+ if (options.unitTestRunner === 'vitest') {
94
+ const { vitestGenerator, createOrEditViteConfig } = (0, devkit_1.ensurePackage)('@nx/vite', (0, versions_1.getPackageVersion)(tree, 'nx'));
95
+ const vitestTask = await vitestGenerator(tree, {
96
+ uiFramework: 'react',
97
+ project: options.projectName,
98
+ coverageProvider: 'v8',
99
+ inSourceTests: false,
100
+ skipFormat: true,
101
+ testEnvironment: 'jsdom',
102
+ skipViteConfig: true,
103
+ addPlugin: options.addPlugin,
129
104
  });
130
- tree.delete('tsconfig.base.json');
105
+ createOrEditViteConfig(tree, {
106
+ project: options.projectName,
107
+ includeLib: false,
108
+ includeVitest: true,
109
+ testEnvironment: 'jsdom',
110
+ imports: [`import react from '@vitejs/plugin-react';`],
111
+ plugins: [`react()`],
112
+ }, true, undefined, true);
113
+ tasks.push(vitestTask);
131
114
  }
132
115
  else {
133
- // Otherwise, extract the tsconfig.base.json from tsconfig.json so we can share settings.
134
- (0, create_ts_config_1.extractTsConfigBase)(tree);
135
- }
136
- if (options.e2eTestRunner === 'cypress') {
137
- const cypressTasks = yield (0, cypress_impl_1.default)(tree, {
116
+ const { configurationGenerator: jestConfigurationGenerator } = (0, devkit_1.ensurePackage)('@nx/jest', (0, versions_1.getPackageVersion)(tree, 'nx'));
117
+ const jestTask = await jestConfigurationGenerator(tree, {
138
118
  project: options.projectName,
139
- name: options.rootProject ? `e2e` : `${options.projectName}-e2e`,
119
+ setupFile: 'none',
120
+ supportTsx: true,
121
+ skipSerializers: false,
122
+ skipPackageJson: false,
123
+ skipFormat: true,
124
+ addPlugin: options.addPlugin,
140
125
  });
141
- tasks.push(cypressTasks);
126
+ const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.projectName);
127
+ if (projectConfig.targets['test']?.options) {
128
+ projectConfig.targets['test'].options.passWithNoTests = true;
129
+ (0, devkit_1.updateProjectConfiguration)(tree, options.projectName, projectConfig);
130
+ }
131
+ tasks.push(jestTask);
142
132
  }
143
- if (!options.skipFormat) {
144
- yield (0, devkit_1.formatFiles)(tree);
133
+ const pkgInstallTask = (0, lib_1.updateUnitTestConfig)(tree, options.projectRoot, options.unitTestRunner, options.rootProject);
134
+ tasks.push(pkgInstallTask);
135
+ }
136
+ else {
137
+ tree.delete((0, devkit_1.joinPathFragments)(options.projectRoot, `tests/routes/_index.spec.tsx`));
138
+ }
139
+ if (options.linter !== 'none') {
140
+ const { lintProjectGenerator } = (0, devkit_1.ensurePackage)('@nx/eslint', (0, versions_1.getPackageVersion)(tree, 'nx'));
141
+ const eslintTask = await lintProjectGenerator(tree, {
142
+ linter: options.linter,
143
+ project: options.projectName,
144
+ tsConfigPaths: [
145
+ (0, devkit_1.joinPathFragments)(options.projectRoot, 'tsconfig.app.json'),
146
+ ],
147
+ unitTestRunner: options.unitTestRunner,
148
+ skipFormat: true,
149
+ rootProject: options.rootProject,
150
+ addPlugin: options.addPlugin,
151
+ });
152
+ tasks.push(eslintTask);
153
+ tree.write((0, devkit_1.joinPathFragments)(options.projectRoot, '.eslintignore'), (0, devkit_1.stripIndents) `build
154
+ public/build`);
155
+ }
156
+ if (options.js) {
157
+ (0, devkit_1.toJS)(tree);
158
+ }
159
+ if (options.rootProject && tree.exists('tsconfig.base.json')) {
160
+ // If this is a standalone project, merge tsconfig.json and tsconfig.base.json.
161
+ const tsConfigBaseJson = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
162
+ (0, devkit_1.updateJson)(tree, 'tsconfig.json', (json) => {
163
+ delete json.extends;
164
+ json.compilerOptions = {
165
+ ...tsConfigBaseJson.compilerOptions,
166
+ ...json.compilerOptions,
167
+ // Taken from remix default setup
168
+ // https://github.com/remix-run/remix/blob/68c8982/templates/remix/tsconfig.json#L15-L17
169
+ paths: {
170
+ '~/*': ['./app/*'],
171
+ },
172
+ };
173
+ json.include = [
174
+ ...(tsConfigBaseJson.include ?? []),
175
+ ...(json.include ?? []),
176
+ ];
177
+ json.exclude = [
178
+ ...(tsConfigBaseJson.exclude ?? []),
179
+ ...(json.exclude ?? []),
180
+ ];
181
+ return json;
182
+ });
183
+ tree.delete('tsconfig.base.json');
184
+ }
185
+ else {
186
+ // Otherwise, extract the tsconfig.base.json from tsconfig.json so we can share settings.
187
+ (0, create_ts_config_1.extractTsConfigBase)(tree);
188
+ }
189
+ if (options.rootProject) {
190
+ (0, devkit_1.updateJson)(tree, `package.json`, (json) => {
191
+ json.type = 'module';
192
+ return json;
193
+ });
194
+ if (options.unitTestRunner === 'jest') {
195
+ tree.write('jest.preset.js', `import { nxPreset } from '@nx/jest/preset/jest-preset.js';
196
+ export default {...nxPreset};
197
+ `);
198
+ (0, testing_config_utils_1.updateJestTestMatch)(tree, 'jest.config.ts', '<rootDir>/tests/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}');
145
199
  }
146
- return (0, devkit_1.runTasksInSerial)(...tasks);
200
+ }
201
+ tasks.push(await (0, lib_1.addE2E)(tree, options));
202
+ if (!options.skipFormat) {
203
+ await (0, devkit_1.formatFiles)(tree);
204
+ }
205
+ tasks.push(() => {
206
+ (0, log_show_project_command_1.logShowProjectCommand)(options.projectName);
147
207
  });
208
+ return (0, devkit_1.runTasksInSerial)(...tasks);
148
209
  }
149
- exports.default = default_1;
150
- //# sourceMappingURL=application.impl.js.map
210
+ exports.remixApplicationGeneratorInternal = remixApplicationGeneratorInternal;
211
+ exports.default = remixApplicationGenerator;