@nx/vite 17.2.0-beta.0 → 17.2.0-beta.10

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 (71) hide show
  1. package/migrations.json +35 -15
  2. package/package.json +8 -7
  3. package/plugins/rollup-replace-files.plugin.d.ts +2 -2
  4. package/plugins/rollup-replace-files.plugin.js +1 -1
  5. package/plugins/rollup-replace-files.plugin.js.map +1 -1
  6. package/src/executors/build/build.impl.d.ts +1 -1
  7. package/src/executors/build/build.impl.js +80 -18
  8. package/src/executors/build/build.impl.js.map +1 -1
  9. package/src/executors/build/schema.d.ts +3 -15
  10. package/src/executors/build/schema.json +0 -86
  11. package/src/executors/dev-server/dev-server.impl.js +31 -8
  12. package/src/executors/dev-server/dev-server.impl.js.map +1 -1
  13. package/src/executors/dev-server/schema.d.ts +0 -10
  14. package/src/executors/dev-server/schema.json +0 -63
  15. package/src/executors/preview-server/preview-server.impl.js +47 -14
  16. package/src/executors/preview-server/preview-server.impl.js.map +1 -1
  17. package/src/executors/preview-server/schema.d.ts +0 -7
  18. package/src/executors/preview-server/schema.json +0 -50
  19. package/src/executors/test/lib/nx-reporter.d.ts +14 -0
  20. package/src/executors/test/lib/nx-reporter.js +40 -0
  21. package/src/executors/test/lib/nx-reporter.js.map +1 -0
  22. package/src/executors/test/lib/utils.d.ts +4 -0
  23. package/src/executors/test/lib/utils.js +69 -0
  24. package/src/executors/test/lib/utils.js.map +1 -0
  25. package/src/executors/test/schema.d.ts +2 -8
  26. package/src/executors/test/schema.json +7 -43
  27. package/src/executors/test/vitest.impl.js +17 -113
  28. package/src/executors/test/vitest.impl.js.map +1 -1
  29. package/src/generators/configuration/configuration.js +4 -4
  30. package/src/generators/configuration/configuration.js.map +1 -1
  31. package/src/generators/init/init.d.ts +1 -1
  32. package/src/generators/init/init.js +23 -15
  33. package/src/generators/init/init.js.map +1 -1
  34. package/src/generators/vitest/files/tsconfig.spec.json__tmpl__ +1 -0
  35. package/src/generators/vitest/vitest-generator.js +2 -1
  36. package/src/generators/vitest/vitest-generator.js.map +1 -1
  37. package/src/migrations/update-17-2-0/lib/add-file-replacements.d.ts +2 -0
  38. package/src/migrations/update-17-2-0/lib/add-file-replacements.js +61 -0
  39. package/src/migrations/update-17-2-0/lib/add-file-replacements.js.map +1 -0
  40. package/src/migrations/update-17-2-0/lib/edit-build-config.d.ts +2 -0
  41. package/src/migrations/update-17-2-0/lib/edit-build-config.js +88 -0
  42. package/src/migrations/update-17-2-0/lib/edit-build-config.js.map +1 -0
  43. package/src/migrations/update-17-2-0/lib/edit-test-config.d.ts +2 -0
  44. package/src/migrations/update-17-2-0/lib/edit-test-config.js +71 -0
  45. package/src/migrations/update-17-2-0/lib/edit-test-config.js.map +1 -0
  46. package/src/migrations/update-17-2-0/lib/find-vite-config.d.ts +2 -0
  47. package/src/migrations/update-17-2-0/lib/find-vite-config.js +25 -0
  48. package/src/migrations/update-17-2-0/lib/find-vite-config.js.map +1 -0
  49. package/src/migrations/update-17-2-0/update-vite-config.d.ts +2 -0
  50. package/src/migrations/update-17-2-0/update-vite-config.js +48 -0
  51. package/src/migrations/update-17-2-0/update-vite-config.js.map +1 -0
  52. package/src/utils/executor-utils.js +4 -4
  53. package/src/utils/executor-utils.js.map +1 -1
  54. package/src/utils/generator-utils.d.ts +2 -1
  55. package/src/utils/generator-utils.js +38 -27
  56. package/src/utils/generator-utils.js.map +1 -1
  57. package/src/utils/options-utils.d.ts +3 -15
  58. package/src/utils/options-utils.js +17 -61
  59. package/src/utils/options-utils.js.map +1 -1
  60. package/src/utils/test-files/react-lib-non-buildable-jest.json +1 -4
  61. package/src/utils/test-files/react-lib-non-buildable-vitest.json +1 -4
  62. package/src/utils/test-files/react-mixed-project.config.json +1 -6
  63. package/src/utils/test-files/react-project.config.json +1 -4
  64. package/src/utils/test-files/react-vite-project.config.json +1 -4
  65. package/src/utils/test-files/unknown-project.config.json +1 -4
  66. package/src/utils/test-files/web-project.config.json +1 -4
  67. package/src/utils/versions.d.ts +3 -3
  68. package/src/utils/versions.js +3 -3
  69. package/src/utils/versions.js.map +1 -1
  70. package/src/utils/vite-config-edit-utils.js +1 -1
  71. package/src/utils/vite-config-edit-utils.js.map +1 -1
@@ -13,52 +13,31 @@ _export(exports, {
13
13
  return _default;
14
14
  }
15
15
  });
16
- const _extends = require("@swc/helpers/_/_extends");
17
16
  const _devkit = require("@nx/devkit");
18
17
  const _path = require("path");
19
- const _fs = require("fs");
20
18
  const _internal = require("@nx/js/src/internal");
