@nx/playwright 19.6.1 → 19.6.2
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/README.md
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
# Nx: Smart Monorepos · Fast CI
|
24
24
|
|
25
|
-
Nx is a build system
|
25
|
+
Nx is a build system, optimized for monorepos, with plugins for popular frameworks and tools and advanced CI capabilities including caching and distribution.
|
26
26
|
|
27
27
|
## Getting Started
|
28
28
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/playwright",
|
3
|
-
"version": "19.6.
|
3
|
+
"version": "19.6.2",
|
4
4
|
"type": "commonjs",
|
5
5
|
"homepage": "https://nx.dev",
|
6
6
|
"private": false,
|
@@ -35,11 +35,11 @@
|
|
35
35
|
},
|
36
36
|
"dependencies": {
|
37
37
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
38
|
-
"@nx/devkit": "19.6.
|
39
|
-
"@nx/eslint": "19.6.
|
40
|
-
"@nx/webpack": "19.6.
|
41
|
-
"@nx/vite": "19.6.
|
42
|
-
"@nx/js": "19.6.
|
38
|
+
"@nx/devkit": "19.6.2",
|
39
|
+
"@nx/eslint": "19.6.2",
|
40
|
+
"@nx/webpack": "19.6.2",
|
41
|
+
"@nx/vite": "19.6.2",
|
42
|
+
"@nx/js": "19.6.2",
|
43
43
|
"tslib": "^2.3.0",
|
44
44
|
"minimatch": "9.0.3"
|
45
45
|
},
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Linter } from '@nx/eslint';
|
1
|
+
import type { Linter, LinterType } from '@nx/eslint';
|
2
2
|
|
3
3
|
export interface ConfigurationGeneratorSchema {
|
4
4
|
project: string;
|
@@ -10,7 +10,7 @@ export interface ConfigurationGeneratorSchema {
|
|
10
10
|
skipFormat: boolean;
|
11
11
|
skipPackageJson: boolean;
|
12
12
|
skipInstall?: boolean;
|
13
|
-
linter: Linter;
|
13
|
+
linter: Linter | LinterType;
|
14
14
|
setParserOptionsProject: boolean; // default is false
|
15
15
|
/**
|
16
16
|
* command to give playwright to run the web server
|
@@ -28,27 +28,33 @@ async function default_1(tree) {
|
|
28
28
|
const commandValueNode = nodes[0];
|
29
29
|
const command = commandValueNode.getText();
|
30
30
|
let project;
|
31
|
+
let portFlagValue;
|
31
32
|
if (command.includes('nx run')) {
|
32
|
-
const NX_RUN_TARGET_REGEX =
|
33
|
+
const NX_RUN_TARGET_REGEX = /(?<=nx run )([^' ]+)(?: [^']*--port[= ](\d+))?/;
|
33
34
|
const matches = command.match(NX_RUN_TARGET_REGEX);
|
34
35
|
if (!matches) {
|
35
36
|
return;
|
36
37
|
}
|
37
|
-
const targetString = matches[
|
38
|
+
const targetString = matches[1];
|
38
39
|
const parsedTargetString = (0, devkit_1.parseTargetString)(targetString, graph);
|
39
40
|
if (parsedTargetString.target === 'serve-static' ||
|
40
41
|
parsedTargetString.target === 'preview') {
|
41
42
|
return;
|
42
43
|
}
|
43
44
|
project = parsedTargetString.project;
|
45
|
+
portFlagValue = matches[2];
|
44
46
|
}
|
45
47
|
else {
|
46
|
-
const NX_PROJECT_REGEX =
|
48
|
+
const NX_PROJECT_REGEX = /(?<=nx [^ ]+ )([^' ]+)(?: [^']*--port[= ](\d+))?/;
|
47
49
|
const matches = command.match(NX_PROJECT_REGEX);
|
48
50
|
if (!matches) {
|
49
51
|
return;
|
50
52
|
}
|
51
|
-
project = matches[
|
53
|
+
project = matches[1];
|
54
|
+
portFlagValue = matches[2];
|
55
|
+
}
|
56
|
+
if (!project || !graph.nodes[project]) {
|
57
|
+
return;
|
52
58
|
}
|
53
59
|
const pathToViteConfig = [
|
54
60
|
(0, devkit_1.joinPathFragments)(graph.nodes[project].data.root, 'vite.config.ts'),
|
@@ -67,6 +73,7 @@ async function default_1(tree) {
|
|
67
73
|
configFileType: pathToWebpackConfig ? 'webpack' : 'vite',
|
68
74
|
playwrightConfigFile: path,
|
69
75
|
commandValueNode,
|
76
|
+
portFlagValue,
|
70
77
|
});
|
71
78
|
}
|
72
79
|
});
|
@@ -88,7 +95,9 @@ async function default_1(tree) {
|
|
88
95
|
continue;
|
89
96
|
}
|
90
97
|
const oldCommand = projectToMigrate.commandValueNode.getText();
|
91
|
-
const newCommand = oldCommand.replace(/nx.*[^"']/, `nx run ${projectToMigrate.projectName}:${targetName}
|
98
|
+
const newCommand = oldCommand.replace(/nx.*[^"']/, `nx run ${projectToMigrate.projectName}:${targetName}${projectToMigrate.portFlagValue
|
99
|
+
? ` --port=${projectToMigrate.portFlagValue}`
|
100
|
+
: ''}`);
|
92
101
|
if (projectToMigrate.configFileType === 'webpack') {
|
93
102
|
tree.write(projectToMigrate.playwrightConfigFile, `${playwrightConfigFileContents.slice(0, projectToMigrate.commandValueNode.getStart())}${newCommand}${playwrightConfigFileContents.slice(projectToMigrate.commandValueNode.getEnd())}`);
|
94
103
|
}
|
@@ -103,8 +112,9 @@ async function default_1(tree) {
|
|
103
112
|
if (!baseUrlNodes.length) {
|
104
113
|
return;
|
105
114
|
}
|
115
|
+
const serverUrl = `http://localhost:${projectToMigrate.portFlagValue ?? '4300'}`;
|
106
116
|
const baseUrlNode = baseUrlNodes[0];
|
107
|
-
const newBaseUrlVariableDeclaration =
|
117
|
+
const newBaseUrlVariableDeclaration = `baseURL = process.env['BASE_URL'] || '${serverUrl}';`;
|
108
118
|
tree.write(projectToMigrate.playwrightConfigFile, `${playwrightConfigFileContents.slice(0, baseUrlNode.getStart())}${newBaseUrlVariableDeclaration}${playwrightConfigFileContents.slice(baseUrlNode.getEnd())}`);
|
109
119
|
playwrightConfigFileContents = tree.read(projectToMigrate.playwrightConfigFile, 'utf-8');
|
110
120
|
ast = tsquery_1.tsquery.ast(playwrightConfigFileContents);
|
@@ -116,7 +126,7 @@ async function default_1(tree) {
|
|
116
126
|
return;
|
117
127
|
}
|
118
128
|
const webServerUrlNode = webServerUrlNodes[0];
|
119
|
-
const newWebServerUrl =
|
129
|
+
const newWebServerUrl = `'${serverUrl}'`;
|
120
130
|
tree.write(projectToMigrate.playwrightConfigFile, `${playwrightConfigFileContents.slice(0, webServerUrlNode.getStart())}${newWebServerUrl}${playwrightConfigFileContents.slice(webServerUrlNode.getEnd())}`);
|
121
131
|
}
|
122
132
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { GeneratorCallback, Tree } from '@nx/devkit';
|
2
|
-
import { Linter } from '@nx/eslint';
|
2
|
+
import { Linter, LinterType } from '@nx/eslint';
|
3
3
|
export interface PlaywrightLinterOptions {
|
4
4
|
project: string;
|
5
|
-
linter: Linter;
|
5
|
+
linter: Linter | LinterType;
|
6
6
|
setParserOptionsProject: boolean;
|
7
7
|
skipPackageJson: boolean;
|
8
8
|
rootProject: boolean;
|