@nx/vite 17.0.2 → 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.
- package/LICENSE +1 -1
- package/README.md +9 -4
- package/generators.json +3 -3
- package/migrations.json +90 -0
- package/package.json +9 -7
- package/plugin.d.ts +1 -0
- package/plugin.js +21 -0
- package/plugin.js.map +1 -0
- package/plugins/nx-tsconfig-paths.plugin.js +9 -5
- package/plugins/nx-tsconfig-paths.plugin.js.map +1 -1
- package/plugins/rollup-replace-files.plugin.d.ts +3 -3
- package/plugins/rollup-replace-files.plugin.js +2 -2
- package/plugins/rollup-replace-files.plugin.js.map +1 -1
- package/src/executors/build/build.impl.d.ts +5 -1
- package/src/executors/build/build.impl.js +90 -21
- package/src/executors/build/build.impl.js.map +1 -1
- package/src/executors/build/schema.d.ts +5 -18
- package/src/executors/build/schema.json +4 -106
- package/src/executors/dev-server/dev-server.impl.js +74 -9
- package/src/executors/dev-server/dev-server.impl.js.map +1 -1
- package/src/executors/dev-server/schema.d.ts +0 -10
- package/src/executors/dev-server/schema.json +0 -63
- package/src/executors/preview-server/preview-server.impl.d.ts +1 -1
- package/src/executors/preview-server/preview-server.impl.js +79 -15
- package/src/executors/preview-server/preview-server.impl.js.map +1 -1
- package/src/executors/preview-server/schema.d.ts +0 -7
- package/src/executors/preview-server/schema.json +1 -51
- package/src/executors/test/lib/nx-reporter.d.ts +14 -0
- package/src/executors/test/lib/nx-reporter.js +40 -0
- package/src/executors/test/lib/nx-reporter.js.map +1 -0
- package/src/executors/test/lib/utils.d.ts +4 -0
- package/src/executors/test/lib/utils.js +77 -0
- package/src/executors/test/lib/utils.js.map +1 -0
- package/src/executors/test/schema.d.ts +3 -8
- package/src/executors/test/schema.json +11 -43
- package/src/executors/test/vitest.impl.js +20 -112
- package/src/executors/test/vitest.impl.js.map +1 -1
- package/src/generators/configuration/configuration.d.ts +2 -1
- package/src/generators/configuration/configuration.js +49 -87
- package/src/generators/configuration/configuration.js.map +1 -1
- package/src/generators/configuration/lib/convert-non-vite.d.ts +5 -0
- package/src/generators/configuration/lib/convert-non-vite.js +62 -0
- package/src/generators/configuration/lib/convert-non-vite.js.map +1 -0
- package/src/generators/configuration/schema.d.ts +1 -3
- package/src/generators/configuration/schema.json +0 -12
- package/src/generators/init/init.d.ts +4 -3
- package/src/generators/init/init.js +50 -67
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/init/lib/utils.d.ts +6 -0
- package/src/generators/init/lib/utils.js +80 -0
- package/src/generators/init/lib/utils.js.map +1 -0
- package/src/generators/init/schema.d.ts +5 -5
- package/src/generators/init/schema.json +17 -20
- package/src/generators/vitest/files/tsconfig.spec.json__tmpl__ +2 -1
- package/src/generators/vitest/schema.d.ts +2 -1
- package/src/generators/vitest/schema.json +2 -2
- package/src/generators/vitest/vitest-generator.d.ts +2 -1
- package/src/generators/vitest/vitest-generator.js +34 -10
- package/src/generators/vitest/vitest-generator.js.map +1 -1
- package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.js.map +1 -1
- package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js +3 -17
- package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js.map +1 -1
- package/src/migrations/update-17-1-0/move-target-defaults.d.ts +2 -0
- package/src/migrations/update-17-1-0/move-target-defaults.js +77 -0
- package/src/migrations/update-17-1-0/move-target-defaults.js.map +1 -0
- package/src/migrations/update-17-2-0/lib/add-file-replacements.d.ts +2 -0
- package/src/migrations/update-17-2-0/lib/add-file-replacements.js +67 -0
- package/src/migrations/update-17-2-0/lib/add-file-replacements.js.map +1 -0
- package/src/migrations/update-17-2-0/lib/edit-build-config.d.ts +2 -0
- package/src/migrations/update-17-2-0/lib/edit-build-config.js +121 -0
- package/src/migrations/update-17-2-0/lib/edit-build-config.js.map +1 -0
- package/src/migrations/update-17-2-0/lib/edit-test-config.d.ts +2 -0
- package/src/migrations/update-17-2-0/lib/edit-test-config.js +83 -0
- package/src/migrations/update-17-2-0/lib/edit-test-config.js.map +1 -0
- package/src/migrations/update-17-2-0/update-vite-config.d.ts +5 -0
- package/src/migrations/update-17-2-0/update-vite-config.js +68 -0
- package/src/migrations/update-17-2-0/update-vite-config.js.map +1 -0
- package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.d.ts +3 -0
- package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js +117 -0
- package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js.map +1 -0
- package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.d.ts +2 -0
- package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js +45 -0
- package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js.map +1 -0
- package/src/plugins/plugin.d.ts +10 -0
- package/src/plugins/plugin.js +226 -0
- package/src/plugins/plugin.js.map +1 -0
- package/src/utils/ensure-dependencies.d.ts +8 -0
- package/src/utils/ensure-dependencies.js +34 -0
- package/src/utils/ensure-dependencies.js.map +1 -0
- package/src/utils/executor-utils.d.ts +2 -0
- package/src/utils/executor-utils.js +22 -7
- package/src/utils/executor-utils.js.map +1 -1
- package/src/utils/find-vite-config.d.ts +3 -0
- package/src/utils/find-vite-config.js +46 -0
- package/src/utils/find-vite-config.js.map +1 -0
- package/src/utils/generator-utils.d.ts +10 -12
- package/src/utils/generator-utils.js +135 -213
- package/src/utils/generator-utils.js.map +1 -1
- package/src/utils/options-utils.d.ts +3 -19
- package/src/utils/options-utils.js +25 -68
- package/src/utils/options-utils.js.map +1 -1
- package/src/utils/test-files/react-lib-non-buildable-jest.json +1 -4
- package/src/utils/test-files/react-lib-non-buildable-vitest.json +1 -4
- package/src/utils/test-files/react-mixed-project.config.json +1 -6
- package/src/utils/test-files/react-vite-project.config.json +1 -4
- package/src/utils/test-files/unknown-project.config.json +1 -4
- package/src/utils/test-utils.d.ts +1 -1
- package/src/utils/test-utils.js +10 -18
- package/src/utils/test-utils.js.map +1 -1
- package/src/utils/versions.d.ts +7 -9
- package/src/utils/versions.js +7 -15
- package/src/utils/versions.js.map +1 -1
- package/src/utils/vite-config-edit-utils.js +1 -1
- package/src/utils/vite-config-edit-utils.js.map +1 -1
- package/src/utils/test-files/react-project.config.json +0 -85
- package/src/utils/test-files/web-project.config.json +0 -72
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function _export(target, all) {
|
|
3
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
get: all[name]
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
_export(exports, {
|
|
9
|
+
checkDependenciesInstalled: function() {
|
|
10
|
+
return checkDependenciesInstalled;
|
|
11
|
+
},
|
|
12
|
+
moveToDevDependencies: function() {
|
|
13
|
+
return moveToDevDependencies;
|
|
14
|
+
},
|
|
15
|
+
createVitestConfig: function() {
|
|
16
|
+
return createVitestConfig;
|
|
17
|
+
},
|
|
18
|
+
addPlugin: function() {
|
|
19
|
+
return addPlugin;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _devkit = require("@nx/devkit");
|
|
23
|
+
const _versions = require("../../../utils/versions");
|
|
24
|
+
function checkDependenciesInstalled(host, schema) {
|
|
25
|
+
return (0, _devkit.addDependenciesToPackageJson)(host, {}, {
|
|
26
|
+
'@nx/vite': _versions.nxVersion,
|
|
27
|
+
'@nx/web': _versions.nxVersion,
|
|
28
|
+
vite: _versions.viteVersion,
|
|
29
|
+
vitest: _versions.vitestVersion,
|
|
30
|
+
'@vitest/ui': _versions.vitestVersion
|
|
31
|
+
}, undefined, schema.keepExistingVersions);
|
|
32
|
+
}
|
|
33
|
+
function moveToDevDependencies(tree) {
|
|
34
|
+
let wasUpdated = false;
|
|
35
|
+
(0, _devkit.updateJson)(tree, 'package.json', (packageJson)=>{
|
|
36
|
+
packageJson.dependencies = packageJson.dependencies || {};
|
|
37
|
+
packageJson.devDependencies = packageJson.devDependencies || {};
|
|
38
|
+
if (packageJson.dependencies['@nx/vite']) {
|
|
39
|
+
packageJson.devDependencies['@nx/vite'] = packageJson.dependencies['@nx/vite'];
|
|
40
|
+
delete packageJson.dependencies['@nx/vite'];
|
|
41
|
+
wasUpdated = true;
|
|
42
|
+
}
|
|
43
|
+
return packageJson;
|
|
44
|
+
});
|
|
45
|
+
return wasUpdated ? ()=>(0, _devkit.installPackagesTask)(tree) : ()=>{};
|
|
46
|
+
}
|
|
47
|
+
function createVitestConfig(tree) {
|
|
48
|
+
var _nxJson_namedInputs;
|
|
49
|
+
const nxJson = (0, _devkit.readNxJson)(tree);
|
|
50
|
+
const productionFileSet = (_nxJson_namedInputs = nxJson.namedInputs) == null ? void 0 : _nxJson_namedInputs.production;
|
|
51
|
+
if (productionFileSet) {
|
|
52
|
+
productionFileSet.push('!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)', '!{projectRoot}/tsconfig.spec.json');
|
|
53
|
+
nxJson.namedInputs.production = Array.from(new Set(productionFileSet));
|
|
54
|
+
}
|
|
55
|
+
(0, _devkit.updateNxJson)(tree, nxJson);
|
|
56
|
+
}
|
|
57
|
+
function addPlugin(tree) {
|
|
58
|
+
var _nxJson;
|
|
59
|
+
const nxJson = (0, _devkit.readNxJson)(tree);
|
|
60
|
+
var _plugins;
|
|
61
|
+
(_plugins = (_nxJson = nxJson).plugins) != null ? _plugins : _nxJson.plugins = [];
|
|
62
|
+
for (const plugin of nxJson.plugins){
|
|
63
|
+
if (typeof plugin === 'string' ? plugin === '@nx/vite/plugin' : plugin.plugin === '@nx/vite/plugin') {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
nxJson.plugins.push({
|
|
68
|
+
plugin: '@nx/vite/plugin',
|
|
69
|
+
options: {
|
|
70
|
+
buildTargetName: 'build',
|
|
71
|
+
previewTargetName: 'preview',
|
|
72
|
+
testTargetName: 'test',
|
|
73
|
+
serveTargetName: 'serve',
|
|
74
|
+
serveStaticTargetName: 'serve-static'
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
(0, _devkit.updateNxJson)(tree, nxJson);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/vite/src/generators/init/lib/utils.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n installPackagesTask,\n readNxJson,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\nimport { nxVersion, vitestVersion, viteVersion } from '../../../utils/versions';\nimport { InitGeneratorSchema } from '../schema';\n\nexport function checkDependenciesInstalled(\n host: Tree,\n schema: InitGeneratorSchema\n) {\n return addDependenciesToPackageJson(\n host,\n {},\n {\n '@nx/vite': nxVersion,\n '@nx/web': nxVersion,\n vite: viteVersion,\n vitest: vitestVersion,\n '@vitest/ui': vitestVersion,\n },\n undefined,\n schema.keepExistingVersions\n );\n}\n\nexport function moveToDevDependencies(tree: Tree) {\n let wasUpdated = false;\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 wasUpdated = true;\n }\n return packageJson;\n });\n\n return wasUpdated ? () => installPackagesTask(tree) : () => {};\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 updateNxJson(tree, nxJson);\n}\n\nexport function addPlugin(tree: Tree) {\n const nxJson = readNxJson(tree);\n nxJson.plugins ??= [];\n\n for (const plugin of nxJson.plugins) {\n if (\n typeof plugin === 'string'\n ? plugin === '@nx/vite/plugin'\n : plugin.plugin === '@nx/vite/plugin'\n ) {\n return;\n }\n }\n\n nxJson.plugins.push({\n plugin: '@nx/vite/plugin',\n options: {\n buildTargetName: 'build',\n previewTargetName: 'preview',\n testTargetName: 'test',\n serveTargetName: 'serve',\n serveStaticTargetName: 'serve-static',\n },\n });\n updateNxJson(tree, nxJson);\n}\n"],"names":["checkDependenciesInstalled","moveToDevDependencies","createVitestConfig","addPlugin","host","schema","addDependenciesToPackageJson","nxVersion","vite","viteVersion","vitest","vitestVersion","undefined","keepExistingVersions","tree","wasUpdated","updateJson","packageJson","dependencies","devDependencies","installPackagesTask","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","updateNxJson","plugins","plugin","options","buildTargetName","previewTargetName","testTargetName","serveTargetName","serveStaticTargetName"],"mappings":";;;;;;;;IAWgBA,0BAA0B;eAA1BA;;IAmBAC,qBAAqB;eAArBA;;IAkBAC,kBAAkB;eAAlBA;;IAgBAC,SAAS;eAATA;;;wBAzDT;0BAC+C;AAG/C,SAASH,2BACdI,IAAU,EACVC,MAA2B;IAE3B,OAAOC,IAAAA,oCAA4B,EACjCF,MACA,CAAC,GACD;QACE,YAAYG,mBAAS;QACrB,WAAWA,mBAAS;QACpBC,MAAMC,qBAAW;QACjBC,QAAQC,uBAAa;QACrB,cAAcA,uBAAa;IAC7B,GACAC,WACAP,OAAOQ,oBAAoB;AAE/B;AAEO,SAASZ,sBAAsBa,IAAU;IAC9C,IAAIC,aAAa;IACjBC,IAAAA,kBAAU,EAACF,MAAM,gBAAgB,CAACG;QAChCA,YAAYC,YAAY,GAAGD,YAAYC,YAAY,IAAI,CAAC;QACxDD,YAAYE,eAAe,GAAGF,YAAYE,eAAe,IAAI,CAAC;QAE9D,IAAIF,YAAYC,YAAY,CAAC,WAAW,EAAE;YACxCD,YAAYE,eAAe,CAAC,WAAW,GACrCF,YAAYC,YAAY,CAAC,WAAW;YACtC,OAAOD,YAAYC,YAAY,CAAC,WAAW;YAC3CH,aAAa;QACf;QACA,OAAOE;IACT;IAEA,OAAOF,aAAa,IAAMK,IAAAA,2BAAmB,EAACN,QAAQ,KAAO;AAC/D;AAEO,SAASZ,mBAAmBY,IAAU;QAGjBO;IAF1B,MAAMA,SAASC,IAAAA,kBAAU,EAACR;IAE1B,MAAMS,qBAAoBF,sBAAAA,OAAOG,WAAW,qBAAlBH,oBAAoBI,UAAU;IACxD,IAAIF,mBAAmB;QACrBA,kBAAkBG,IAAI,CACpB,yDACA;QAGFL,OAAOG,WAAW,CAACC,UAAU,GAAGE,MAAMC,IAAI,CAAC,IAAIC,IAAIN;IACrD;IAEAO,IAAAA,oBAAY,EAAChB,MAAMO;AACrB;AAEO,SAASlB,UAAUW,IAAU;QAElCO;IADA,MAAMA,SAASC,IAAAA,kBAAU,EAACR;;IAC1BO,aAAAA,UAAAA,QAAOU,8BAAPV,QAAOU,UAAY,EAAE;IAErB,KAAK,MAAMC,UAAUX,OAAOU,OAAO,CAAE;QACnC,IACE,OAAOC,WAAW,WACdA,WAAW,oBACXA,OAAOA,MAAM,KAAK,mBACtB;YACA;QACF;IACF;IAEAX,OAAOU,OAAO,CAACL,IAAI,CAAC;QAClBM,QAAQ;QACRC,SAAS;YACPC,iBAAiB;YACjBC,mBAAmB;YACnBC,gBAAgB;YAChBC,iBAAiB;YACjBC,uBAAuB;QACzB;IACF;IACAR,IAAAA,oBAAY,EAAChB,MAAMO;AACrB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface InitGeneratorSchema {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
skipFormat?: boolean;
|
|
3
|
+
skipPackageJson?: boolean;
|
|
4
|
+
keepExistingVersions?: boolean;
|
|
5
|
+
updatePackageScripts?: boolean;
|
|
6
|
+
addPlugin?: boolean;
|
|
7
7
|
}
|
|
@@ -5,30 +5,27 @@
|
|
|
5
5
|
"$id": "init-vite-plugin",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"default": "react",
|
|
13
|
-
"x-prompt": "What UI framework plugin should Vite use?"
|
|
8
|
+
"skipFormat": {
|
|
9
|
+
"description": "Skip formatting files.",
|
|
10
|
+
"type": "boolean",
|
|
11
|
+
"default": false
|
|
14
12
|
},
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"default": "babel"
|
|
13
|
+
"skipPackageJson": {
|
|
14
|
+
"description": "Do not add dependencies to `package.json`.",
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": false
|
|
20
17
|
},
|
|
21
|
-
"
|
|
18
|
+
"keepExistingVersions": {
|
|
22
19
|
"type": "boolean",
|
|
23
|
-
"
|
|
20
|
+
"x-priority": "internal",
|
|
21
|
+
"description": "Keep existing dependencies versions",
|
|
24
22
|
"default": false
|
|
25
23
|
},
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"default":
|
|
24
|
+
"updatePackageScripts": {
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"x-priority": "internal",
|
|
27
|
+
"description": "Update `package.json` scripts with inferred targets",
|
|
28
|
+
"default": false
|
|
31
29
|
}
|
|
32
|
-
}
|
|
33
|
-
"examplesFile": "../../../docs/init-examples.md"
|
|
30
|
+
}
|
|
34
31
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "./tsconfig.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"outDir": "
|
|
4
|
+
"outDir": "<%= offsetFromRoot %>dist/out-tsc",
|
|
5
5
|
"types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"]
|
|
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",
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export interface VitestGeneratorSchema {
|
|
2
2
|
project: string;
|
|
3
3
|
uiFramework: 'react' | 'none';
|
|
4
|
-
coverageProvider: 'v8' | '
|
|
4
|
+
coverageProvider: 'v8' | 'istanbul' | 'custom';
|
|
5
5
|
inSourceTests?: boolean;
|
|
6
6
|
skipViteConfig?: boolean;
|
|
7
7
|
testTarget?: string;
|
|
8
8
|
skipFormat?: boolean;
|
|
9
9
|
testEnvironment?: 'node' | 'jsdom' | 'happy-dom' | 'edge-runtime' | string;
|
|
10
|
+
addPlugin?: boolean;
|
|
10
11
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
3
|
"cli": "nx",
|
|
4
4
|
"$id": "Vitest",
|
|
5
5
|
"title": "Vitest",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"coverageProvider": {
|
|
33
33
|
"type": "string",
|
|
34
|
-
"enum": ["v8", "
|
|
34
|
+
"enum": ["v8", "istanbul", "custom"],
|
|
35
35
|
"default": "v8",
|
|
36
36
|
"description": "Coverage provider to use."
|
|
37
37
|
},
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
2
2
|
import { VitestGeneratorSchema } from './schema';
|
|
3
|
-
export declare function vitestGenerator(tree: Tree, schema: VitestGeneratorSchema): Promise<GeneratorCallback>;
|
|
3
|
+
export declare function vitestGenerator(tree: Tree, schema: VitestGeneratorSchema, hasPlugin?: boolean): Promise<GeneratorCallback>;
|
|
4
|
+
export declare function vitestGeneratorInternal(tree: Tree, schema: VitestGeneratorSchema, hasPlugin?: boolean): Promise<GeneratorCallback>;
|
|
4
5
|
export default vitestGenerator;
|
|
@@ -9,6 +9,9 @@ _export(exports, {
|
|
|
9
9
|
vitestGenerator: function() {
|
|
10
10
|
return vitestGenerator;
|
|
11
11
|
},
|
|
12
|
+
vitestGeneratorInternal: function() {
|
|
13
|
+
return vitestGeneratorInternal;
|
|
14
|
+
},
|
|
12
15
|
default: function() {
|
|
13
16
|
return _default;
|
|
14
17
|
}
|
|
@@ -20,17 +23,33 @@ const _init = require("../init/init");
|
|
|
20
23
|
const _versions = require("../../utils/versions");
|
|
21
24
|
const _js = require("@nx/js");
|
|
22
25
|
const _path = require("path");
|
|
23
|
-
|
|
26
|
+
const _ensuredependencies = require("../../utils/ensure-dependencies");
|
|
27
|
+
function vitestGenerator(tree, schema, hasPlugin = false) {
|
|
28
|
+
return vitestGeneratorInternal(tree, _extends._({
|
|
29
|
+
addPlugin: false
|
|
30
|
+
}, schema), hasPlugin);
|
|
31
|
+
}
|
|
32
|
+
async function vitestGeneratorInternal(tree, schema, hasPlugin = false) {
|
|
33
|
+
var _nxJson_plugins;
|
|
24
34
|
const tasks = [];
|
|
25
|
-
const {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
const { root, projectType } = (0, _devkit.readProjectConfiguration)(tree, schema.project);
|
|
36
|
+
const isRootProject = root === '.';
|
|
37
|
+
tasks.push(await (0, _js.initGenerator)(tree, _extends._({}, schema, {
|
|
38
|
+
skipFormat: true
|
|
39
|
+
})));
|
|
29
40
|
const initTask = await (0, _init.default)(tree, {
|
|
30
|
-
|
|
31
|
-
|
|
41
|
+
skipFormat: true,
|
|
42
|
+
addPlugin: schema.addPlugin
|
|
32
43
|
});
|
|
33
44
|
tasks.push(initTask);
|
|
45
|
+
tasks.push((0, _ensuredependencies.ensureDependencies)(tree, schema));
|
|
46
|
+
const nxJson = (0, _devkit.readNxJson)(tree);
|
|
47
|
+
const hasPluginCheck = (_nxJson_plugins = nxJson.plugins) == null ? void 0 : _nxJson_plugins.some((p)=>(typeof p === 'string' ? p === '@nx/vite/plugin' : p.plugin === '@nx/vite/plugin') || hasPlugin);
|
|
48
|
+
if (!hasPluginCheck) {
|
|
49
|
+
var _schema_testTarget;
|
|
50
|
+
const testTarget = (_schema_testTarget = schema.testTarget) != null ? _schema_testTarget : 'test';
|
|
51
|
+
(0, _generatorutils.addOrChangeTestTarget)(tree, schema, testTarget);
|
|
52
|
+
}
|
|
34
53
|
if (!schema.skipViteConfig) {
|
|
35
54
|
if (schema.uiFramework === 'react') {
|
|
36
55
|
(0, _generatorutils.createOrEditViteConfig)(tree, {
|
|
@@ -48,7 +67,8 @@ async function vitestGenerator(tree, schema) {
|
|
|
48
67
|
],
|
|
49
68
|
plugins: [
|
|
50
69
|
'react()'
|
|
51
|
-
]
|
|
70
|
+
],
|
|
71
|
+
coverageProvider: schema.coverageProvider
|
|
52
72
|
}, true);
|
|
53
73
|
} else {
|
|
54
74
|
(0, _generatorutils.createOrEditViteConfig)(tree, _extends._({}, schema, {
|
|
@@ -62,6 +82,10 @@ async function vitestGenerator(tree, schema) {
|
|
|
62
82
|
const coverageProviderDependency = getCoverageProviderDependency(schema.coverageProvider);
|
|
63
83
|
const installCoverageProviderTask = (0, _devkit.addDependenciesToPackageJson)(tree, {}, coverageProviderDependency);
|
|
64
84
|
tasks.push(installCoverageProviderTask);
|
|
85
|
+
// Setup workspace config file (https://vitest.dev/guide/workspace.html)
|
|
86
|
+
if (!isRootProject && !tree.exists(`vitest.workspace.ts`) && !tree.exists(`vitest.workspace.js`) && !tree.exists(`vitest.workspace.json`) && !tree.exists(`vitest.projects.ts`) && !tree.exists(`vitest.projects.js`) && !tree.exists(`vitest.projects.json`)) {
|
|
87
|
+
tree.write('vitest.workspace.ts', `export default ['**/*/vite.config.ts', '**/*/vitest.config.ts'];`);
|
|
88
|
+
}
|
|
65
89
|
if (!schema.skipFormat) {
|
|
66
90
|
await (0, _devkit.formatFiles)(tree);
|
|
67
91
|
}
|
|
@@ -144,9 +168,9 @@ function createFiles(tree, options, projectRoot) {
|
|
|
144
168
|
}
|
|
145
169
|
function getCoverageProviderDependency(coverageProvider) {
|
|
146
170
|
switch(coverageProvider){
|
|
147
|
-
case '
|
|
171
|
+
case 'v8':
|
|
148
172
|
return {
|
|
149
|
-
'@vitest/coverage-
|
|
173
|
+
'@vitest/coverage-v8': _versions.vitestCoverageV8Version
|
|
150
174
|
};
|
|
151
175
|
case 'istanbul':
|
|
152
176
|
return {
|
|
@@ -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 vitestCoverageC8Version,\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 'c8':\n return {\n '@vitest/coverage-c8': vitestCoverageC8Version,\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","vitestCoverageC8Version","vitestCoverageIstanbulVersion","vitestCoverageV8Version"],"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 readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\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, initGenerator as jsInitGenerator } from '@nx/js';\nimport { join } from 'path';\nimport { ensureDependencies } from '../../utils/ensure-dependencies';\n\nexport function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n return vitestGeneratorInternal(\n tree,\n { addPlugin: false, ...schema },\n hasPlugin\n );\n}\n\nexport async function vitestGeneratorInternal(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n const tasks: GeneratorCallback[] = [];\n\n const { root, projectType } = readProjectConfiguration(tree, schema.project);\n const isRootProject = root === '.';\n\n tasks.push(await jsInitGenerator(tree, { ...schema, skipFormat: true }));\n const initTask = await initGenerator(tree, {\n skipFormat: true,\n addPlugin: schema.addPlugin,\n });\n tasks.push(initTask);\n tasks.push(ensureDependencies(tree, schema));\n\n const nxJson = readNxJson(tree);\n const hasPluginCheck = nxJson.plugins?.some(\n (p) =>\n (typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin') || hasPlugin\n );\n if (!hasPluginCheck) {\n const testTarget = schema.testTarget ?? 'test';\n addOrChangeTestTarget(tree, schema, testTarget);\n }\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 // Setup workspace config file (https://vitest.dev/guide/workspace.html)\n if (\n !isRootProject &&\n !tree.exists(`vitest.workspace.ts`) &&\n !tree.exists(`vitest.workspace.js`) &&\n !tree.exists(`vitest.workspace.json`) &&\n !tree.exists(`vitest.projects.ts`) &&\n !tree.exists(`vitest.projects.js`) &&\n !tree.exists(`vitest.projects.json`)\n ) {\n tree.write(\n 'vitest.workspace.ts',\n `export default ['**/*/vite.config.ts', '**/*/vitest.config.ts'];`\n );\n }\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","vitestGeneratorInternal","tree","schema","hasPlugin","addPlugin","nxJson","tasks","root","projectType","readProjectConfiguration","project","isRootProject","push","jsInitGenerator","skipFormat","initTask","initGenerator","ensureDependencies","readNxJson","hasPluginCheck","plugins","some","p","plugin","testTarget","addOrChangeTestTarget","skipViteConfig","uiFramework","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","rollupOptionsExternal","imports","coverageProvider","createFiles","updateTsConfig","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","exists","write","formatFiles","runTasksInSerial","options","projectRoot","joinPathFragments","updateJson","json","compilerOptions","types","includes","references","r","path","tsconfigLibPath","tsconfigAppPath","addTsLibDependencies","generateFiles","join","__dirname","tmpl","offsetFromRoot","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-15-3-1/update-vite-tsconfig-paths.ts"],"sourcesContent":["import {\n applyChangesToString,\n ChangeType,\n formatFiles,\n readProjectConfiguration,\n Tree,\n} from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport { findNodes } from '@nx/js';\nimport { normalizeViteConfigFilePathWithTree } from '../../utils/generator-utils';\nimport ts = require('typescript');\n\nexport async function removeProjectsFromViteTsConfigPaths(tree: Tree) {\n findAllProjectsWithViteConfig(tree);\n await formatFiles(tree);\n}\n\nexport default removeProjectsFromViteTsConfigPaths;\n\nfunction findAllProjectsWithViteConfig(tree: Tree): void {\n forEachExecutorOptions(tree, '@nrwl/vite:build', (options, project) => {\n const projectConfiguration = readProjectConfiguration(tree, project);\n const viteConfig = normalizeViteConfigFilePathWithTree(\n tree,\n projectConfiguration.root,\n options?.['configFile']\n );\n if (viteConfig) {\n const appFileContent = tree.read(viteConfig, 'utf-8');\n const file = tsquery.ast(appFileContent);\n let newContents = appFileContent;\n const defineConfig = tsquery.query(\n file,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n );\n let startOfProjects, endOfProjects;\n\n defineConfig?.[0]?.getChildren().forEach((defineConfigContentNode) => {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-15-3-1/update-vite-tsconfig-paths.ts"],"sourcesContent":["import {\n applyChangesToString,\n ChangeType,\n formatFiles,\n readProjectConfiguration,\n Tree,\n} from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport { findNodes } from '@nx/js';\nimport { normalizeViteConfigFilePathWithTree } from '../../utils/generator-utils';\nimport ts = require('typescript');\n\nexport async function removeProjectsFromViteTsConfigPaths(tree: Tree) {\n findAllProjectsWithViteConfig(tree);\n await formatFiles(tree);\n}\n\nexport default removeProjectsFromViteTsConfigPaths;\n\nfunction findAllProjectsWithViteConfig(tree: Tree): void {\n forEachExecutorOptions(tree, '@nrwl/vite:build', (options, project) => {\n const projectConfiguration = readProjectConfiguration(tree, project);\n const viteConfig = normalizeViteConfigFilePathWithTree(\n tree,\n projectConfiguration.root,\n options?.['configFile']\n );\n if (viteConfig) {\n const appFileContent = tree.read(viteConfig, 'utf-8');\n const file = tsquery.ast(appFileContent);\n let newContents = appFileContent;\n const defineConfig = tsquery.query(\n file,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n );\n let startOfProjects, endOfProjects;\n\n defineConfig?.[0]\n ?.getChildren()\n .forEach((defineConfigContentNode: any) => {\n // Make sure it's the one we are looking for\n // We cannot assume that it's called tsConfigPaths\n // So make sure it includes `projects` and `root`\n if (\n defineConfigContentNode.getText().includes('projects') &&\n defineConfigContentNode.getText().includes('root')\n ) {\n findNodes(defineConfigContentNode, [\n ts.SyntaxKind.PropertyAssignment,\n ]).forEach((nodePA) => {\n if (nodePA.getText().startsWith('projects')) {\n startOfProjects = nodePA.getStart();\n endOfProjects = nodePA.getEnd();\n }\n });\n }\n });\n\n if (startOfProjects && endOfProjects) {\n newContents = applyChangesToString(newContents, [\n {\n type: ChangeType.Delete,\n start: startOfProjects,\n length: endOfProjects - startOfProjects + 1,\n },\n ]);\n tree.write(viteConfig, newContents);\n }\n }\n });\n}\n"],"names":["removeProjectsFromViteTsConfigPaths","ts","tree","findAllProjectsWithViteConfig","formatFiles","forEachExecutorOptions","options","project","projectConfiguration","readProjectConfiguration","viteConfig","normalizeViteConfigFilePathWithTree","root","defineConfig","appFileContent","read","file","tsquery","ast","newContents","query","startOfProjects","endOfProjects","getChildren","forEach","defineConfigContentNode","getText","includes","findNodes","SyntaxKind","PropertyAssignment","nodePA","startsWith","getStart","getEnd","applyChangesToString","type","ChangeType","Delete","start","length","write"],"mappings":";;;;;;;;IAasBA,mCAAmC;eAAnCA;;IAKtB,OAAmD;eAAnD;;;wBAZO;sCACgC;yBACf;oBACE;gCAC0B;AACpD,MAAOC,aAAa;AAEb,eAAeD,oCAAoCE,IAAU;IAClEC,8BAA8BD;IAC9B,MAAME,IAAAA,mBAAW,EAACF;AACpB;MAEA,WAAeF;AAEf,SAASG,8BAA8BD,IAAU;IAC/CG,IAAAA,4CAAsB,EAACH,MAAM,oBAAoB,CAACI,SAASC;QACzD,MAAMC,uBAAuBC,IAAAA,gCAAwB,EAACP,MAAMK;QAC5D,MAAMG,aAAaC,IAAAA,mDAAmC,EACpDT,MACAM,qBAAqBI,IAAI,EACzBN,2BAAAA,OAAS,CAAC,aAAa;QAEzB,IAAII,YAAY;gBAUdG;YATA,MAAMC,iBAAiBZ,KAAKa,IAAI,CAACL,YAAY;YAC7C,MAAMM,OAAOC,gBAAO,CAACC,GAAG,CAACJ;YACzB,IAAIK,cAAcL;YAClB,MAAMD,eAAeI,gBAAO,CAACG,KAAK,CAChCJ,MACA;YAEF,IAAIK,iBAAiBC;YAErBT,iCAAAA,iBAAAA,YAAc,CAAC,EAAE,qBAAjBA,eACIU,WAAW,GACZC,OAAO,CAAC,CAACC;gBACR,4CAA4C;gBAC5C,kDAAkD;gBAClD,iDAAiD;gBACjD,IACEA,wBAAwBC,OAAO,GAAGC,QAAQ,CAAC,eAC3CF,wBAAwBC,OAAO,GAAGC,QAAQ,CAAC,SAC3C;oBACAC,IAAAA,aAAS,EAACH,yBAAyB;wBACjCxB,GAAG4B,UAAU,CAACC,kBAAkB;qBACjC,EAAEN,OAAO,CAAC,CAACO;wBACV,IAAIA,OAAOL,OAAO,GAAGM,UAAU,CAAC,aAAa;4BAC3CX,kBAAkBU,OAAOE,QAAQ;4BACjCX,gBAAgBS,OAAOG,MAAM;wBAC/B;oBACF;gBACF;YACF;YAEF,IAAIb,mBAAmBC,eAAe;gBACpCH,cAAcgB,IAAAA,4BAAoB,EAAChB,aAAa;oBAC9C;wBACEiB,MAAMC,kBAAU,CAACC,MAAM;wBACvBC,OAAOlB;wBACPmB,QAAQlB,gBAAgBD,kBAAkB;oBAC5C;iBACD;gBACDnB,KAAKuC,KAAK,CAAC/B,YAAYS;YACzB;QACF;IACF;AACF"}
|
|
@@ -8,12 +8,13 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
const _devkit = require("@nx/devkit");
|
|
9
9
|
const _executoroptionsutils = require("@nx/devkit/src/generators/executor-options-utils");
|
|
10
10
|
const _tsquery = require("@phenomnomnominal/tsquery");
|
|
11
|
+
const _findviteconfig = require("../../utils/find-vite-config");
|
|
11
12
|
function update(tree) {
|
|
12
13
|
const projects = (0, _devkit.getProjects)(tree);
|
|
13
14
|
(0, _executoroptionsutils.forEachExecutorOptions)(tree, '@nx/vite:build', (options, projectName)=>{
|
|
14
15
|
var _oldTsConfigPathPlugin__importClause_name, _oldTsConfigPathPlugin__importClause, _oldTsConfigPathPlugin_;
|
|
15
16
|
const projectConfig = projects.get(projectName);
|
|
16
|
-
const config = options.configFile || findViteConfig(tree, projectConfig.root);
|
|
17
|
+
const config = options.configFile || (0, _findviteconfig.findViteConfig)(tree, projectConfig.root);
|
|
17
18
|
if (!config || !tree.exists(config)) {
|
|
18
19
|
return;
|
|
19
20
|
}
|
|
@@ -24,7 +25,7 @@ function update(tree) {
|
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
27
|
var _oldTsConfigPathPlugin__importClause_name_text;
|
|
27
|
-
const importName = (_oldTsConfigPathPlugin__importClause_name_text = (_oldTsConfigPathPlugin_ = oldTsConfigPathPlugin[0]) == null ? void 0 : (_oldTsConfigPathPlugin__importClause = _oldTsConfigPathPlugin_
|
|
28
|
+
const importName = (_oldTsConfigPathPlugin__importClause_name_text = (_oldTsConfigPathPlugin_ = oldTsConfigPathPlugin[0]) == null ? void 0 : (_oldTsConfigPathPlugin__importClause = _oldTsConfigPathPlugin_['importClause']) == null ? void 0 : (_oldTsConfigPathPlugin__importClause_name = _oldTsConfigPathPlugin__importClause.name) == null ? void 0 : _oldTsConfigPathPlugin__importClause_name.text) != null ? _oldTsConfigPathPlugin__importClause_name_text : 'viteTsConfigPaths';
|
|
28
29
|
const updatedContent = _tsquery.tsquery.replace(configContents, `PropertyAssignment:has(Identifier[name="plugins"]) CallExpression:has(Identifier[name="${importName}"])`, ()=>{
|
|
29
30
|
return `nxViteTsPaths()`;
|
|
30
31
|
});
|
|
@@ -34,20 +35,5 @@ function update(tree) {
|
|
|
34
35
|
tree.write(config, withImportChange);
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
|
-
function findViteConfig(tree, searchRoot) {
|
|
38
|
-
const allowsExt = [
|
|
39
|
-
'js',
|
|
40
|
-
'mjs',
|
|
41
|
-
'ts',
|
|
42
|
-
'cjs',
|
|
43
|
-
'mts',
|
|
44
|
-
'cts'
|
|
45
|
-
];
|
|
46
|
-
for (const ext of allowsExt){
|
|
47
|
-
if (tree.exists((0, _devkit.joinPathFragments)(searchRoot, `vite.config.${ext}`))) {
|
|
48
|
-
return (0, _devkit.joinPathFragments)(searchRoot, `vite.config.${ext}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
38
|
|
|
53
39
|
//# sourceMappingURL=change-ts-paths-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.ts"],"sourcesContent":["import { Tree, getProjects, joinPathFragments } from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { ViteBuildExecutorOptions } from '../../executors/build/schema';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.ts"],"sourcesContent":["import { Tree, getProjects, joinPathFragments } from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { ViteBuildExecutorOptions } from '../../executors/build/schema';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport { findViteConfig } from '../../utils/find-vite-config';\n\nexport default function update(tree: Tree) {\n const projects = getProjects(tree);\n forEachExecutorOptions<ViteBuildExecutorOptions>(\n tree,\n '@nx/vite:build',\n (options, projectName) => {\n const projectConfig = projects.get(projectName);\n const config =\n options.configFile || findViteConfig(tree, projectConfig.root);\n if (!config || !tree.exists(config)) {\n return;\n }\n\n const configContents = tree.read(config, 'utf-8');\n\n const oldTsConfigPathPlugin =\n tsquery.query(\n configContents,\n 'ImportDeclaration:has(StringLiteral[value=\"vite-tsconfig-paths\"])'\n ) ?? [];\n\n if (oldTsConfigPathPlugin.length === 0) {\n return;\n }\n\n const importName =\n oldTsConfigPathPlugin[0]?.['importClause']?.name?.text ??\n 'viteTsConfigPaths';\n const updatedContent = tsquery.replace(\n configContents,\n `PropertyAssignment:has(Identifier[name=\"plugins\"]) CallExpression:has(Identifier[name=\"${importName}\"])`,\n () => {\n return `nxViteTsPaths()`;\n }\n );\n\n const withImportChange = tsquery.replace(\n updatedContent,\n 'ImportDeclaration:has(StringLiteral[value=\"vite-tsconfig-paths\"])',\n () => {\n return \"import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\";\n }\n );\n\n tree.write(config, withImportChange);\n }\n );\n}\n"],"names":["update","tree","projects","getProjects","forEachExecutorOptions","options","projectName","oldTsConfigPathPlugin","projectConfig","get","config","configFile","findViteConfig","root","exists","configContents","read","tsquery","query","length","importName","name","text","updatedContent","replace","withImportChange","write"],"mappings":";+BAMA;;;eAAwBA;;;wBAN6B;sCACd;yBAEf;gCACO;AAEhB,SAASA,OAAOC,IAAU;IACvC,MAAMC,WAAWC,IAAAA,mBAAW,EAACF;IAC7BG,IAAAA,4CAAsB,EACpBH,MACA,kBACA,CAACI,SAASC;YAqBNC,2CAAAA,sCAAAA;QApBF,MAAMC,gBAAgBN,SAASO,GAAG,CAACH;QACnC,MAAMI,SACJL,QAAQM,UAAU,IAAIC,IAAAA,8BAAc,EAACX,MAAMO,cAAcK,IAAI;QAC/D,IAAI,CAACH,UAAU,CAACT,KAAKa,MAAM,CAACJ,SAAS;YACnC;QACF;QAEA,MAAMK,iBAAiBd,KAAKe,IAAI,CAACN,QAAQ;YAGvCO;QADF,MAAMV,wBACJU,CAAAA,iBAAAA,gBAAO,CAACC,KAAK,CACXH,gBACA,gFAFFE,iBAGK,EAAE;QAET,IAAIV,sBAAsBY,MAAM,KAAK,GAAG;YACtC;QACF;YAGEZ;QADF,MAAMa,aACJb,CAAAA,kDAAAA,0BAAAA,qBAAqB,CAAC,EAAE,sBAAxBA,uCAAAA,uBAA0B,CAAC,eAAe,sBAA1CA,4CAAAA,qCAA4Cc,IAAI,qBAAhDd,0CAAkDe,IAAI,YAAtDf,iDACA;QACF,MAAMgB,iBAAiBN,gBAAO,CAACO,OAAO,CACpCT,gBACA,CAAC,uFAAuF,EAAEK,WAAW,GAAG,CAAC,EACzG;YACE,OAAO,CAAC,eAAe,CAAC;QAC1B;QAGF,MAAMK,mBAAmBR,gBAAO,CAACO,OAAO,CACtCD,gBACA,qEACA;YACE,OAAO;QACT;QAGFtB,KAAKyB,KAAK,CAAChB,QAAQe;IACrB;AAEJ"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "default", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return update;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _devkit = require("@nx/devkit");
|
|
9
|
+
const _executoroptionsutils = require("@nx/devkit/src/generators/executor-options-utils");
|
|
10
|
+
const _projectconfigurationutils = require("nx/src/project-graph/utils/project-configuration-utils");
|
|
11
|
+
async function update(tree) {
|
|
12
|
+
var _nxJson_targetDefaults, _nxJson_namedInputs;
|
|
13
|
+
var _nxJson, _vitestDefaults, _vitestDefaults1;
|
|
14
|
+
const nxJson = (0, _devkit.readNxJson)(tree);
|
|
15
|
+
// Don't override anything if there are already target defaults for vitest
|
|
16
|
+
if ((_nxJson_targetDefaults = nxJson.targetDefaults) == null ? void 0 : _nxJson_targetDefaults['@nx/vite:test']) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
var _targetDefaults;
|
|
20
|
+
(_targetDefaults = (_nxJson = nxJson).targetDefaults) != null ? _targetDefaults : _nxJson.targetDefaults = {};
|
|
21
|
+
/**
|
|
22
|
+
* A set of targets which does not use any other executors
|
|
23
|
+
*/ const vitestTargets = new Set();
|
|
24
|
+
const graph = await (0, _devkit.createProjectGraphAsync)();
|
|
25
|
+
const projectMap = (0, _devkit.getProjects)(tree);
|
|
26
|
+
(0, _executoroptionsutils.forEachExecutorOptionsInGraph)(graph, '@nx/vite:test', (value, proj, targetName)=>{
|
|
27
|
+
vitestTargets.add(targetName);
|
|
28
|
+
});
|
|
29
|
+
// Workspace does not use vitest
|
|
30
|
+
if (vitestTargets.size === 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Use the project graph nodes so that targets which are inferred are considered
|
|
34
|
+
const projects = graph.nodes;
|
|
35
|
+
const vitestDefaults = nxJson.targetDefaults['@nx/vite:test'] = {};
|
|
36
|
+
// All vitest targets have the same name
|
|
37
|
+
if (vitestTargets.size === 1) {
|
|
38
|
+
const targetName = Array.from(vitestTargets)[0];
|
|
39
|
+
if (nxJson.targetDefaults[targetName]) {
|
|
40
|
+
Object.assign(vitestDefaults, nxJson.targetDefaults[targetName]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var _cache;
|
|
44
|
+
(_cache = (_vitestDefaults = vitestDefaults).cache) != null ? _cache : _vitestDefaults.cache = true;
|
|
45
|
+
const inputs = [
|
|
46
|
+
'default'
|
|
47
|
+
];
|
|
48
|
+
inputs.push(((_nxJson_namedInputs = nxJson.namedInputs) == null ? void 0 : _nxJson_namedInputs.production) ? '^production' : '^default');
|
|
49
|
+
var _inputs;
|
|
50
|
+
(_inputs = (_vitestDefaults1 = vitestDefaults).inputs) != null ? _inputs : _vitestDefaults1.inputs = inputs;
|
|
51
|
+
// Cleanup old target defaults
|
|
52
|
+
for (const [targetDefaultKey, targetDefault] of Object.entries(nxJson.targetDefaults)){
|
|
53
|
+
if (!isTargetDefaultUsed(targetDefault, nxJson.targetDefaults, projects, projectMap)) {
|
|
54
|
+
delete nxJson.targetDefaults[targetDefaultKey];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
(0, _devkit.updateNxJson)(tree, nxJson);
|
|
58
|
+
await (0, _devkit.formatFiles)(tree);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Checks every target on every project to see if one of them uses the target default
|
|
62
|
+
*/ function isTargetDefaultUsed(targetDefault, targetDefaults, projects, projectMap) {
|
|
63
|
+
for (const p of Object.values(projects)){
|
|
64
|
+
var _p_data;
|
|
65
|
+
var _p_data_targets;
|
|
66
|
+
for(const targetName in (_p_data_targets = (_p_data = p.data) == null ? void 0 : _p_data.targets) != null ? _p_data_targets : {}){
|
|
67
|
+
var // It might seem like we should use the graph here too but we don't want to pass an executor which was processed in the graph
|
|
68
|
+
_projectMap_get_targets_targetName, _projectMap_get_targets;
|
|
69
|
+
if ((0, _projectconfigurationutils.readTargetDefaultsForTarget)(targetName, targetDefaults, (_projectMap_get_targets = projectMap.get(p.name).targets) == null ? void 0 : (_projectMap_get_targets_targetName = _projectMap_get_targets[targetName]) == null ? void 0 : _projectMap_get_targets_targetName.executor) === targetDefault) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=move-target-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-17-1-0/move-target-defaults.ts"],"sourcesContent":["import {\n createProjectGraphAsync,\n formatFiles,\n getProjects,\n ProjectConfiguration,\n ProjectGraphProjectNode,\n readNxJson,\n TargetConfiguration,\n TargetDefaults,\n Tree,\n updateNxJson,\n} from '@nx/devkit';\nimport { forEachExecutorOptionsInGraph } from '@nx/devkit/src/generators/executor-options-utils';\nimport { VitestExecutorOptions } from '../../executors/test/schema';\nimport { readTargetDefaultsForTarget } from 'nx/src/project-graph/utils/project-configuration-utils';\n\nexport default async function update(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n // Don't override anything if there are already target defaults for vitest\n if (nxJson.targetDefaults?.['@nx/vite:test']) {\n return;\n }\n\n nxJson.targetDefaults ??= {};\n\n /**\n * A set of targets which does not use any other executors\n */\n const vitestTargets = new Set<string>();\n const graph = await createProjectGraphAsync();\n const projectMap = getProjects(tree);\n\n forEachExecutorOptionsInGraph(\n graph,\n '@nx/vite:test',\n (value, proj, targetName) => {\n vitestTargets.add(targetName);\n }\n );\n\n // Workspace does not use vitest\n if (vitestTargets.size === 0) {\n return;\n }\n\n // Use the project graph nodes so that targets which are inferred are considered\n const projects = graph.nodes;\n\n const vitestDefaults: TargetConfiguration<Partial<VitestExecutorOptions>> =\n (nxJson.targetDefaults['@nx/vite:test'] = {});\n\n // All vitest targets have the same name\n if (vitestTargets.size === 1) {\n const targetName = Array.from(vitestTargets)[0];\n if (nxJson.targetDefaults[targetName]) {\n Object.assign(vitestDefaults, nxJson.targetDefaults[targetName]);\n }\n }\n\n vitestDefaults.cache ??= true;\n\n const inputs = ['default'];\n inputs.push(nxJson.namedInputs?.production ? '^production' : '^default');\n vitestDefaults.inputs ??= inputs;\n\n // Cleanup old target defaults\n for (const [targetDefaultKey, targetDefault] of Object.entries(\n nxJson.targetDefaults\n )) {\n if (\n !isTargetDefaultUsed(\n targetDefault,\n nxJson.targetDefaults,\n projects,\n projectMap\n )\n ) {\n delete nxJson.targetDefaults[targetDefaultKey];\n }\n }\n\n updateNxJson(tree, nxJson);\n\n await formatFiles(tree);\n}\n\n/**\n * Checks every target on every project to see if one of them uses the target default\n */\nfunction isTargetDefaultUsed(\n targetDefault: Partial<TargetConfiguration>,\n targetDefaults: TargetDefaults,\n projects: Record<string, ProjectGraphProjectNode>,\n projectMap: Map<string, ProjectConfiguration>\n) {\n for (const p of Object.values(projects)) {\n for (const targetName in p.data?.targets ?? {}) {\n if (\n readTargetDefaultsForTarget(\n targetName,\n targetDefaults,\n // It might seem like we should use the graph here too but we don't want to pass an executor which was processed in the graph\n projectMap.get(p.name).targets?.[targetName]?.executor\n ) === targetDefault\n ) {\n return true;\n }\n }\n }\n return false;\n}\n"],"names":["update","tree","nxJson","vitestDefaults","readNxJson","targetDefaults","vitestTargets","Set","graph","createProjectGraphAsync","projectMap","getProjects","forEachExecutorOptionsInGraph","value","proj","targetName","add","size","projects","nodes","Array","from","Object","assign","cache","inputs","push","namedInputs","production","targetDefaultKey","targetDefault","entries","isTargetDefaultUsed","updateNxJson","formatFiles","p","values","data","targets","readTargetDefaultsForTarget","get","name","executor"],"mappings":";+BAgBA;;;eAA8BA;;;wBALvB;sCACuC;2CAEF;AAE7B,eAAeA,OAAOC,IAAU;QAIzCC,wBA2CQA;QAvCZA,SAoCAC,iBAIAA;IA/CA,MAAMD,SAASE,IAAAA,kBAAU,EAACH;IAE1B,0EAA0E;IAC1E,KAAIC,yBAAAA,OAAOG,cAAc,qBAArBH,sBAAuB,CAAC,gBAAgB,EAAE;QAC5C;IACF;;IAEAA,oBAAAA,UAAAA,QAAOG,4CAAPH,QAAOG,iBAAmB,CAAC;IAE3B;;GAEC,GACD,MAAMC,gBAAgB,IAAIC;IAC1B,MAAMC,QAAQ,MAAMC,IAAAA,+BAAuB;IAC3C,MAAMC,aAAaC,IAAAA,mBAAW,EAACV;IAE/BW,IAAAA,mDAA6B,EAC3BJ,OACA,iBACA,CAACK,OAAOC,MAAMC;QACZT,cAAcU,GAAG,CAACD;IACpB;IAGF,gCAAgC;IAChC,IAAIT,cAAcW,IAAI,KAAK,GAAG;QAC5B;IACF;IAEA,gFAAgF;IAChF,MAAMC,WAAWV,MAAMW,KAAK;IAE5B,MAAMhB,iBACHD,OAAOG,cAAc,CAAC,gBAAgB,GAAG,CAAC;IAE7C,wCAAwC;IACxC,IAAIC,cAAcW,IAAI,KAAK,GAAG;QAC5B,MAAMF,aAAaK,MAAMC,IAAI,CAACf,cAAc,CAAC,EAAE;QAC/C,IAAIJ,OAAOG,cAAc,CAACU,WAAW,EAAE;YACrCO,OAAOC,MAAM,CAACpB,gBAAgBD,OAAOG,cAAc,CAACU,WAAW;QACjE;IACF;;IAEAZ,WAAAA,kBAAAA,gBAAeqB,0BAAfrB,gBAAeqB,QAAU;IAEzB,MAAMC,SAAS;QAAC;KAAU;IAC1BA,OAAOC,IAAI,CAACxB,EAAAA,sBAAAA,OAAOyB,WAAW,qBAAlBzB,oBAAoB0B,UAAU,IAAG,gBAAgB;;IAC7DzB,YAAAA,mBAAAA,gBAAesB,4BAAftB,iBAAesB,SAAWA;IAE1B,8BAA8B;IAC9B,KAAK,MAAM,CAACI,kBAAkBC,cAAc,IAAIR,OAAOS,OAAO,CAC5D7B,OAAOG,cAAc,EACpB;QACD,IACE,CAAC2B,oBACCF,eACA5B,OAAOG,cAAc,EACrBa,UACAR,aAEF;YACA,OAAOR,OAAOG,cAAc,CAACwB,iBAAiB;QAChD;IACF;IAEAI,IAAAA,oBAAY,EAAChC,MAAMC;IAEnB,MAAMgC,IAAAA,mBAAW,EAACjC;AACpB;AAEA;;CAEC,GACD,SAAS+B,oBACPF,aAA2C,EAC3CzB,cAA8B,EAC9Ba,QAAiD,EACjDR,UAA6C;IAE7C,KAAK,MAAMyB,KAAKb,OAAOc,MAAM,CAAClB,UAAW;YACdiB;YAAAA;QAAzB,IAAK,MAAMpB,cAAcoB,CAAAA,mBAAAA,UAAAA,EAAEE,IAAI,qBAANF,QAAQG,OAAO,YAAfH,kBAAmB,CAAC,EAAG;gBAK1C,6HAA6H;YAC7HzB,oCAAAA;YALJ,IACE6B,IAAAA,sDAA2B,EACzBxB,YACAV,iBAEAK,0BAAAA,WAAW8B,GAAG,CAACL,EAAEM,IAAI,EAAEH,OAAO,sBAA9B5B,qCAAAA,uBAAgC,CAACK,WAAW,qBAA5CL,mCAA8CgC,QAAQ,MAClDZ,eACN;gBACA,OAAO;YACT;QACF;IACF;IACA,OAAO;AACT"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
const _updateviteconfig = require("../update-vite-config");
|
|
11
|
+
function addFileReplacements(configContents, fileReplacements, configPath) {
|
|
12
|
+
var _tsquery_query, _tsquery_query1, _tsquery_query2;
|
|
13
|
+
const configNode = (0, _updateviteconfig.getConfigNode)(configContents);
|
|
14
|
+
if (!configNode) {
|
|
15
|
+
(0, _updateviteconfig.notFoundWarning)(configPath);
|
|
16
|
+
return configContents;
|
|
17
|
+
}
|
|
18
|
+
const pluginsObject = (_tsquery_query = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="plugins"])`)) == null ? void 0 : _tsquery_query[0];
|
|
19
|
+
const replaceFilesPlugin = (_tsquery_query1 = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="plugins"]) CallExpression:has(Identifier[name="replaceFiles"])`)) == null ? void 0 : _tsquery_query1[0];
|
|
20
|
+
const firstImportDeclaration = (_tsquery_query2 = _tsquery.tsquery.query(configContents, 'ImportDeclaration')) == null ? void 0 : _tsquery_query2[0];
|
|
21
|
+
if (pluginsObject) {
|
|
22
|
+
if (replaceFilesPlugin) {
|
|
23
|
+
return configContents;
|
|
24
|
+
} else {
|
|
25
|
+
return (0, _devkit.applyChangesToString)(configContents, [
|
|
26
|
+
{
|
|
27
|
+
type: _devkit.ChangeType.Insert,
|
|
28
|
+
index: pluginsObject.getStart() + `plugins: [`.length + 1,
|
|
29
|
+
text: `replaceFiles(${JSON.stringify(fileReplacements)}),`
|
|
30
|
+
},
|
|
31
|
+
firstImportDeclaration ? {
|
|
32
|
+
type: _devkit.ChangeType.Insert,
|
|
33
|
+
index: firstImportDeclaration.getStart(),
|
|
34
|
+
text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\n`
|
|
35
|
+
} : {
|
|
36
|
+
type: _devkit.ChangeType.Insert,
|
|
37
|
+
index: 0,
|
|
38
|
+
text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\n`
|
|
39
|
+
}
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
} else {
|
|
43
|
+
var _tsquery_query3;
|
|
44
|
+
const foundDefineConfig = (_tsquery_query3 = _tsquery.tsquery.query(configContents, 'CallExpression:has(Identifier[name="defineConfig"])')) == null ? void 0 : _tsquery_query3[0];
|
|
45
|
+
if (!foundDefineConfig) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
return (0, _devkit.applyChangesToString)(configContents, [
|
|
49
|
+
{
|
|
50
|
+
type: _devkit.ChangeType.Insert,
|
|
51
|
+
index: configNode.getStart() + 1,
|
|
52
|
+
text: `plugins: [replaceFiles(${JSON.stringify(fileReplacements)})],`
|
|
53
|
+
},
|
|
54
|
+
firstImportDeclaration ? {
|
|
55
|
+
type: _devkit.ChangeType.Insert,
|
|
56
|
+
index: firstImportDeclaration.getStart(),
|
|
57
|
+
text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`
|
|
58
|
+
} : {
|
|
59
|
+
type: _devkit.ChangeType.Insert,
|
|
60
|
+
index: 0,
|
|
61
|
+
text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`
|
|
62
|
+
}
|
|
63
|
+
]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=add-file-replacements.js.map
|