21
- let NxReporter = class NxReporter {
22
- async *[Symbol.asyncIterator]() {
23
- do {
24
- const hasErrors = await this.deferred.promise;
25
- yield {
26
- hasErrors
27
- };
28
- this.setupDeferred();
29
- }while (this.watch)
30
- }
31
- setupDeferred() {
32
- let resolve;
33
- this.deferred = {
34
- promise: new Promise((res)=>{
35
- resolve = res;
36
- }),
37
- resolve
38
- };
39
- }
40
- onFinished(files, errors) {
41
- const hasErrors = files.some((f)=>{
42
- var _f_result;
43
- return ((_f_result = f.result) == null ? void 0 : _f_result.state) === 'fail';
44
- }) || (errors == null ? void 0 : errors.length) > 0;
45
- this.deferred.resolve(hasErrors);
46
- }
47
- constructor(watch){
48
- this.watch = watch;
49
- this.setupDeferred();
50
- }
51
- };
19
+ const _nxreporter = require("./lib/nx-reporter");
20
+ const _utils = require("./lib/utils");
52
21
  async function* vitestExecutor(options, context) {
53
22
  const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
54
23
  (0, _internal.registerTsConfigPaths)((0, _path.resolve)(_devkit.workspaceRoot, projectRoot, 'tsconfig.json'));
55
24
  const { startVitest } = await Function('return import("vitest/node")')();
56
- const nxReporter = new NxReporter(options.watch);
57
- const settings = await getSettings(options, context, projectRoot);
58
- settings.reporters.push(nxReporter);
25
+ const extraArgs = await (0, _utils.getExtraArgs)(options);
26
+ var _ref;
27
+ const resolvedOptions = (_ref = await (0, _utils.getOptions)(options, context, projectRoot, extraArgs)) != null ? _ref : {};
28
+ const nxReporter = new _nxreporter.NxReporter(resolvedOptions['watch']);
29
+ if (resolvedOptions['reporters'] === undefined) {
30
+ resolvedOptions['reporters'] = [];
31
+ } else if (typeof resolvedOptions['reporters'] === 'string') {
32
+ resolvedOptions['reporters'] = [
33
+ resolvedOptions['reporters']
34
+ ];
35
+ }
36
+ resolvedOptions['reporters'].push(nxReporter);
59
37
  var _options_testFiles;
60
38
  const cliFilters = (_options_testFiles = options.testFiles) != null ? _options_testFiles : [];
61
- const ctx = await startVitest(options.mode, cliFilters, settings);
39
+ var _resolvedOptions_mode;
40
+ const ctx = await startVitest((_resolvedOptions_mode = resolvedOptions['mode']) != null ? _resolvedOptions_mode : 'test', cliFilters, resolvedOptions);
62
41
  let hasErrors = false;
63
42
  const processExit = ()=>{
64
43
  ctx.exit();
@@ -68,7 +47,7 @@ async function* vitestExecutor(options, context) {
68
47
  process.exit(0);
69
48
  }
70
49
  };
71
- if (options.watch) {
50
+ if (resolvedOptions['watch'] === true) {
72
51
  process.on('SIGINT', processExit);
73
52
  process.on('SIGTERM', processExit);
74
53
  process.on('exit', processExit);
@@ -81,81 +60,6 @@ async function* vitestExecutor(options, context) {
81
60
  success: !hasErrors
82
61
  };
83
62
  }
84
- async function getSettings(options, context, projectRoot) {
85
- var _packageJson_dependencies, _packageJson_devDependencies, _resolved_config, _resolved_config_test, _resolved_config1, _resolved_config_test1, _resolved_config2;
86
- // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
87
- const { loadConfigFromFile } = await Function('return import("vite")')();
88
- const packageJsonPath = (0, _path.join)(_devkit.workspaceRoot, 'package.json');
89
- const packageJson = (0, _fs.existsSync)(packageJsonPath) ? (0, _devkit.readJsonFile)(packageJsonPath) : undefined;
90
- let provider;
91
- if ((packageJson == null ? void 0 : (_packageJson_dependencies = packageJson.dependencies) == null ? void 0 : _packageJson_dependencies['@vitest/coverage-istanbul']) || (packageJson == null ? void 0 : (_packageJson_devDependencies = packageJson.devDependencies) == null ? void 0 : _packageJson_devDependencies['@vitest/coverage-istanbul'])) {
92
- provider = 'istanbul';
93
- } else {
94
- provider = 'v8';
95
- }
96
- const offset = (0, _path.relative)(_devkit.workspaceRoot, context.cwd);
97
- // if reportsDirectory is not provided vitest will remove all files in the project root
98
- // when coverage is enabled in the vite.config.ts
99
- const coverage = options.reportsDirectory ? {
100
- enabled: options.coverage,
101
- reportsDirectory: options.reportsDirectory,
102
- provider
103
- } : {};
104
- const viteConfigPath = options.config ? options.config // config is expected to be from the workspace root
105
- : findViteConfig((0, _devkit.joinPathFragments)(context.root, projectRoot));
106
- if (!viteConfigPath) {
107
- throw new Error((0, _devkit.stripIndents)`
108
- Unable to load test config from config file ${viteConfigPath}.
109
-
110
- Please make sure that vitest is configured correctly,
111
- or use the @nx/vite:vitest generator to configure it for you.
112
- You can read more here: https://nx.dev/nx-api/vite/generators/vitest
113
- `);
114
- }
115
- const resolvedProjectRoot = (0, _path.resolve)(_devkit.workspaceRoot, projectRoot);
116
- const resolvedViteConfigPath = (0, _path.resolve)(_devkit.workspaceRoot, projectRoot, (0, _path.relative)(resolvedProjectRoot, viteConfigPath));
117
- const resolved = await loadConfigFromFile({
118
- mode: options.mode,
119
- command: 'serve'
120
- }, resolvedViteConfigPath, resolvedProjectRoot);
121
- if (!viteConfigPath || !(resolved == null ? void 0 : (_resolved_config = resolved.config) == null ? void 0 : _resolved_config['test'])) {
122
- var _resolved_path;
123
- _devkit.logger.warn((0, _devkit.stripIndents)`Unable to load test config from config file ${(_resolved_path = resolved == null ? void 0 : resolved.path) != null ? _resolved_path : viteConfigPath}
124
- Some settings may not be applied as expected.
125
- You can manually set the config in the project, ${context.projectName}, configuration.
126
- `);
127
- }
128
- var _options_reporters, _ref;
129
- const settings = _extends._({}, options, {
130
- // when running nx from the project root, the root will get appended to the cwd.
131
- // creating an invalid path and no tests will be found.
132
- // instead if we are not at the root, let the cwd be root.
133
- root: offset === '' ? resolvedProjectRoot : _devkit.workspaceRoot,
134
- config: resolvedViteConfigPath,
135
- reporters: [
136
- ...(_options_reporters = options.reporters) != null ? _options_reporters : [],
137
- ...(_ref = resolved == null ? void 0 : (_resolved_config1 = resolved.config) == null ? void 0 : (_resolved_config_test = _resolved_config1['test']) == null ? void 0 : _resolved_config_test.reporters) != null ? _ref : [],
138
- 'default'
139
- ],
140
- coverage: _extends._({}, coverage, resolved == null ? void 0 : (_resolved_config2 = resolved.config) == null ? void 0 : (_resolved_config_test1 = _resolved_config2['test']) == null ? void 0 : _resolved_config_test1.coverage)
141
- });
142
- return settings;
143
- }
144
- function findViteConfig(projectRootFullPath) {
145
- const allowsExt = [
146
- 'js',
147
- 'mjs',
148
- 'ts',
149
- 'cjs',
150
- 'mts',
151
- 'cts'
152
- ];
153
- for (const ext of allowsExt){
154
- if ((0, _fs.existsSync)((0, _devkit.joinPathFragments)(projectRootFullPath, `vite.config.${ext}`))) {
155
- return (0, _devkit.joinPathFragments)(projectRootFullPath, `vite.config.${ext}`);
156
- }
157
- }
158
- }
159
63
  const _default = vitestExecutor;
160
64
 
161
65
  //# sourceMappingURL=vitest.impl.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/executors/test/vitest.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n readJsonFile,\n stripIndents,\n workspaceRoot,\n} from '@nx/devkit';\nimport type { CoverageOptions, File, Reporter } from 'vitest';\nimport { VitestExecutorOptions } from './schema';\nimport { join, relative, resolve } from 'path';\nimport { existsSync } from 'fs';\nimport { registerTsConfigPaths } from '@nx/js/src/internal';\n\nclass NxReporter implements Reporter {\n deferred: {\n promise: Promise<boolean>;\n resolve: (val: boolean) => void;\n };\n\n constructor(private watch: boolean) {\n this.setupDeferred();\n }\n\n async *[Symbol.asyncIterator]() {\n do {\n const hasErrors = await this.deferred.promise;\n yield { hasErrors };\n this.setupDeferred();\n } while (this.watch);\n }\n\n private setupDeferred() {\n let resolve: (val: boolean) => void;\n this.deferred = {\n promise: new Promise((res) => {\n resolve = res;\n }),\n resolve,\n };\n }\n\n onFinished(files: File[], errors?: unknown[]) {\n const hasErrors =\n files.some((f) => f.result?.state === 'fail') || errors?.length > 0;\n this.deferred.resolve(hasErrors);\n }\n}\n\nexport async function* vitestExecutor(\n options: VitestExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n registerTsConfigPaths(resolve(workspaceRoot, projectRoot, 'tsconfig.json'));\n\n const { startVitest } = await (Function(\n 'return import(\"vitest/node\")'\n )() as Promise<typeof import('vitest/node')>);\n\n const nxReporter = new NxReporter(options.watch);\n const settings = await getSettings(options, context, projectRoot);\n settings.reporters.push(nxReporter);\n const cliFilters = options.testFiles ?? [];\n\n const ctx = await startVitest(options.mode, cliFilters, settings);\n\n let hasErrors = false;\n\n const processExit = () => {\n ctx.exit();\n if (hasErrors) {\n process.exit(1);\n } else {\n process.exit(0);\n }\n };\n\n if (options.watch) {\n process.on('SIGINT', processExit);\n process.on('SIGTERM', processExit);\n process.on('exit', processExit);\n }\n\n for await (const report of nxReporter) {\n // vitest sets the exitCode = 1 when code coverage isn't met\n hasErrors =\n report.hasErrors || (process.exitCode && process.exitCode !== 0);\n }\n\n return {\n success: !hasErrors,\n };\n}\n\nasync function getSettings(\n options: VitestExecutorOptions,\n context: ExecutorContext,\n projectRoot: string\n) {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { loadConfigFromFile } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n\n const packageJsonPath = join(workspaceRoot, 'package.json');\n const packageJson = existsSync(packageJsonPath)\n ? readJsonFile(packageJsonPath)\n : undefined;\n let provider: 'v8' | 'istanbul' | 'custom';\n if (\n packageJson?.dependencies?.['@vitest/coverage-istanbul'] ||\n packageJson?.devDependencies?.['@vitest/coverage-istanbul']\n ) {\n provider = 'istanbul';\n } else {\n provider = 'v8';\n }\n const offset = relative(workspaceRoot, context.cwd);\n // if reportsDirectory is not provided vitest will remove all files in the project root\n // when coverage is enabled in the vite.config.ts\n const coverage: CoverageOptions = options.reportsDirectory\n ? {\n enabled: options.coverage,\n reportsDirectory: options.reportsDirectory,\n provider,\n }\n : ({} as CoverageOptions);\n\n const viteConfigPath = options.config\n ? options.config // config is expected to be from the workspace root\n : findViteConfig(joinPathFragments(context.root, projectRoot));\n\n if (!viteConfigPath) {\n throw new Error(\n stripIndents`\n Unable to load test config from config file ${viteConfigPath}.\n \n Please make sure that vitest is configured correctly, \n or use the @nx/vite:vitest generator to configure it for you.\n You can read more here: https://nx.dev/nx-api/vite/generators/vitest\n `\n );\n }\n\n const resolvedProjectRoot = resolve(workspaceRoot, projectRoot);\n const resolvedViteConfigPath = resolve(\n workspaceRoot,\n projectRoot,\n relative(resolvedProjectRoot, viteConfigPath)\n );\n\n const resolved = await loadConfigFromFile(\n {\n mode: options.mode,\n command: 'serve',\n },\n resolvedViteConfigPath,\n resolvedProjectRoot\n );\n\n if (!viteConfigPath || !resolved?.config?.['test']) {\n logger.warn(stripIndents`Unable to load test config from config file ${\n resolved?.path ?? viteConfigPath\n }\nSome settings may not be applied as expected.\nYou can manually set the config in the project, ${\n context.projectName\n }, configuration.\n `);\n }\n\n const settings = {\n ...options,\n // when running nx from the project root, the root will get appended to the cwd.\n // creating an invalid path and no tests will be found.\n // instead if we are not at the root, let the cwd be root.\n root: offset === '' ? resolvedProjectRoot : workspaceRoot,\n config: resolvedViteConfigPath,\n reporters: [\n ...(options.reporters ?? []),\n ...((resolved?.config?.['test']?.reporters as string[]) ?? []),\n 'default',\n ] as (string | Reporter)[],\n coverage: { ...coverage, ...resolved?.config?.['test']?.coverage },\n };\n\n return settings;\n}\n\nfunction findViteConfig(projectRootFullPath: string): string {\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (\n existsSync(joinPathFragments(projectRootFullPath, `vite.config.${ext}`))\n ) {\n return joinPathFragments(projectRootFullPath, `vite.config.${ext}`);\n }\n }\n}\n\nexport default vitestExecutor;\n"],"names":["vitestExecutor","NxReporter","Symbol","asyncIterator","hasErrors","deferred","promise","setupDeferred","watch","resolve","Promise","res","onFinished","files","errors","some","f","result","state","length","constructor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","registerTsConfigPaths","workspaceRoot","startVitest","Function","nxReporter","settings","getSettings","reporters","push","cliFilters","testFiles","ctx","mode","processExit","exit","process","on","report","exitCode","success","packageJson","resolved","loadConfigFromFile","packageJsonPath","join","existsSync","readJsonFile","undefined","provider","dependencies","devDependencies","offset","relative","cwd","coverage","reportsDirectory","enabled","viteConfigPath","config","findViteConfig","joinPathFragments","Error","stripIndents","resolvedProjectRoot","resolvedViteConfigPath","command","logger","warn","path","projectRootFullPath","allowsExt","ext"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/test/vitest.impl.ts"],"sourcesContent":["import { ExecutorContext, workspaceRoot } from '@nx/devkit';\nimport { VitestExecutorOptions } from './schema';\nimport { resolve } from 'path';\nimport { registerTsConfigPaths } from '@nx/js/src/internal';\nimport { NxReporter } from './lib/nx-reporter';\nimport { getExtraArgs, getOptions } from './lib/utils';\n\nexport async function* vitestExecutor(\n options: VitestExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n registerTsConfigPaths(resolve(workspaceRoot, projectRoot, 'tsconfig.json'));\n\n const { startVitest } = await (Function(\n 'return import(\"vitest/node\")'\n )() as Promise<typeof import('vitest/node')>);\n\n const extraArgs = await getExtraArgs(options);\n const resolvedOptions =\n (await getOptions(options, context, projectRoot, extraArgs)) ?? {};\n\n const nxReporter = new NxReporter(resolvedOptions['watch']);\n if (resolvedOptions['reporters'] === undefined) {\n resolvedOptions['reporters'] = [];\n } else if (typeof resolvedOptions['reporters'] === 'string') {\n resolvedOptions['reporters'] = [resolvedOptions['reporters']];\n }\n resolvedOptions['reporters'].push(nxReporter);\n\n const cliFilters = options.testFiles ?? [];\n\n const ctx = await startVitest(\n resolvedOptions['mode'] ?? 'test',\n cliFilters,\n resolvedOptions\n );\n\n let hasErrors = false;\n\n const processExit = () => {\n ctx.exit();\n if (hasErrors) {\n process.exit(1);\n } else {\n process.exit(0);\n }\n };\n\n if (resolvedOptions['watch'] === true) {\n process.on('SIGINT', processExit);\n process.on('SIGTERM', processExit);\n process.on('exit', processExit);\n }\n\n for await (const report of nxReporter) {\n // vitest sets the exitCode = 1 when code coverage isn't met\n hasErrors =\n report.hasErrors || (process.exitCode && process.exitCode !== 0);\n }\n\n return {\n success: !hasErrors,\n };\n}\n\nexport default vitestExecutor;\n"],"names":["vitestExecutor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","registerTsConfigPaths","resolve","workspaceRoot","startVitest","Function","extraArgs","getExtraArgs","resolvedOptions","getOptions","nxReporter","NxReporter","undefined","push","cliFilters","testFiles","ctx","hasErrors","processExit","exit","process","on","report","exitCode","success"],"mappings":";;;;;;;;IAOuBA,cAAc;eAAdA;;IA6DvB,OAA8B;eAA9B;;;wBApE+C;sBAEvB;0BACc;4BACX;uBACc;AAElC,gBAAgBA,eACrBC,OAA8B,EAC9BC,OAAwB;IAExB,MAAMC,cACJD,QAAQE,sBAAsB,CAACC,QAAQ,CAACH,QAAQI,WAAW,CAAC,CAACC,IAAI;IAEnEC,IAAAA,+BAAqB,EAACC,IAAAA,aAAO,EAACC,qBAAa,EAAEP,aAAa;IAE1D,MAAM,EAAEQ,WAAW,EAAE,GAAG,MAAOC,SAC7B;IAGF,MAAMC,YAAY,MAAMC,IAAAA,mBAAY,EAACb;QAElC;IADH,MAAMc,kBACJ,CAAC,OAAA,MAAMC,IAAAA,iBAAU,EAACf,SAASC,SAASC,aAAaU,sBAAhD,OAA+D,CAAC;IAEnE,MAAMI,aAAa,IAAIC,sBAAU,CAACH,eAAe,CAAC,QAAQ;IAC1D,IAAIA,eAAe,CAAC,YAAY,KAAKI,WAAW;QAC9CJ,eAAe,CAAC,YAAY,GAAG,EAAE;IACnC,OAAO,IAAI,OAAOA,eAAe,CAAC,YAAY,KAAK,UAAU;QAC3DA,eAAe,CAAC,YAAY,GAAG;YAACA,eAAe,CAAC,YAAY;SAAC;IAC/D;IACAA,eAAe,CAAC,YAAY,CAACK,IAAI,CAACH;QAEfhB;IAAnB,MAAMoB,aAAapB,CAAAA,qBAAAA,QAAQqB,SAAS,YAAjBrB,qBAAqB,EAAE;QAGxCc;IADF,MAAMQ,MAAM,MAAMZ,YAChBI,CAAAA,wBAAAA,eAAe,CAAC,OAAO,YAAvBA,wBAA2B,QAC3BM,YACAN;IAGF,IAAIS,YAAY;IAEhB,MAAMC,cAAc;QAClBF,IAAIG,IAAI;QACR,IAAIF,WAAW;YACbG,QAAQD,IAAI,CAAC;QACf,OAAO;YACLC,QAAQD,IAAI,CAAC;QACf;IACF;IAEA,IAAIX,eAAe,CAAC,QAAQ,KAAK,MAAM;QACrCY,QAAQC,EAAE,CAAC,UAAUH;QACrBE,QAAQC,EAAE,CAAC,WAAWH;QACtBE,QAAQC,EAAE,CAAC,QAAQH;IACrB;IAEA,WAAW,MAAMI,UAAUZ,WAAY;QACrC,4DAA4D;QAC5DO,YACEK,OAAOL,SAAS,IAAKG,QAAQG,QAAQ,IAAIH,QAAQG,QAAQ,KAAK;IAClE;IAEA,OAAO;QACLC,SAAS,CAACP;IACZ;AACF;MAEA,WAAexB"}
@@ -23,7 +23,7 @@ async function viteConfigurationGenerator(tree, schema) {
23
23
  // The @nx/js:lib generator specifically sets this to node to be more generic.
24
24
  _schema1;
25
25
  const tasks = [];
26
- const { targets, projectType, root } = (0, _devkit.readProjectConfiguration)(tree, schema.project);
26
+ const { targets, projectType, root: projectRoot } = (0, _devkit.readProjectConfiguration)(tree, schema.project);
27
27
  let buildTargetName = 'build';
28
28
  let serveTargetName = 'serve';
29
29
  let testTargetName = 'test';
@@ -95,7 +95,7 @@ async function viteConfigurationGenerator(tree, schema) {
95
95
  if (projectType === 'application') {
96
96
  (0, _generatorutils.moveAndEditIndexHtml)(tree, schema, buildTargetName);
97
97
  }
98
- (0, _generatorutils.deleteWebpackConfig)(tree, root, targets == null ? void 0 : (_targets_buildTargetName = targets[buildTargetName]) == null ? void 0 : (_targets_buildTargetName_options = _targets_buildTargetName.options) == null ? void 0 : _targets_buildTargetName_options.webpackConfig);
98
+ (0, _generatorutils.deleteWebpackConfig)(tree, projectRoot, targets == null ? void 0 : (_targets_buildTargetName = targets[buildTargetName]) == null ? void 0 : (_targets_buildTargetName_options = _targets_buildTargetName.options) == null ? void 0 : _targets_buildTargetName_options.webpackConfig);
99
99
  (0, _generatorutils.editTsConfig)(tree, schema);
100
100
  }
101
101
  const initTask = await (0, _init.default)(tree, {
@@ -103,7 +103,7 @@ async function viteConfigurationGenerator(tree, schema) {
103
103
  includeLib: schema.includeLib,
104
104
  compiler: schema.compiler,
105
105
  testEnvironment: schema.testEnvironment,
106
- rootProject: root === '.'
106
+ rootProject: projectRoot === '.'
107
107
  });
108
108
  tasks.push(initTask);
109
109
  if (!projectAlreadyHasViteTargets.build) {
@@ -119,7 +119,7 @@ async function viteConfigurationGenerator(tree, schema) {
119
119
  }
120
120
  if (projectType === 'library') {
121
121
  // update tsconfig.lib.json to include vite/client
122
- (0, _devkit.updateJson)(tree, (0, _devkit.joinPathFragments)(root, 'tsconfig.lib.json'), (json)=>{
122
+ (0, _devkit.updateJson)(tree, (0, _devkit.joinPathFragments)(projectRoot, 'tsconfig.lib.json'), (json)=>{
123
123
  if (!json.compilerOptions) {
124
124
  json.compilerOptions = {};
125
125
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/configuration/configuration.ts"],"sourcesContent":["import {\n formatFiles,\n GeneratorCallback,\n joinPathFragments,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\n\nimport {\n addOrChangeBuildTarget,\n addOrChangeServeTarget,\n addPreviewTarget,\n createOrEditViteConfig,\n deleteWebpackConfig,\n editTsConfig,\n findExistingTargetsInProject,\n handleUnknownExecutors,\n handleUnsupportedUserProvidedTargets,\n moveAndEditIndexHtml,\n TargetFlags,\n UserProvidedTargetName,\n} from '../../utils/generator-utils';\n\nimport initGenerator from '../init/init';\nimport vitestGenerator from '../vitest/vitest-generator';\nimport { ViteConfigurationGeneratorSchema } from './schema';\n\nexport async function viteConfigurationGenerator(\n tree: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const { targets, projectType, root } = readProjectConfiguration(\n tree,\n schema.project\n );\n let buildTargetName = 'build';\n let serveTargetName = 'serve';\n let testTargetName = 'test';\n\n schema.includeLib ??= projectType === 'library';\n\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n /**\n * This is for when we are converting an existing project\n * to use the vite executors.\n */\n let projectAlreadyHasViteTargets: TargetFlags = {};\n\n if (!schema.newProject) {\n const userProvidedTargetName: UserProvidedTargetName = {\n build: schema.buildTarget,\n serve: schema.serveTarget,\n test: schema.testTarget,\n };\n\n const {\n validFoundTargetName,\n projectContainsUnsupportedExecutor,\n userProvidedTargetIsUnsupported,\n alreadyHasNxViteTargets,\n } = findExistingTargetsInProject(targets, userProvidedTargetName);\n projectAlreadyHasViteTargets = alreadyHasNxViteTargets;\n /**\n * This means that we only found unsupported build targets in that project.\n * The only way that buildTarget is defined, means that it is supported.\n *\n * If the `unsupported` flag was false, it would mean that we did not find\n * a build target at all, so we can create a new one.\n *\n * So we only throw if we found a target, but it is unsupported.\n */\n if (!validFoundTargetName.build && projectContainsUnsupportedExecutor) {\n throw new Error(\n `The project ${schema.project} cannot be converted to use the @nx/vite executors.`\n );\n }\n\n if (\n alreadyHasNxViteTargets.build &&\n (alreadyHasNxViteTargets.serve || projectType === 'library') &&\n alreadyHasNxViteTargets.test\n ) {\n throw new Error(\n `The project ${schema.project} is already configured to use the @nx/vite executors.\n Please try a different project, or remove the existing targets \n and re-run this generator to reset the existing Vite Configuration.\n `\n );\n }\n\n /**\n * This means that we did not find any supported executors\n * so we don't have any valid target names.\n *\n * However, the executors that we may have found are not in the\n * list of the specifically unsupported executors either.\n *\n * So, we should warn the user about it.\n */\n\n if (\n !projectContainsUnsupportedExecutor &&\n !validFoundTargetName.build &&\n !validFoundTargetName.serve &&\n !validFoundTargetName.test\n ) {\n await handleUnknownExecutors(schema.project);\n }\n\n /**\n * There is a possibility at this stage that the user has provided\n * targets with unsupported executors.\n * We keep track here of which of the targets that the user provided\n * are unsupported.\n * We do this with the `userProvidedTargetIsUnsupported` object,\n * which contains flags for each target (whether it is supported or not).\n *\n * We also keep track of the targets that we found in the project,\n * through the findExistingTargetsInProject function, which returns\n * targets for build/serve/test that use supported executors, and\n * can be converted to use the vite executors. These are the\n * kept in the validFoundTargetName object.\n */\n await handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported,\n userProvidedTargetName,\n validFoundTargetName\n );\n\n /**\n * Once the user is at this stage, then they can go ahead and convert.\n */\n\n buildTargetName = validFoundTargetName.build ?? buildTargetName;\n serveTargetName = validFoundTargetName.serve ?? serveTargetName;\n\n if (projectType === 'application') {\n moveAndEditIndexHtml(tree, schema, buildTargetName);\n }\n\n deleteWebpackConfig(\n tree,\n root,\n targets?.[buildTargetName]?.options?.webpackConfig\n );\n\n editTsConfig(tree, schema);\n }\n\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n includeLib: schema.includeLib,\n compiler: schema.compiler,\n testEnvironment: schema.testEnvironment,\n rootProject: root === '.',\n });\n tasks.push(initTask);\n\n if (!projectAlreadyHasViteTargets.build) {\n addOrChangeBuildTarget(tree, schema, buildTargetName);\n }\n\n if (!schema.includeLib) {\n if (!projectAlreadyHasViteTargets.serve) {\n addOrChangeServeTarget(tree, schema, serveTargetName);\n }\n if (!projectAlreadyHasViteTargets.preview) {\n addPreviewTarget(tree, schema, serveTargetName);\n }\n }\n\n if (projectType === 'library') {\n // update tsconfig.lib.json to include vite/client\n updateJson(tree, joinPathFragments(root, 'tsconfig.lib.json'), (json) => {\n if (!json.compilerOptions) {\n json.compilerOptions = {};\n }\n if (!json.compilerOptions.types) {\n json.compilerOptions.types = [];\n }\n if (!json.compilerOptions.types.includes('vite/client')) {\n return {\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n types: [...json.compilerOptions.types, 'vite/client'],\n },\n };\n }\n return json;\n });\n }\n\n if (!schema.newProject) {\n // We are converting existing project to use Vite\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: schema.includeLib,\n includeVitest: schema.includeVitest,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n },\n false\n );\n } else {\n createOrEditViteConfig(tree, schema, false, projectAlreadyHasViteTargets);\n }\n }\n\n if (schema.includeVitest) {\n const vitestTask = await vitestGenerator(tree, {\n project: schema.project,\n uiFramework: schema.uiFramework,\n inSourceTests: schema.inSourceTests,\n coverageProvider: 'v8',\n skipViteConfig: true,\n testTarget: testTargetName,\n skipFormat: true,\n });\n tasks.push(vitestTask);\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default viteConfigurationGenerator;\n"],"names":["viteConfigurationGenerator","tree","schema","tasks","targets","projectType","root","readProjectConfiguration","project","buildTargetName","serveTargetName","testTargetName","includeLib","testEnvironment","projectAlreadyHasViteTargets","newProject","userProvidedTargetName","build","buildTarget","serve","serveTarget","test","testTarget","validFoundTargetName","projectContainsUnsupportedExecutor","userProvidedTargetIsUnsupported","alreadyHasNxViteTargets","findExistingTargetsInProject","Error","handleUnknownExecutors","handleUnsupportedUserProvidedTargets","moveAndEditIndexHtml","deleteWebpackConfig","options","webpackConfig","editTsConfig","initTask","initGenerator","uiFramework","compiler","rootProject","push","addOrChangeBuildTarget","addOrChangeServeTarget","preview","addPreviewTarget","updateJson","joinPathFragments","json","compilerOptions","types","includes","createOrEditViteConfig","includeVitest","inSourceTests","rollupOptionsExternal","imports","plugins","vitestTask","vitestGenerator","coverageProvider","skipViteConfig","skipFormat","formatFiles","runTasksInSerial"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/generators/configuration/configuration.ts"],"sourcesContent":["import {\n formatFiles,\n GeneratorCallback,\n joinPathFragments,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\n\nimport {\n addOrChangeBuildTarget,\n addOrChangeServeTarget,\n addPreviewTarget,\n createOrEditViteConfig,\n deleteWebpackConfig,\n editTsConfig,\n findExistingTargetsInProject,\n handleUnknownExecutors,\n handleUnsupportedUserProvidedTargets,\n moveAndEditIndexHtml,\n TargetFlags,\n UserProvidedTargetName,\n} from '../../utils/generator-utils';\n\nimport initGenerator from '../init/init';\nimport vitestGenerator from '../vitest/vitest-generator';\nimport { ViteConfigurationGeneratorSchema } from './schema';\n\nexport async function viteConfigurationGenerator(\n tree: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const {\n targets,\n projectType,\n root: projectRoot,\n } = readProjectConfiguration(tree, schema.project);\n let buildTargetName = 'build';\n let serveTargetName = 'serve';\n let testTargetName = 'test';\n\n schema.includeLib ??= projectType === 'library';\n\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n /**\n * This is for when we are converting an existing project\n * to use the vite executors.\n */\n let projectAlreadyHasViteTargets: TargetFlags = {};\n\n if (!schema.newProject) {\n const userProvidedTargetName: UserProvidedTargetName = {\n build: schema.buildTarget,\n serve: schema.serveTarget,\n test: schema.testTarget,\n };\n\n const {\n validFoundTargetName,\n projectContainsUnsupportedExecutor,\n userProvidedTargetIsUnsupported,\n alreadyHasNxViteTargets,\n } = findExistingTargetsInProject(targets, userProvidedTargetName);\n projectAlreadyHasViteTargets = alreadyHasNxViteTargets;\n /**\n * This means that we only found unsupported build targets in that project.\n * The only way that buildTarget is defined, means that it is supported.\n *\n * If the `unsupported` flag was false, it would mean that we did not find\n * a build target at all, so we can create a new one.\n *\n * So we only throw if we found a target, but it is unsupported.\n */\n if (!validFoundTargetName.build && projectContainsUnsupportedExecutor) {\n throw new Error(\n `The project ${schema.project} cannot be converted to use the @nx/vite executors.`\n );\n }\n\n if (\n alreadyHasNxViteTargets.build &&\n (alreadyHasNxViteTargets.serve || projectType === 'library') &&\n alreadyHasNxViteTargets.test\n ) {\n throw new Error(\n `The project ${schema.project} is already configured to use the @nx/vite executors.\n Please try a different project, or remove the existing targets \n and re-run this generator to reset the existing Vite Configuration.\n `\n );\n }\n\n /**\n * This means that we did not find any supported executors\n * so we don't have any valid target names.\n *\n * However, the executors that we may have found are not in the\n * list of the specifically unsupported executors either.\n *\n * So, we should warn the user about it.\n */\n\n if (\n !projectContainsUnsupportedExecutor &&\n !validFoundTargetName.build &&\n !validFoundTargetName.serve &&\n !validFoundTargetName.test\n ) {\n await handleUnknownExecutors(schema.project);\n }\n\n /**\n * There is a possibility at this stage that the user has provided\n * targets with unsupported executors.\n * We keep track here of which of the targets that the user provided\n * are unsupported.\n * We do this with the `userProvidedTargetIsUnsupported` object,\n * which contains flags for each target (whether it is supported or not).\n *\n * We also keep track of the targets that we found in the project,\n * through the findExistingTargetsInProject function, which returns\n * targets for build/serve/test that use supported executors, and\n * can be converted to use the vite executors. These are the\n * kept in the validFoundTargetName object.\n */\n await handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported,\n userProvidedTargetName,\n validFoundTargetName\n );\n\n /**\n * Once the user is at this stage, then they can go ahead and convert.\n */\n\n buildTargetName = validFoundTargetName.build ?? buildTargetName;\n serveTargetName = validFoundTargetName.serve ?? serveTargetName;\n\n if (projectType === 'application') {\n moveAndEditIndexHtml(tree, schema, buildTargetName);\n }\n\n deleteWebpackConfig(\n tree,\n projectRoot,\n targets?.[buildTargetName]?.options?.webpackConfig\n );\n\n editTsConfig(tree, schema);\n }\n\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n includeLib: schema.includeLib,\n compiler: schema.compiler,\n testEnvironment: schema.testEnvironment,\n rootProject: projectRoot === '.',\n });\n tasks.push(initTask);\n\n if (!projectAlreadyHasViteTargets.build) {\n addOrChangeBuildTarget(tree, schema, buildTargetName);\n }\n\n if (!schema.includeLib) {\n if (!projectAlreadyHasViteTargets.serve) {\n addOrChangeServeTarget(tree, schema, serveTargetName);\n }\n if (!projectAlreadyHasViteTargets.preview) {\n addPreviewTarget(tree, schema, serveTargetName);\n }\n }\n\n if (projectType === 'library') {\n // update tsconfig.lib.json to include vite/client\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.lib.json'),\n (json) => {\n if (!json.compilerOptions) {\n json.compilerOptions = {};\n }\n if (!json.compilerOptions.types) {\n json.compilerOptions.types = [];\n }\n if (!json.compilerOptions.types.includes('vite/client')) {\n return {\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n types: [...json.compilerOptions.types, 'vite/client'],\n },\n };\n }\n return json;\n }\n );\n }\n\n if (!schema.newProject) {\n // We are converting existing project to use Vite\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: schema.includeLib,\n includeVitest: schema.includeVitest,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n },\n false\n );\n } else {\n createOrEditViteConfig(tree, schema, false, projectAlreadyHasViteTargets);\n }\n }\n\n if (schema.includeVitest) {\n const vitestTask = await vitestGenerator(tree, {\n project: schema.project,\n uiFramework: schema.uiFramework,\n inSourceTests: schema.inSourceTests,\n coverageProvider: 'v8',\n skipViteConfig: true,\n testTarget: testTargetName,\n skipFormat: true,\n });\n tasks.push(vitestTask);\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default viteConfigurationGenerator;\n"],"names":["viteConfigurationGenerator","tree","schema","tasks","targets","projectType","root","projectRoot","readProjectConfiguration","project","buildTargetName","serveTargetName","testTargetName","includeLib","testEnvironment","projectAlreadyHasViteTargets","newProject","userProvidedTargetName","build","buildTarget","serve","serveTarget","test","testTarget","validFoundTargetName","projectContainsUnsupportedExecutor","userProvidedTargetIsUnsupported","alreadyHasNxViteTargets","findExistingTargetsInProject","Error","handleUnknownExecutors","handleUnsupportedUserProvidedTargets","moveAndEditIndexHtml","deleteWebpackConfig","options","webpackConfig","editTsConfig","initTask","initGenerator","uiFramework","compiler","rootProject","push","addOrChangeBuildTarget","addOrChangeServeTarget","preview","addPreviewTarget","updateJson","joinPathFragments","json","compilerOptions","types","includes","createOrEditViteConfig","includeVitest","inSourceTests","rollupOptionsExternal","imports","plugins","vitestTask","vitestGenerator","coverageProvider","skipViteConfig","skipFormat","formatFiles","runTasksInSerial"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Tree } from '@nx/devkit';
2
2
  import { InitGeneratorSchema } from './schema';
3
- export declare function createVitestConfig(tree: Tree): void;
3
+ export declare function updateNxJsonSettings(tree: Tree): void;
4
4
  export declare function initGenerator(tree: Tree, schema: InitGeneratorSchema): Promise<import("@nx/devkit").GeneratorCallback>;
5
5
  export default initGenerator;
@@ -6,8 +6,8 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- createVitestConfig: function() {
10
- return createVitestConfig;
9
+ updateNxJsonSettings: function() {
10
+ return updateNxJsonSettings;
11
11
  },
12
12
  initGenerator: function() {
13
13
  return initGenerator;
@@ -29,16 +29,8 @@ function checkDependenciesInstalled(host, schema) {
29
29
  // base deps
30
30
  devDependencies['@nx/vite'] = _versions.nxVersion;
31
31
  devDependencies['vite'] = _versions.viteVersion;
32
- // Do not install latest version if vitest already exists
33
- // because version 0.32 and newer versions break nuxt-vitest
34
- // https://github.com/vitest-dev/vitest/issues/3540
35
- // https://github.com/danielroe/nuxt-vitest/issues/213#issuecomment-1588728111
36
- if (!packageJson.dependencies['vitest'] && !packageJson.devDependencies['vitest']) {
37
- devDependencies['vitest'] = _versions.vitestVersion;
38
- }
39
- if (!packageJson.dependencies['@vitest/ui'] && !packageJson.devDependencies['@vitest/ui']) {
40
- devDependencies['@vitest/ui'] = _versions.vitestVersion;
41
- }
32
+ devDependencies['vitest'] = _versions.vitestVersion;
33
+ devDependencies['@vitest/ui'] = _versions.vitestVersion;
42
34
  if (schema.testEnvironment === 'jsdom') {
43
35
  devDependencies['jsdom'] = _versions.jsdomVersion;
44
36
  } else if (schema.testEnvironment === 'happy-dom') {
@@ -71,9 +63,9 @@ function moveToDevDependencies(tree) {
71
63
  return packageJson;
72
64
  });
73
65
  }
74
- function createVitestConfig(tree) {
66
+ function updateNxJsonSettings(tree) {
75
67
  var _nxJson_namedInputs;
76
- var _nxJson, _nxJson_targetDefaults, _nxvitetest, _nxJson_targetDefaults_nxvitetest, _nxJson_targetDefaults_nxvitetest1;
68
+ var _nxJson, _nxJson_targetDefaults, _nxvitetest, _nxJson_targetDefaults_nxvitetest, _nxJson_targetDefaults_nxvitetest1, _nxJson_targetDefaults_nxvitetest2, _nxJson_targetDefaults1, _nxvitebuild, _nxJson_targetDefaults_nxvitebuild;
77
69
  const nxJson = (0, _devkit.readNxJson)(tree);
78
70
  const productionFileSet = (_nxJson_namedInputs = nxJson.namedInputs) == null ? void 0 : _nxJson_namedInputs.production;
79
71
  if (productionFileSet) {
@@ -91,11 +83,27 @@ function createVitestConfig(tree) {
91
83
  'default',
92
84
  productionFileSet ? '^production' : '^default'
93
85
  ];
86
+ var _options;
87
+ (_options = (_nxJson_targetDefaults_nxvitetest2 = nxJson.targetDefaults['@nx/vite:test']).options) != null ? _options : _nxJson_targetDefaults_nxvitetest2.options = {
88
+ passWithNoTests: true,
89
+ reporters: [
90
+ 'default'
91
+ ]
92
+ };
93
+ var _1;
94
+ (_1 = (_nxJson_targetDefaults1 = nxJson.targetDefaults)[_nxvitebuild = '@nx/vite:build']) != null ? _1 : _nxJson_targetDefaults1[_nxvitebuild] = {};
95
+ var _options1;
96
+ (_options1 = (_nxJson_targetDefaults_nxvitebuild = nxJson.targetDefaults['@nx/vite:build']).options) != null ? _options1 : _nxJson_targetDefaults_nxvitebuild.options = {
97
+ reportCompressedSize: true,
98
+ commonjsOptions: {
99
+ transformMixedEsModules: true
100
+ }
101
+ };
94
102
  (0, _devkit.updateNxJson)(tree, nxJson);
95
103
  }
96
104
  async function initGenerator(tree, schema) {
97
105
  moveToDevDependencies(tree);
98
- createVitestConfig(tree);
106
+ updateNxJsonSettings(tree);
99
107
  const tasks = [];
100
108
  tasks.push(await (0, _js.initGenerator)(tree, _extends._({}, schema, {
101
109
  skipFormat: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n logger,\n readJson,\n readNxJson,\n runTasksInSerial,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\n\nimport { initGenerator as jsInitGenerator } from '@nx/js';\n\nimport {\n edgeRuntimeVmVersion,\n happyDomVersion,\n jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n vitePluginReactSwcVersion,\n vitePluginReactVersion,\n vitestVersion,\n viteVersion,\n} from '../../utils/versions';\nimport { InitGeneratorSchema } from './schema';\n\nfunction checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema) {\n const packageJson = readJson(host, 'package.json');\n const devDependencies = {};\n const dependencies = {};\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n // base deps\n devDependencies['@nx/vite'] = nxVersion;\n devDependencies['vite'] = viteVersion;\n\n // Do not install latest version if vitest already exists\n // because version 0.32 and newer versions break nuxt-vitest\n // https://github.com/vitest-dev/vitest/issues/3540\n // https://github.com/danielroe/nuxt-vitest/issues/213#issuecomment-1588728111\n if (\n !packageJson.dependencies['vitest'] &&\n !packageJson.devDependencies['vitest']\n ) {\n devDependencies['vitest'] = vitestVersion;\n }\n if (\n !packageJson.dependencies['@vitest/ui'] &&\n !packageJson.devDependencies['@vitest/ui']\n ) {\n devDependencies['@vitest/ui'] = vitestVersion;\n }\n\n if (schema.testEnvironment === 'jsdom') {\n devDependencies['jsdom'] = jsdomVersion;\n } else if (schema.testEnvironment === 'happy-dom') {\n devDependencies['happy-dom'] = happyDomVersion;\n } else if (schema.testEnvironment === 'edge-runtime') {\n devDependencies['@edge-runtime/vm'] = edgeRuntimeVmVersion;\n } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {\n logger.info(\n `A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`\n );\n }\n\n if (schema.uiFramework === 'react') {\n if (schema.compiler === 'swc') {\n devDependencies['@vitejs/plugin-react-swc'] = vitePluginReactSwcVersion;\n } else {\n devDependencies['@vitejs/plugin-react'] = vitePluginReactVersion;\n }\n }\n\n if (schema.includeLib) {\n devDependencies['vite-plugin-dts'] = vitePluginDtsVersion;\n }\n\n return addDependenciesToPackageJson(host, dependencies, devDependencies);\n}\n\nfunction moveToDevDependencies(tree: Tree) {\n updateJson(tree, 'package.json', (packageJson) => {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n if (packageJson.dependencies['@nx/vite']) {\n packageJson.devDependencies['@nx/vite'] =\n packageJson.dependencies['@nx/vite'];\n delete packageJson.dependencies['@nx/vite'];\n }\n return packageJson;\n });\n}\n\nexport function createVitestConfig(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults['@nx/vite:test'] ??= {};\n nxJson.targetDefaults['@nx/vite:test'].cache ??= true;\n nxJson.targetDefaults['@nx/vite:test'].inputs ??= [\n 'default',\n productionFileSet ? '^production' : '^default',\n ];\n\n updateNxJson(tree, nxJson);\n}\n\nexport async function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n moveToDevDependencies(tree);\n createVitestConfig(tree);\n const tasks = [];\n\n tasks.push(\n await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',\n })\n );\n\n tasks.push(checkDependenciesInstalled(tree, schema));\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\n"],"names":["createVitestConfig","initGenerator","checkDependenciesInstalled","host","schema","packageJson","readJson","devDependencies","dependencies","nxVersion","viteVersion","vitestVersion","testEnvironment","jsdomVersion","happyDomVersion","edgeRuntimeVmVersion","logger","info","uiFramework","compiler","vitePluginReactSwcVersion","vitePluginReactVersion","includeLib","vitePluginDtsVersion","addDependenciesToPackageJson","moveToDevDependencies","tree","updateJson","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","targetDefaults","cache","inputs","updateNxJson","tasks","jsInitGenerator","skipFormat","tsConfigName","rootProject","runTasksInSerial"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n logger,\n readJson,\n readNxJson,\n runTasksInSerial,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\n\nimport { initGenerator as jsInitGenerator } from '@nx/js';\n\nimport {\n edgeRuntimeVmVersion,\n happyDomVersion,\n jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n vitePluginReactSwcVersion,\n vitePluginReactVersion,\n vitestVersion,\n viteVersion,\n} from '../../utils/versions';\nimport { InitGeneratorSchema } from './schema';\n\nfunction checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema) {\n const packageJson = readJson(host, 'package.json');\n const devDependencies = {};\n const dependencies = {};\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n // base deps\n devDependencies['@nx/vite'] = nxVersion;\n devDependencies['vite'] = viteVersion;\n devDependencies['vitest'] = vitestVersion;\n devDependencies['@vitest/ui'] = vitestVersion;\n\n if (schema.testEnvironment === 'jsdom') {\n devDependencies['jsdom'] = jsdomVersion;\n } else if (schema.testEnvironment === 'happy-dom') {\n devDependencies['happy-dom'] = happyDomVersion;\n } else if (schema.testEnvironment === 'edge-runtime') {\n devDependencies['@edge-runtime/vm'] = edgeRuntimeVmVersion;\n } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {\n logger.info(\n `A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`\n );\n }\n\n if (schema.uiFramework === 'react') {\n if (schema.compiler === 'swc') {\n devDependencies['@vitejs/plugin-react-swc'] = vitePluginReactSwcVersion;\n } else {\n devDependencies['@vitejs/plugin-react'] = vitePluginReactVersion;\n }\n }\n\n if (schema.includeLib) {\n devDependencies['vite-plugin-dts'] = vitePluginDtsVersion;\n }\n\n return addDependenciesToPackageJson(host, dependencies, devDependencies);\n}\n\nfunction moveToDevDependencies(tree: Tree) {\n updateJson(tree, 'package.json', (packageJson) => {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n if (packageJson.dependencies['@nx/vite']) {\n packageJson.devDependencies['@nx/vite'] =\n packageJson.dependencies['@nx/vite'];\n delete packageJson.dependencies['@nx/vite'];\n }\n return packageJson;\n });\n}\n\nexport function updateNxJsonSettings(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults['@nx/vite:test'] ??= {};\n nxJson.targetDefaults['@nx/vite:test'].cache ??= true;\n nxJson.targetDefaults['@nx/vite:test'].inputs ??= [\n 'default',\n productionFileSet ? '^production' : '^default',\n ];\n nxJson.targetDefaults['@nx/vite:test'].options ??= {\n passWithNoTests: true,\n reporters: ['default'],\n };\n\n nxJson.targetDefaults['@nx/vite:build'] ??= {};\n\n nxJson.targetDefaults['@nx/vite:build'].options ??= {\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n };\n\n updateNxJson(tree, nxJson);\n}\n\nexport async function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n moveToDevDependencies(tree);\n updateNxJsonSettings(tree);\n const tasks = [];\n\n tasks.push(\n await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',\n })\n );\n\n tasks.push(checkDependenciesInstalled(tree, schema));\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\n"],"names":["updateNxJsonSettings","initGenerator","checkDependenciesInstalled","host","schema","packageJson","readJson","devDependencies","dependencies","nxVersion","viteVersion","vitestVersion","testEnvironment","jsdomVersion","happyDomVersion","edgeRuntimeVmVersion","logger","info","uiFramework","compiler","vitePluginReactSwcVersion","vitePluginReactVersion","includeLib","vitePluginDtsVersion","addDependenciesToPackageJson","moveToDevDependencies","tree","updateJson","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","targetDefaults","cache","inputs","options","passWithNoTests","reporters","reportCompressedSize","commonjsOptions","transformMixedEsModules","updateNxJson","tasks","jsInitGenerator","skipFormat","tsConfigName","rootProject","runTasksInSerial"],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  },
7
7
  "include": [
8
8
  "vite.config.ts",
9
+ "vitest.config.ts",
9
10
  "src/**/*.test.ts",
10
11
  "src/**/*.spec.ts",
11
12
  "src/**/*.test.tsx",
@@ -48,7 +48,8 @@ async function vitestGenerator(tree, schema) {
48
48
  ],
49
49
  plugins: [
50
50
  'react()'
51
- ]
51
+ ],
52
+ coverageProvider: schema.coverageProvider
52
53
  }, true);
53
54
  } else {
54
55
  (0, _generatorutils.createOrEditViteConfig)(tree, _extends._({}, schema, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n formatFiles,\n generateFiles,\n GeneratorCallback,\n joinPathFragments,\n offsetFromRoot,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n findExistingTargetsInProject,\n} from '../../utils/generator-utils';\nimport { VitestGeneratorSchema } from './schema';\n\nimport initGenerator from '../init/init';\nimport {\n vitestCoverageIstanbulVersion,\n vitestCoverageV8Version,\n} from '../../utils/versions';\n\nimport { addTsLibDependencies } from '@nx/js';\nimport { join } from 'path';\n\nexport async function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const { targets, root, projectType } = readProjectConfiguration(\n tree,\n schema.project\n );\n let testTarget =\n schema.testTarget ??\n findExistingTargetsInProject(targets).validFoundTargetName.test ??\n 'test';\n\n addOrChangeTestTarget(tree, schema, testTarget);\n\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n testEnvironment: schema.testEnvironment,\n });\n tasks.push(initTask);\n\n if (!schema.skipViteConfig) {\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: projectType === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [`import react from '@vitejs/plugin-react'`],\n plugins: ['react()'],\n },\n true\n );\n } else {\n createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: projectType === 'library',\n },\n true\n );\n }\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root);\n\n const coverageProviderDependency = getCoverageProviderDependency(\n schema.coverageProvider\n );\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n coverageProviderDependency\n );\n tasks.push(installCoverageProviderTask);\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nfunction updateTsConfig(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n if (tree.exists(joinPathFragments(projectRoot, 'tsconfig.spec.json'))) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.spec.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (\n json.references &&\n !json.references.some((r) => r.path === './tsconfig.spec.json')\n ) {\n json.references.push({\n path: './tsconfig.spec.json',\n });\n }\n return json;\n }\n );\n } else {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n }\n\n if (options.inSourceTests) {\n const tsconfigLibPath = joinPathFragments(projectRoot, 'tsconfig.lib.json');\n const tsconfigAppPath = joinPathFragments(projectRoot, 'tsconfig.app.json');\n if (tree.exists(tsconfigLibPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.lib.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n } else if (tree.exists(tsconfigAppPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.app.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n }\n\n addTsLibDependencies(tree);\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n offsetFromRoot: offsetFromRoot(projectRoot),\n });\n}\n\nfunction getCoverageProviderDependency(\n coverageProvider: VitestGeneratorSchema['coverageProvider']\n) {\n switch (coverageProvider) {\n case 'v8':\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n case 'istanbul':\n return {\n '@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,\n };\n default:\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n }\n}\n\nexport default vitestGenerator;\n"],"names":["vitestGenerator","tree","schema","tasks","targets","root","projectType","readProjectConfiguration","project","testTarget","findExistingTargetsInProject","validFoundTargetName","test","addOrChangeTestTarget","initTask","initGenerator","uiFramework","testEnvironment","push","skipViteConfig","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","rollupOptionsExternal","imports","plugins","createFiles","updateTsConfig","coverageProviderDependency","getCoverageProviderDependency","coverageProvider","installCoverageProviderTask","addDependenciesToPackageJson","skipFormat","formatFiles","runTasksInSerial","options","projectRoot","exists","joinPathFragments","updateJson","json","compilerOptions","types","includes","references","some","r","path","tsconfigLibPath","tsconfigAppPath","addTsLibDependencies","generateFiles","join","__dirname","tmpl","offsetFromRoot","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n formatFiles,\n generateFiles,\n GeneratorCallback,\n joinPathFragments,\n offsetFromRoot,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n findExistingTargetsInProject,\n} from '../../utils/generator-utils';\nimport { VitestGeneratorSchema } from './schema';\n\nimport initGenerator from '../init/init';\nimport {\n vitestCoverageIstanbulVersion,\n vitestCoverageV8Version,\n} from '../../utils/versions';\n\nimport { addTsLibDependencies } from '@nx/js';\nimport { join } from 'path';\n\nexport async function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const { targets, root, projectType } = readProjectConfiguration(\n tree,\n schema.project\n );\n let testTarget =\n schema.testTarget ??\n findExistingTargetsInProject(targets).validFoundTargetName.test ??\n 'test';\n\n addOrChangeTestTarget(tree, schema, testTarget);\n\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n testEnvironment: schema.testEnvironment,\n });\n tasks.push(initTask);\n\n if (!schema.skipViteConfig) {\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: projectType === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [`import react from '@vitejs/plugin-react'`],\n plugins: ['react()'],\n coverageProvider: schema.coverageProvider,\n },\n true\n );\n } else {\n createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: projectType === 'library',\n },\n true\n );\n }\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root);\n\n const coverageProviderDependency = getCoverageProviderDependency(\n schema.coverageProvider\n );\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n coverageProviderDependency\n );\n tasks.push(installCoverageProviderTask);\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nfunction updateTsConfig(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n if (tree.exists(joinPathFragments(projectRoot, 'tsconfig.spec.json'))) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.spec.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (\n json.references &&\n !json.references.some((r) => r.path === './tsconfig.spec.json')\n ) {\n json.references.push({\n path: './tsconfig.spec.json',\n });\n }\n return json;\n }\n );\n } else {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n }\n\n if (options.inSourceTests) {\n const tsconfigLibPath = joinPathFragments(projectRoot, 'tsconfig.lib.json');\n const tsconfigAppPath = joinPathFragments(projectRoot, 'tsconfig.app.json');\n if (tree.exists(tsconfigLibPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.lib.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n } else if (tree.exists(tsconfigAppPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.app.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n }\n\n addTsLibDependencies(tree);\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n offsetFromRoot: offsetFromRoot(projectRoot),\n });\n}\n\nfunction getCoverageProviderDependency(\n coverageProvider: VitestGeneratorSchema['coverageProvider']\n) {\n switch (coverageProvider) {\n case 'v8':\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n case 'istanbul':\n return {\n '@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,\n };\n default:\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n }\n}\n\nexport default vitestGenerator;\n"],"names":["vitestGenerator","tree","schema","tasks","targets","root","projectType","readProjectConfiguration","project","testTarget","findExistingTargetsInProject","validFoundTargetName","test","addOrChangeTestTarget","initTask","initGenerator","uiFramework","testEnvironment","push","skipViteConfig","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","rollupOptionsExternal","imports","plugins","coverageProvider","createFiles","updateTsConfig","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","skipFormat","formatFiles","runTasksInSerial","options","projectRoot","exists","joinPathFragments","updateJson","json","compilerOptions","types","includes","references","some","r","path","tsconfigLibPath","tsconfigAppPath","addTsLibDependencies","generateFiles","join","__dirname","tmpl","offsetFromRoot","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { FileReplacement } from '../../../../plugins/rollup-replace-files.plugin';
2
+ export declare function addFileReplacements(configContents: string, fileReplacements: FileReplacement[]): string;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "addFileReplacements", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return addFileReplacements;
6
+ }
7
+ });
8
+ const _devkit = require("@nx/devkit");
9
+ const _tsquery = require("@phenomnomnominal/tsquery");
10
+ function addFileReplacements(configContents, fileReplacements) {
11
+ var _tsquery_query, _tsquery_query1, _tsquery_query2;
12
+ const pluginsObject = (_tsquery_query = _tsquery.tsquery.query(configContents, `PropertyAssignment:has(Identifier[name="plugins"])`)) == null ? void 0 : _tsquery_query[0];
13
+ const replaceFilesPlugin = (_tsquery_query1 = _tsquery.tsquery.query(configContents, `PropertyAssignment:has(Identifier[name="plugins"]) CallExpression:has(Identifier[name="replaceFiles"])`)) == null ? void 0 : _tsquery_query1[0];
14
+ const firstImportDeclaration = (_tsquery_query2 = _tsquery.tsquery.query(configContents, 'ImportDeclaration')) == null ? void 0 : _tsquery_query2[0];
15
+ if (pluginsObject) {
16
+ if (replaceFilesPlugin) {
17
+ return configContents;
18
+ } else {
19
+ return (0, _devkit.applyChangesToString)(configContents, [
20
+ {
21
+ type: _devkit.ChangeType.Insert,
22
+ index: pluginsObject.getStart() + `plugins: [`.length + 1,
23
+ text: `replaceFiles(${JSON.stringify(fileReplacements)}),`
24
+ },
25
+ firstImportDeclaration ? {
26
+ type: _devkit.ChangeType.Insert,
27
+ index: firstImportDeclaration.getStart(),
28
+ text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\n`
29
+ } : {
30
+ type: _devkit.ChangeType.Insert,
31
+ index: 0,
32
+ text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\n`
33
+ }
34
+ ]);
35
+ }
36
+ } else {
37
+ var _tsquery_query3;
38
+ const foundDefineConfig = (_tsquery_query3 = _tsquery.tsquery.query(configContents, 'CallExpression:has(Identifier[name="defineConfig"])')) == null ? void 0 : _tsquery_query3[0];
39
+ if (!foundDefineConfig) {
40
+ return;
41
+ }
42
+ return (0, _devkit.applyChangesToString)(configContents, [
43
+ {
44
+ type: _devkit.ChangeType.Insert,
45
+ index: foundDefineConfig.getStart() + 14,
46
+ text: `plugins: [replaceFiles(${JSON.stringify(fileReplacements)})],`
47
+ },
48
+ firstImportDeclaration ? {
49
+ type: _devkit.ChangeType.Insert,
50
+ index: firstImportDeclaration.getStart(),
51
+ text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`
52
+ } : {
53
+ type: _devkit.ChangeType.Insert,
54
+ index: 0,
55
+ text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`
56
+ }
57
+ ]);
58
+ }
59
+ }
60
+
61
+ //# sourceMappingURL=add-file-replacements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/vite/src/migrations/update-17-2-0/lib/add-file-replacements.ts"],"sourcesContent":["import { ChangeType, applyChangesToString } from '@nx/devkit';\nimport { FileReplacement } from '../../../../plugins/rollup-replace-files.plugin';\nimport { tsquery } from '@phenomnomnominal/tsquery';\n\nexport function addFileReplacements(\n configContents: string,\n fileReplacements: FileReplacement[]\n): string {\n const pluginsObject = tsquery.query(\n configContents,\n `PropertyAssignment:has(Identifier[name=\"plugins\"])`\n )?.[0];\n const replaceFilesPlugin = tsquery.query(\n configContents,\n `PropertyAssignment:has(Identifier[name=\"plugins\"]) CallExpression:has(Identifier[name=\"replaceFiles\"])`\n )?.[0];\n\n const firstImportDeclaration = tsquery.query(\n configContents,\n 'ImportDeclaration'\n )?.[0];\n\n if (pluginsObject) {\n if (replaceFilesPlugin) {\n return configContents;\n } else {\n return applyChangesToString(configContents, [\n {\n type: ChangeType.Insert,\n index: pluginsObject.getStart() + `plugins: [`.length + 1,\n text: `replaceFiles(${JSON.stringify(fileReplacements)}),`,\n },\n firstImportDeclaration\n ? {\n type: ChangeType.Insert,\n index: firstImportDeclaration.getStart(),\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\\n`,\n }\n : {\n type: ChangeType.Insert,\n index: 0,\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\\n`,\n },\n ]);\n }\n } else {\n const foundDefineConfig = tsquery.query(\n configContents,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n )?.[0];\n\n if (!foundDefineConfig) {\n return;\n }\n return applyChangesToString(configContents, [\n {\n type: ChangeType.Insert,\n index: foundDefineConfig.getStart() + 14,\n text: `plugins: [replaceFiles(${JSON.stringify(fileReplacements)})],`,\n },\n firstImportDeclaration\n ? {\n type: ChangeType.Insert,\n index: firstImportDeclaration.getStart(),\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`,\n }\n : {\n type: ChangeType.Insert,\n index: 0,\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`,\n },\n ]);\n }\n}\n"],"names":["addFileReplacements","configContents","fileReplacements","tsquery","pluginsObject","query","replaceFilesPlugin","firstImportDeclaration","applyChangesToString","type","ChangeType","Insert","index","getStart","length","text","JSON","stringify","foundDefineConfig"],"mappings":";+BAIgBA;;;eAAAA;;;wBAJiC;yBAEzB;AAEjB,SAASA,oBACdC,cAAsB,EACtBC,gBAAmC;QAEbC,gBAIKA,iBAKIA;IAT/B,MAAMC,iBAAgBD,iBAAAA,gBAAO,CAACE,KAAK,CACjCJ,gBACA,CAAC,kDAAkD,CAAC,sBAFhCE,cAGnB,CAAC,EAAE;IACN,MAAMG,sBAAqBH,kBAAAA,gBAAO,CAACE,KAAK,CACtCJ,gBACA,CAAC,sGAAsG,CAAC,sBAF/EE,eAGxB,CAAC,EAAE;IAEN,MAAMI,0BAAyBJ,kBAAAA,gBAAO,CAACE,KAAK,CAC1CJ,gBACA,yCAF6BE,eAG5B,CAAC,EAAE;IAEN,IAAIC,eAAe;QACjB,IAAIE,oBAAoB;YACtB,OAAOL;QACT,OAAO;YACL,OAAOO,IAAAA,4BAAoB,EAACP,gBAAgB;gBAC1C;oBACEQ,MAAMC,kBAAU,CAACC,MAAM;oBACvBC,OAAOR,cAAcS,QAAQ,KAAK,CAAC,UAAU,CAAC,CAACC,MAAM,GAAG;oBACxDC,MAAM,CAAC,aAAa,EAAEC,KAAKC,SAAS,CAACf,kBAAkB,EAAE,CAAC;gBAC5D;gBACAK,yBACI;oBACEE,MAAMC,kBAAU,CAACC,MAAM;oBACvBC,OAAOL,uBAAuBM,QAAQ;oBACtCE,MAAM,CAAC,0EAA0E,CAAC;gBACpF,IACA;oBACEN,MAAMC,kBAAU,CAACC,MAAM;oBACvBC,OAAO;oBACPG,MAAM,CAAC,0EAA0E,CAAC;gBACpF;aACL;QACH;IACF,OAAO;YACqBZ;QAA1B,MAAMe,qBAAoBf,kBAAAA,gBAAO,CAACE,KAAK,CACrCJ,gBACA,2EAFwBE,eAGvB,CAAC,EAAE;QAEN,IAAI,CAACe,mBAAmB;YACtB;QACF;QACA,OAAOV,IAAAA,4BAAoB,EAACP,gBAAgB;YAC1C;gBACEQ,MAAMC,kBAAU,CAACC,MAAM;gBACvBC,OAAOM,kBAAkBL,QAAQ,KAAK;gBACtCE,MAAM,CAAC,uBAAuB,EAAEC,KAAKC,SAAS,CAACf,kBAAkB,GAAG,CAAC;YACvE;YACAK,yBACI;gBACEE,MAAMC,kBAAU,CAACC,MAAM;gBACvBC,OAAOL,uBAAuBM,QAAQ;gBACtCE,MAAM,CAAC,wEAAwE,CAAC;YAClF,IACA;gBACEN,MAAMC,kBAAU,CAACC,MAAM;gBACvBC,OAAO;gBACPG,MAAM,CAAC,wEAAwE,CAAC;YAClF;SACL;IACH;AACF"}
@@ -0,0 +1,2 @@
1
+ import { ProjectConfiguration, Tree } from '@nx/devkit';
2
+ export declare function updateBuildOutDirAndRoot(options: Record<string, any>, configContents: string, projectConfig: ProjectConfiguration, targetName: string, tree: Tree, projectName: string): string;