@analogjs/vitest-angular 3.0.0-alpha.7 → 3.0.0-alpha.9
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/_virtual/_rolldown/runtime.js +7 -0
- package/package.json +5 -8
- package/setup-snapshots.js +71 -95
- package/setup-snapshots.js.map +1 -0
- package/setup-testbed.js +23 -29
- package/setup-testbed.js.map +1 -0
- package/setup-zone.js +90 -103
- package/setup-zone.js.map +1 -0
- package/src/index.js +3 -4
- package/src/lib/builders/build/devkit.js +22 -17
- package/src/lib/builders/build/devkit.js.map +1 -0
- package/src/lib/builders/build/plugins/angular-memory-plugin.js +51 -77
- package/src/lib/builders/build/plugins/angular-memory-plugin.js.map +1 -0
- package/src/lib/builders/build/plugins/downlevel-plugin.js +23 -22
- package/src/lib/builders/build/plugins/downlevel-plugin.js.map +1 -0
- package/src/lib/builders/build/schema.js +53 -0
- package/src/lib/builders/build/schema.js.map +1 -0
- package/src/lib/builders/build/vitest.impl.js +153 -190
- package/src/lib/builders/build/vitest.impl.js.map +1 -0
- package/src/lib/builders/test/schema.js +51 -0
- package/src/lib/builders/test/schema.js.map +1 -0
- package/src/lib/builders/test/vitest.impl.js +48 -58
- package/src/lib/builders/test/vitest.impl.js.map +1 -0
- package/src/lib/tools/package.json +2 -4
- package/src/lib/tools/src/index.js +3 -6
- package/src/lib/tools/src/schematics/setup/index.js +46 -71
- package/src/lib/tools/src/schematics/setup/index.js.map +1 -1
- package/src/lib/tools/src/schematics/utils/angular.js +16 -22
- package/src/lib/tools/src/schematics/utils/angular.js.map +1 -1
- package/src/lib/tools/src/schematics/utils/dependencies.js +34 -44
- package/src/lib/tools/src/schematics/utils/dependencies.js.map +1 -1
- package/src/lib/tools/src/schematics/utils/index.js +4 -8
- package/src/lib/tools/src/schematics/utils/versions.d.ts +1 -1
- package/src/lib/tools/src/schematics/utils/versions.js +17 -12
- package/src/lib/tools/src/schematics/utils/versions.js.map +1 -1
- package/src/lib/tools/src/schematics/utils/workspace.js +14 -17
- package/src/lib/tools/src/schematics/utils/workspace.js.map +1 -1
- package/src/lib/tools/src/test-global-setup.d.ts +1 -0
- package/README.md +0 -297
- package/src/lib/builders/build/schema.json +0 -47
- package/src/lib/builders/build/utils.js +0 -1
- package/src/lib/builders/test/schema.json +0 -47
- package/src/lib/tools/src/index.js.map +0 -1
- package/src/lib/tools/src/schematics/utils/index.js.map +0 -1
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
exports.setupSchematic =
|
|
4
|
-
var index_1 = require("./schematics/setup/index");
|
|
5
|
-
Object.defineProperty(exports, "setupSchematic", { enumerable: true, get: function () { return index_1.setupSchematic; } });
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_index = require("./schematics/setup/index.js");
|
|
3
|
+
exports.setupSchematic = require_index.setupSchematic;
|
|
@@ -1,80 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
const require_angular = require("../utils/angular.js");
|
|
2
|
+
const require_workspace = require("../utils/workspace.js");
|
|
3
|
+
const require_dependencies = require("../utils/dependencies.js");
|
|
4
|
+
require("../utils/index.js");
|
|
5
|
+
let _angular_devkit_schematics = require("@angular-devkit/schematics");
|
|
6
|
+
let _angular_devkit_schematics_tasks = require("@angular-devkit/schematics/tasks");
|
|
7
|
+
let jsonc_parser = require("jsonc-parser");
|
|
8
|
+
//#region packages/vitest-angular-tools/src/schematics/setup/index.ts
|
|
8
9
|
function updateTsConfigSpec(tree, projectRoot) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
delete tsConfig.compilerOptions.module;
|
|
23
|
-
// Set target to es2022
|
|
24
|
-
tsConfig.compilerOptions.target = 'es2022';
|
|
25
|
-
// Update types: remove jest, add vitest/globals
|
|
26
|
-
const types = tsConfig.compilerOptions.types || ['node'];
|
|
27
|
-
const filteredTypes = types.filter((t) => t !== 'jest' && t !== 'jasmine');
|
|
28
|
-
if (!filteredTypes.includes('vitest/globals')) {
|
|
29
|
-
filteredTypes.push('vitest/globals');
|
|
30
|
-
}
|
|
31
|
-
tsConfig.compilerOptions.types = filteredTypes;
|
|
32
|
-
// Set files to include test-setup.ts
|
|
33
|
-
tsConfig.files = ['src/test-setup.ts'];
|
|
34
|
-
tree.overwrite(tsConfigPath, JSON.stringify(tsConfig, null, 2) + '\n');
|
|
10
|
+
const tsConfigPath = projectRoot ? `${projectRoot}/tsconfig.spec.json` : "tsconfig.spec.json";
|
|
11
|
+
if (!tree.exists(tsConfigPath)) return;
|
|
12
|
+
const tsConfigContent = tree.read(tsConfigPath);
|
|
13
|
+
if (!tsConfigContent) return;
|
|
14
|
+
const tsConfig = (0, jsonc_parser.parse)(tsConfigContent.toString("utf-8"));
|
|
15
|
+
tsConfig.compilerOptions = tsConfig.compilerOptions || {};
|
|
16
|
+
delete tsConfig.compilerOptions.module;
|
|
17
|
+
tsConfig.compilerOptions.target = "es2022";
|
|
18
|
+
const filteredTypes = (tsConfig.compilerOptions.types || ["node"]).filter((t) => t !== "jest" && t !== "jasmine");
|
|
19
|
+
if (!filteredTypes.includes("vitest/globals")) filteredTypes.push("vitest/globals");
|
|
20
|
+
tsConfig.compilerOptions.types = filteredTypes;
|
|
21
|
+
tsConfig.files = ["src/test-setup.ts"];
|
|
22
|
+
tree.overwrite(tsConfigPath, JSON.stringify(tsConfig, null, 2) + "\n");
|
|
35
23
|
}
|
|
36
24
|
function updateAngularJson(tree, projectName) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
project.architect['test'] = {
|
|
43
|
-
builder: '@analogjs/vitest-angular:test',
|
|
44
|
-
};
|
|
45
|
-
tree.overwrite('angular.json', JSON.stringify(workspace, null, 2) + '\n');
|
|
25
|
+
const workspace = require_workspace.getWorkspace(tree);
|
|
26
|
+
const project = workspace.projects[projectName];
|
|
27
|
+
if (!project.architect) project.architect = {};
|
|
28
|
+
project.architect["test"] = { builder: "@analogjs/vitest-angular:test" };
|
|
29
|
+
tree.overwrite("angular.json", JSON.stringify(workspace, null, 2) + "\n");
|
|
46
30
|
}
|
|
47
31
|
function generateFiles(projectRoot, majorAngularVersion, isNx, browserMode) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}),
|
|
54
|
-
(0, schematics_1.move)(projectRoot),
|
|
55
|
-
]));
|
|
32
|
+
return (0, _angular_devkit_schematics.mergeWith)((0, _angular_devkit_schematics.apply)((0, _angular_devkit_schematics.url)("./files"), [(0, _angular_devkit_schematics.applyTemplates)({
|
|
33
|
+
majorAngularVersion,
|
|
34
|
+
isNx,
|
|
35
|
+
browserMode
|
|
36
|
+
}), (0, _angular_devkit_schematics.move)(projectRoot)]));
|
|
56
37
|
}
|
|
57
38
|
function setupSchematic(options) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
// Update angular.json test target
|
|
71
|
-
updateAngularJson(tree, options.project);
|
|
72
|
-
// Schedule package install
|
|
73
|
-
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
74
|
-
// Generate files
|
|
75
|
-
return (0, schematics_1.chain)([
|
|
76
|
-
generateFiles(projectRoot, majorAngularVersion, isNx, browserMode),
|
|
77
|
-
]);
|
|
78
|
-
};
|
|
39
|
+
return (tree, context) => {
|
|
40
|
+
const angularVersion = require_angular.getAngularVersion(tree);
|
|
41
|
+
const majorAngularVersion = require_angular.getMajorAngularVersion(angularVersion);
|
|
42
|
+
const projectRoot = require_workspace.getProject(require_workspace.getWorkspace(tree), options.project).root || "";
|
|
43
|
+
const isNx = require_workspace.isNxWorkspace(tree);
|
|
44
|
+
const browserMode = options.browserMode ?? false;
|
|
45
|
+
require_dependencies.addDevDependencies(tree, angularVersion, { browserMode });
|
|
46
|
+
updateTsConfigSpec(tree, projectRoot);
|
|
47
|
+
updateAngularJson(tree, options.project);
|
|
48
|
+
context.addTask(new _angular_devkit_schematics_tasks.NodePackageInstallTask());
|
|
49
|
+
return (0, _angular_devkit_schematics.chain)([generateFiles(projectRoot, majorAngularVersion, isNx, browserMode)]);
|
|
50
|
+
};
|
|
79
51
|
}
|
|
52
|
+
//#endregion
|
|
53
|
+
exports.setupSchematic = setupSchematic;
|
|
54
|
+
|
|
80
55
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../packages/vitest-angular-tools/src/schematics/setup/index.ts"],"sourcesContent":["import {\n Rule,\n Tree,\n apply,\n url,\n applyTemplates,\n move,\n chain,\n mergeWith,\n SchematicContext,\n} from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\nimport { parse } from 'jsonc-parser';\nimport {\n getAngularVersion,\n getMajorAngularVersion,\n getWorkspace,\n getProject,\n addDevDependencies,\n isNxWorkspace,\n} from '../utils';\nimport { Schema } from './schema';\n\nfunction updateTsConfigSpec(tree: Tree, projectRoot: string): void {\n const tsConfigPath = projectRoot\n ? `${projectRoot}/tsconfig.spec.json`\n : 'tsconfig.spec.json';\n\n if (!tree.exists(tsConfigPath)) {\n return;\n }\n\n const tsConfigContent = tree.read(tsConfigPath);\n if (!tsConfigContent) {\n return;\n }\n\n const tsConfig = parse(tsConfigContent.toString('utf-8')) as Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >;\n\n tsConfig.compilerOptions = tsConfig.compilerOptions || {};\n\n // Remove module (let Vite handle it)\n delete tsConfig.compilerOptions.module;\n\n // Set target to es2022\n tsConfig.compilerOptions.target = 'es2022';\n\n // Update types: remove jest, add vitest/globals\n const types: string[] = tsConfig.compilerOptions.types || ['node'];\n const filteredTypes = types.filter(\n (t: string) => t !== 'jest' && t !== 'jasmine',\n );\n if (!filteredTypes.includes('vitest/globals')) {\n filteredTypes.push('vitest/globals');\n }\n tsConfig.compilerOptions.types = filteredTypes;\n\n // Set files to include test-setup.ts\n tsConfig.files = ['src/test-setup.ts'];\n\n tree.overwrite(tsConfigPath, JSON.stringify(tsConfig, null, 2) + '\\n');\n}\n\nfunction updateAngularJson(tree: Tree, projectName: string): void {\n const workspace = getWorkspace(tree);\n const project = workspace.projects[projectName];\n\n if (!project.architect) {\n project.architect = {};\n }\n\n project.architect['test'] = {\n builder: '@analogjs/vitest-angular:test',\n };\n\n tree.overwrite('angular.json', JSON.stringify(workspace, null, 2) + '\\n');\n}\n\nfunction generateFiles(\n projectRoot: string,\n majorAngularVersion: number,\n isNx: boolean,\n browserMode: boolean,\n): Rule {\n return mergeWith(\n apply(url('./files'), [\n applyTemplates({\n majorAngularVersion,\n isNx,\n browserMode,\n }),\n move(projectRoot),\n ]),\n );\n}\n\nexport function setupSchematic(options: Schema): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const angularVersion = getAngularVersion(tree);\n const majorAngularVersion = getMajorAngularVersion(angularVersion);\n\n const workspace = getWorkspace(tree);\n const project = getProject(workspace, options.project);\n const projectRoot = project.root || '';\n const isNx = isNxWorkspace(tree);\n\n const browserMode = options.browserMode ?? false;\n\n // Add devDependencies\n addDevDependencies(tree, angularVersion, { browserMode });\n\n // Update tsconfig.spec.json (if exists)\n updateTsConfigSpec(tree, projectRoot);\n\n // Update angular.json test target\n updateAngularJson(tree, options.project);\n\n // Schedule package install\n context.addTask(new NodePackageInstallTask());\n\n // Generate files\n return chain([\n generateFiles(projectRoot, majorAngularVersion, isNx, browserMode),\n ]);\n };\n}\n"],"mappings":";;;;;;;;AAuBA,SAAS,mBAAmB,MAAY,aAA2B;CACjE,MAAM,eAAe,cACjB,GAAG,YAAY,uBACf;AAEJ,KAAI,CAAC,KAAK,OAAO,aAAa,CAC5B;CAGF,MAAM,kBAAkB,KAAK,KAAK,aAAa;AAC/C,KAAI,CAAC,gBACH;CAGF,MAAM,YAAA,GAAA,aAAA,OAAiB,gBAAgB,SAAS,QAAQ,CAAC;AAMzD,UAAS,kBAAkB,SAAS,mBAAmB,EAAE;AAGzD,QAAO,SAAS,gBAAgB;AAGhC,UAAS,gBAAgB,SAAS;CAIlC,MAAM,iBADkB,SAAS,gBAAgB,SAAS,CAAC,OAAO,EACtC,QACzB,MAAc,MAAM,UAAU,MAAM,UACtC;AACD,KAAI,CAAC,cAAc,SAAS,iBAAiB,CAC3C,eAAc,KAAK,iBAAiB;AAEtC,UAAS,gBAAgB,QAAQ;AAGjC,UAAS,QAAQ,CAAC,oBAAoB;AAEtC,MAAK,UAAU,cAAc,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG,KAAK;;AAGxE,SAAS,kBAAkB,MAAY,aAA2B;CAChE,MAAM,YAAY,kBAAA,aAAa,KAAK;CACpC,MAAM,UAAU,UAAU,SAAS;AAEnC,KAAI,CAAC,QAAQ,UACX,SAAQ,YAAY,EAAE;AAGxB,SAAQ,UAAU,UAAU,EAC1B,SAAS,iCACV;AAED,MAAK,UAAU,gBAAgB,KAAK,UAAU,WAAW,MAAM,EAAE,GAAG,KAAK;;AAG3E,SAAS,cACP,aACA,qBACA,MACA,aACM;AACN,SAAA,GAAA,2BAAA,YAAA,GAAA,2BAAA,QAAA,GAAA,2BAAA,KACY,UAAU,EAAE,EAAA,GAAA,2BAAA,gBACL;EACb;EACA;EACA;EACD,CAAC,GAAA,GAAA,2BAAA,MACG,YAAY,CAClB,CAAC,CACH;;AAGH,SAAgB,eAAe,SAAuB;AACpD,SAAQ,MAAY,YAA8B;EAChD,MAAM,iBAAiB,gBAAA,kBAAkB,KAAK;EAC9C,MAAM,sBAAsB,gBAAA,uBAAuB,eAAe;EAIlE,MAAM,cADU,kBAAA,WADE,kBAAA,aAAa,KAAK,EACE,QAAQ,QAAQ,CAC1B,QAAQ;EACpC,MAAM,OAAO,kBAAA,cAAc,KAAK;EAEhC,MAAM,cAAc,QAAQ,eAAe;AAG3C,uBAAA,mBAAmB,MAAM,gBAAgB,EAAE,aAAa,CAAC;AAGzD,qBAAmB,MAAM,YAAY;AAGrC,oBAAkB,MAAM,QAAQ,QAAQ;AAGxC,UAAQ,QAAQ,IAAI,iCAAA,wBAAwB,CAAC;AAG7C,UAAA,GAAA,2BAAA,OAAa,CACX,cAAc,aAAa,qBAAqB,MAAM,YAAY,CACnE,CAAC"}
|
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.getMajorAngularVersion = getMajorAngularVersion;
|
|
5
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
6
|
-
const semver_1 = require("semver");
|
|
1
|
+
let _angular_devkit_schematics = require("@angular-devkit/schematics");
|
|
2
|
+
let semver = require("semver");
|
|
3
|
+
//#region packages/vitest-angular-tools/src/schematics/utils/angular.ts
|
|
7
4
|
function getAngularVersion(tree) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
pkg.devDependencies?.['@angular/core'];
|
|
15
|
-
if (!angularVersion) {
|
|
16
|
-
throw new schematics_1.SchematicsException('Could not find @angular/core in package.json');
|
|
17
|
-
}
|
|
18
|
-
return angularVersion;
|
|
5
|
+
const packageJson = tree.read("package.json");
|
|
6
|
+
if (!packageJson) throw new _angular_devkit_schematics.SchematicsException("Could not find package.json");
|
|
7
|
+
const pkg = JSON.parse(packageJson.toString("utf-8"));
|
|
8
|
+
const angularVersion = pkg.dependencies?.["@angular/core"] || pkg.devDependencies?.["@angular/core"];
|
|
9
|
+
if (!angularVersion) throw new _angular_devkit_schematics.SchematicsException("Could not find @angular/core in package.json");
|
|
10
|
+
return angularVersion;
|
|
19
11
|
}
|
|
20
12
|
function getMajorAngularVersion(angularVersion) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
return (0, semver_1.major)(coerced);
|
|
13
|
+
const coerced = (0, semver.coerce)(angularVersion);
|
|
14
|
+
if (!coerced) throw new _angular_devkit_schematics.SchematicsException(`Could not parse Angular version: ${angularVersion}`);
|
|
15
|
+
return (0, semver.major)(coerced);
|
|
26
16
|
}
|
|
17
|
+
//#endregion
|
|
18
|
+
exports.getAngularVersion = getAngularVersion;
|
|
19
|
+
exports.getMajorAngularVersion = getMajorAngularVersion;
|
|
20
|
+
|
|
27
21
|
//# sourceMappingURL=angular.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular.js","
|
|
1
|
+
{"version":3,"file":"angular.js","names":[],"sources":["../../../../../../packages/vitest-angular-tools/src/schematics/utils/angular.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\nimport { coerce, major } from 'semver';\n\nexport function getAngularVersion(tree: Tree): string {\n const packageJson = tree.read('package.json');\n if (!packageJson) {\n throw new SchematicsException('Could not find package.json');\n }\n\n const pkg = JSON.parse(packageJson.toString('utf-8'));\n const angularVersion =\n pkg.dependencies?.['@angular/core'] ||\n pkg.devDependencies?.['@angular/core'];\n\n if (!angularVersion) {\n throw new SchematicsException(\n 'Could not find @angular/core in package.json',\n );\n }\n\n return angularVersion;\n}\n\nexport function getMajorAngularVersion(angularVersion: string): number {\n const coerced = coerce(angularVersion);\n if (!coerced) {\n throw new SchematicsException(\n `Could not parse Angular version: ${angularVersion}`,\n );\n }\n return major(coerced);\n}\n"],"mappings":";;;AAGA,SAAgB,kBAAkB,MAAoB;CACpD,MAAM,cAAc,KAAK,KAAK,eAAe;AAC7C,KAAI,CAAC,YACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;CAG9D,MAAM,MAAM,KAAK,MAAM,YAAY,SAAS,QAAQ,CAAC;CACrD,MAAM,iBACJ,IAAI,eAAe,oBACnB,IAAI,kBAAkB;AAExB,KAAI,CAAC,eACH,OAAM,IAAI,2BAAA,oBACR,+CACD;AAGH,QAAO;;AAGT,SAAgB,uBAAuB,gBAAgC;CACrE,MAAM,WAAA,GAAA,OAAA,QAAiB,eAAe;AACtC,KAAI,CAAC,QACH,OAAM,IAAI,2BAAA,oBACR,oCAAoC,iBACrC;AAEH,SAAA,GAAA,OAAA,OAAa,QAAQ"}
|
|
@@ -1,49 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
6
|
-
const semver_1 = require("semver");
|
|
7
|
-
const versions_1 = require("./versions");
|
|
1
|
+
const require_versions = require("./versions.js");
|
|
2
|
+
let _angular_devkit_schematics = require("@angular-devkit/schematics");
|
|
3
|
+
let semver = require("semver");
|
|
4
|
+
//#region packages/vitest-angular-tools/src/schematics/utils/dependencies.ts
|
|
8
5
|
function getDevDependencies(angularVersion, options = {}) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
deps['playwright'] = versions_1.PLAYWRIGHT;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
deps['jsdom'] = versions_1.JSDOM;
|
|
25
|
-
}
|
|
26
|
-
return deps;
|
|
6
|
+
if ((0, semver.lt)(angularVersion.replace(/[~^]/, ""), "17.0.0")) throw new _angular_devkit_schematics.SchematicsException("Angular v17.0.0 or newer is required.");
|
|
7
|
+
const deps = {
|
|
8
|
+
"@analogjs/vite-plugin-angular": require_versions.ANALOG_JS_VITE_PLUGIN_ANGULAR,
|
|
9
|
+
vite: require_versions.VITE,
|
|
10
|
+
vitest: require_versions.VITEST_V4,
|
|
11
|
+
"vite-tsconfig-paths": require_versions.VITE_TSCONFIG_PATHS
|
|
12
|
+
};
|
|
13
|
+
if (options.browserMode) {
|
|
14
|
+
deps["@vitest/browser-playwright"] = require_versions.VITEST_BROWSER_PLAYWRIGHT;
|
|
15
|
+
deps["playwright"] = require_versions.PLAYWRIGHT;
|
|
16
|
+
} else deps["jsdom"] = require_versions.JSDOM;
|
|
17
|
+
return deps;
|
|
27
18
|
}
|
|
28
19
|
function addDevDependencies(tree, angularVersion, options = {}) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
.reduce((acc, key) => {
|
|
44
|
-
acc[key] = pkg.devDependencies[key];
|
|
45
|
-
return acc;
|
|
46
|
-
}, {});
|
|
47
|
-
tree.overwrite(packageJsonPath, JSON.stringify(pkg, null, 2) + '\n');
|
|
20
|
+
const packageJsonPath = "package.json";
|
|
21
|
+
const packageJson = tree.read(packageJsonPath);
|
|
22
|
+
if (!packageJson) throw new _angular_devkit_schematics.SchematicsException("Could not find package.json");
|
|
23
|
+
const pkg = JSON.parse(packageJson.toString("utf-8"));
|
|
24
|
+
const devDeps = getDevDependencies(angularVersion, options);
|
|
25
|
+
pkg.devDependencies = pkg.devDependencies || {};
|
|
26
|
+
Object.entries(devDeps).forEach(([name, version]) => {
|
|
27
|
+
pkg.devDependencies[name] = version;
|
|
28
|
+
});
|
|
29
|
+
pkg.devDependencies = Object.keys(pkg.devDependencies).sort().reduce((acc, key) => {
|
|
30
|
+
acc[key] = pkg.devDependencies[key];
|
|
31
|
+
return acc;
|
|
32
|
+
}, {});
|
|
33
|
+
tree.overwrite(packageJsonPath, JSON.stringify(pkg, null, 2) + "\n");
|
|
48
34
|
}
|
|
35
|
+
//#endregion
|
|
36
|
+
exports.addDevDependencies = addDevDependencies;
|
|
37
|
+
exports.getDevDependencies = getDevDependencies;
|
|
38
|
+
|
|
49
39
|
//# sourceMappingURL=dependencies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","
|
|
1
|
+
{"version":3,"file":"dependencies.js","names":[],"sources":["../../../../../../packages/vitest-angular-tools/src/schematics/utils/dependencies.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\nimport { lt } from 'semver';\nimport {\n ANALOG_JS_VITE_PLUGIN_ANGULAR,\n JSDOM,\n PLAYWRIGHT,\n VITE,\n VITE_TSCONFIG_PATHS,\n VITEST_BROWSER_PLAYWRIGHT,\n VITEST_V4,\n} from './versions';\n\nexport interface DependencyOptions {\n browserMode?: boolean;\n}\n\nexport function getDevDependencies(\n angularVersion: string,\n options: DependencyOptions = {},\n): Record<string, string> {\n const escapedVersion = angularVersion.replace(/[~^]/, '');\n\n if (lt(escapedVersion, '17.0.0')) {\n throw new SchematicsException('Angular v17.0.0 or newer is required.');\n }\n\n const deps: Record<string, string> = {\n '@analogjs/vite-plugin-angular': ANALOG_JS_VITE_PLUGIN_ANGULAR,\n vite: VITE,\n vitest: VITEST_V4,\n 'vite-tsconfig-paths': VITE_TSCONFIG_PATHS,\n };\n\n if (options.browserMode) {\n deps['@vitest/browser-playwright'] = VITEST_BROWSER_PLAYWRIGHT;\n deps['playwright'] = PLAYWRIGHT;\n } else {\n deps['jsdom'] = JSDOM;\n }\n\n return deps;\n}\n\nexport function addDevDependencies(\n tree: Tree,\n angularVersion: string,\n options: DependencyOptions = {},\n): void {\n const packageJsonPath = 'package.json';\n const packageJson = tree.read(packageJsonPath);\n if (!packageJson) {\n throw new SchematicsException('Could not find package.json');\n }\n\n const pkg = JSON.parse(packageJson.toString('utf-8'));\n const devDeps = getDevDependencies(angularVersion, options);\n\n pkg.devDependencies = pkg.devDependencies || {};\n Object.entries(devDeps).forEach(([name, version]) => {\n pkg.devDependencies[name] = version;\n });\n\n // Sort devDependencies alphabetically\n pkg.devDependencies = Object.keys(pkg.devDependencies)\n .sort()\n .reduce((acc: Record<string, string>, key) => {\n acc[key] = pkg.devDependencies[key];\n return acc;\n }, {});\n\n tree.overwrite(packageJsonPath, JSON.stringify(pkg, null, 2) + '\\n');\n}\n"],"mappings":";;;;AAgBA,SAAgB,mBACd,gBACA,UAA6B,EAAE,EACP;AAGxB,MAAA,GAAA,OAAA,IAFuB,eAAe,QAAQ,QAAQ,GAAG,EAElC,SAAS,CAC9B,OAAM,IAAI,2BAAA,oBAAoB,wCAAwC;CAGxE,MAAM,OAA+B;EACnC,iCAAiC,iBAAA;EACjC,MAAM,iBAAA;EACN,QAAQ,iBAAA;EACR,uBAAuB,iBAAA;EACxB;AAED,KAAI,QAAQ,aAAa;AACvB,OAAK,gCAAgC,iBAAA;AACrC,OAAK,gBAAgB,iBAAA;OAErB,MAAK,WAAW,iBAAA;AAGlB,QAAO;;AAGT,SAAgB,mBACd,MACA,gBACA,UAA6B,EAAE,EACzB;CACN,MAAM,kBAAkB;CACxB,MAAM,cAAc,KAAK,KAAK,gBAAgB;AAC9C,KAAI,CAAC,YACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;CAG9D,MAAM,MAAM,KAAK,MAAM,YAAY,SAAS,QAAQ,CAAC;CACrD,MAAM,UAAU,mBAAmB,gBAAgB,QAAQ;AAE3D,KAAI,kBAAkB,IAAI,mBAAmB,EAAE;AAC/C,QAAO,QAAQ,QAAQ,CAAC,SAAS,CAAC,MAAM,aAAa;AACnD,MAAI,gBAAgB,QAAQ;GAC5B;AAGF,KAAI,kBAAkB,OAAO,KAAK,IAAI,gBAAgB,CACnD,MAAM,CACN,QAAQ,KAA6B,QAAQ;AAC5C,MAAI,OAAO,IAAI,gBAAgB;AAC/B,SAAO;IACN,EAAE,CAAC;AAER,MAAK,UAAU,iBAAiB,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,KAAK"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
tslib_1.__exportStar(require("./angular"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./workspace"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./dependencies"), exports);
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
require("./versions.js");
|
|
2
|
+
require("./angular.js");
|
|
3
|
+
require("./workspace.js");
|
|
4
|
+
require("./dependencies.js");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.
|
|
1
|
+
export declare const ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.9";
|
|
2
2
|
export declare const JSDOM = "^22.0.0";
|
|
3
3
|
export declare const VITE_TSCONFIG_PATHS = "^4.2.0";
|
|
4
4
|
export declare const VITE = "^7.0.0";
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
exports.
|
|
12
|
-
exports.PLAYWRIGHT =
|
|
1
|
+
//#region packages/vitest-angular-tools/src/schematics/utils/versions.ts
|
|
2
|
+
var ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.9";
|
|
3
|
+
var JSDOM = "^22.0.0";
|
|
4
|
+
var VITE_TSCONFIG_PATHS = "^4.2.0";
|
|
5
|
+
var VITE = "^7.0.0";
|
|
6
|
+
var VITEST_V4 = "^4.0.0";
|
|
7
|
+
var VITEST_BROWSER_PLAYWRIGHT = "^4.0.0";
|
|
8
|
+
var PLAYWRIGHT = "^1.54.0";
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.ANALOG_JS_VITE_PLUGIN_ANGULAR = ANALOG_JS_VITE_PLUGIN_ANGULAR;
|
|
11
|
+
exports.JSDOM = JSDOM;
|
|
12
|
+
exports.PLAYWRIGHT = PLAYWRIGHT;
|
|
13
|
+
exports.VITE = VITE;
|
|
14
|
+
exports.VITEST_BROWSER_PLAYWRIGHT = VITEST_BROWSER_PLAYWRIGHT;
|
|
15
|
+
exports.VITEST_V4 = VITEST_V4;
|
|
16
|
+
exports.VITE_TSCONFIG_PATHS = VITE_TSCONFIG_PATHS;
|
|
17
|
+
|
|
13
18
|
//# sourceMappingURL=versions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","
|
|
1
|
+
{"version":3,"file":"versions.js","names":[],"sources":["../../../../../../packages/vitest-angular-tools/src/schematics/utils/versions.ts"],"sourcesContent":["// Version constants (Angular 20+)\nexport const ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.9';\nexport const JSDOM = '^22.0.0';\nexport const VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const VITE = '^7.0.0';\nexport const VITEST_V4 = '^4.0.0';\n\n// Browser mode dependencies\nexport const VITEST_BROWSER_PLAYWRIGHT = '^4.0.0';\nexport const PLAYWRIGHT = '^1.54.0';\n"],"mappings":";AACA,IAAa,gCAAgC;AAC7C,IAAa,QAAQ;AACrB,IAAa,sBAAsB;AACnC,IAAa,OAAO;AACpB,IAAa,YAAY;AAGzB,IAAa,4BAA4B;AACzC,IAAa,aAAa"}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.isNxWorkspace = isNxWorkspace;
|
|
4
|
-
exports.getWorkspace = getWorkspace;
|
|
5
|
-
exports.getProject = getProject;
|
|
6
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
1
|
+
let _angular_devkit_schematics = require("@angular-devkit/schematics");
|
|
2
|
+
//#region packages/vitest-angular-tools/src/schematics/utils/workspace.ts
|
|
7
3
|
function isNxWorkspace(tree) {
|
|
8
|
-
|
|
4
|
+
return tree.exists("/nx.json");
|
|
9
5
|
}
|
|
10
6
|
function getWorkspace(tree) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
return JSON.parse(workspaceFile.toString('utf-8'));
|
|
7
|
+
const workspaceFile = tree.read("angular.json");
|
|
8
|
+
if (!workspaceFile) throw new _angular_devkit_schematics.SchematicsException("Could not find angular.json");
|
|
9
|
+
return JSON.parse(workspaceFile.toString("utf-8"));
|
|
16
10
|
}
|
|
17
11
|
function getProject(workspace, projectName) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
return project;
|
|
12
|
+
const project = workspace.projects[projectName];
|
|
13
|
+
if (!project) throw new _angular_devkit_schematics.SchematicsException(`Project "${projectName}" not found in angular.json`);
|
|
14
|
+
return project;
|
|
23
15
|
}
|
|
16
|
+
//#endregion
|
|
17
|
+
exports.getProject = getProject;
|
|
18
|
+
exports.getWorkspace = getWorkspace;
|
|
19
|
+
exports.isNxWorkspace = isNxWorkspace;
|
|
20
|
+
|
|
24
21
|
//# sourceMappingURL=workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","
|
|
1
|
+
{"version":3,"file":"workspace.js","names":[],"sources":["../../../../../../packages/vitest-angular-tools/src/schematics/utils/workspace.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\n\nexport function isNxWorkspace(tree: Tree): boolean {\n return tree.exists('/nx.json');\n}\n\nexport interface WorkspaceProject {\n root: string;\n sourceRoot?: string;\n architect?: Record<\n string,\n { builder?: string; options?: Record<string, unknown> }\n >;\n}\n\nexport interface WorkspaceSchema {\n projects: Record<string, WorkspaceProject>;\n}\n\nexport function getWorkspace(tree: Tree): WorkspaceSchema {\n const workspaceFile = tree.read('angular.json');\n if (!workspaceFile) {\n throw new SchematicsException('Could not find angular.json');\n }\n return JSON.parse(workspaceFile.toString('utf-8'));\n}\n\nexport function getProject(\n workspace: WorkspaceSchema,\n projectName: string,\n): WorkspaceProject {\n const project = workspace.projects[projectName];\n if (!project) {\n throw new SchematicsException(\n `Project \"${projectName}\" not found in angular.json`,\n );\n }\n return project;\n}\n"],"mappings":";;AAEA,SAAgB,cAAc,MAAqB;AACjD,QAAO,KAAK,OAAO,WAAW;;AAgBhC,SAAgB,aAAa,MAA6B;CACxD,MAAM,gBAAgB,KAAK,KAAK,eAAe;AAC/C,KAAI,CAAC,cACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;AAE9D,QAAO,KAAK,MAAM,cAAc,SAAS,QAAQ,CAAC;;AAGpD,SAAgB,WACd,WACA,aACkB;CAClB,MAAM,UAAU,UAAU,SAAS;AACnC,KAAI,CAAC,QACH,OAAM,IAAI,2BAAA,oBACR,YAAY,YAAY,6BACzB;AAEH,QAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function globalSetup(): void;
|