@nx/expo 19.6.3 → 19.6.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/expo",
3
- "version": "19.6.3",
3
+ "version": "19.6.4",
4
4
  "private": false,
5
5
  "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.",
6
6
  "keywords": [
@@ -28,7 +28,7 @@
28
28
  "main": "./index",
29
29
  "types": "index.d.ts",
30
30
  "dependencies": {
31
- "@nx/devkit": "19.6.3",
31
+ "@nx/devkit": "19.6.4",
32
32
  "chalk": "^4.1.0",
33
33
  "enhanced-resolve": "^5.8.3",
34
34
  "fs-extra": "^11.1.0",
@@ -37,13 +37,13 @@
37
37
  "node-fetch": "^2.6.7",
38
38
  "tslib": "^2.3.0",
39
39
  "tsconfig-paths": "^4.1.2",
40
- "@nx/jest": "19.6.3",
41
- "@nx/js": "19.6.3",
42
- "@nx/eslint": "19.6.3",
43
- "@nx/react": "19.6.3",
44
- "@nx/web": "19.6.3",
45
- "@nx/webpack": "19.6.3",
46
- "@nrwl/expo": "19.6.3"
40
+ "@nx/jest": "19.6.4",
41
+ "@nx/js": "19.6.4",
42
+ "@nx/eslint": "19.6.4",
43
+ "@nx/react": "19.6.4",
44
+ "@nx/web": "19.6.4",
45
+ "@nx/webpack": "19.6.4",
46
+ "@nrwl/expo": "19.6.4"
47
47
  },
48
48
  "executors": "./executors.json",
49
49
  "ng-update": {
@@ -1,3 +1,3 @@
1
- import type { GeneratorCallback, Tree } from '@nx/devkit';
1
+ import { GeneratorCallback, Tree } from '@nx/devkit';
2
2
  import { NormalizedSchema } from './normalize-options';
3
3
  export declare function addE2e(tree: Tree, options: NormalizedSchema): Promise<GeneratorCallback>;
@@ -7,16 +7,18 @@ const versions_1 = require("../../../utils/versions");
7
7
  const has_expo_plugin_1 = require("../../../utils/has-expo-plugin");
8
8
  const target_defaults_utils_1 = require("@nx/devkit/src/generators/target-defaults-utils");
9
9
  const find_plugin_for_config_file_1 = require("@nx/devkit/src/utils/find-plugin-for-config-file");
10
+ const e2e_web_server_info_utils_1 = require("@nx/devkit/src/generators/e2e-web-server-info-utils");
10
11
  async function addE2e(tree, options) {
11
12
  const hasPlugin = (0, has_expo_plugin_1.hasExpoPlugin)(tree);
13
+ if (!hasPlugin) {
14
+ await (0, web_1.webStaticServeGenerator)(tree, {
15
+ buildTarget: `${options.projectName}:export`,
16
+ targetName: 'serve-static',
17
+ });
18
+ }
19
+ const e2eWebServerInfo = await getExpoE2EWebServerInfo(tree, options.projectName, (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'app.json'), options.addPlugin);
12
20
  switch (options.e2eTestRunner) {
13
21
  case 'cypress': {
14
- if (!hasPlugin) {
15
- await (0, web_1.webStaticServeGenerator)(tree, {
16
- buildTarget: `${options.projectName}:export`,
17
- targetName: 'serve-static',
18
- });
19
- }
20
22
  const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/cypress', versions_1.nxVersion);
21
23
  (0, devkit_1.addProjectConfiguration)(tree, options.e2eProjectName, {
22
24
  projectType: 'application',
@@ -33,12 +35,14 @@ async function addE2e(tree, options) {
33
35
  // the name and root are already normalized, instruct the generator to use them as is
34
36
  bundler: 'none',
35
37
  skipFormat: true,
36
- devServerTarget: `${options.projectName}:${options.e2eWebServerTarget}`,
37
- port: options.e2ePort,
38
- baseUrl: options.e2eWebServerAddress,
39
- ciWebServerCommand: hasPlugin
40
- ? `nx run ${options.projectName}:serve-static`
41
- : undefined,
38
+ devServerTarget: e2eWebServerInfo.e2eDevServerTarget,
39
+ baseUrl: e2eWebServerInfo.e2eWebServerAddress,
40
+ ciWebServerCommand: e2eWebServerInfo.e2eCiWebServerCommand,
41
+ webServerCommands: {
42
+ default: e2eWebServerInfo.e2eWebServerCommand,
43
+ production: e2eWebServerInfo.e2eCiWebServerCommand,
44
+ },
45
+ ciBaseUrl: e2eWebServerInfo.e2eCiBaseUrl,
42
46
  jsx: true,
43
47
  rootProject: options.rootProject,
44
48
  });
@@ -74,8 +78,8 @@ async function addE2e(tree, options) {
74
78
  js: false,
75
79
  linter: options.linter,
76
80
  setParserOptionsProject: options.setParserOptionsProject,
77
- webServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx ${options.e2eWebServerTarget} ${options.name}`,
78
- webServerAddress: options.e2eWebServerAddress,
81
+ webServerCommand: e2eWebServerInfo.e2eCiWebServerCommand,
82
+ webServerAddress: e2eWebServerInfo.e2eCiBaseUrl,
79
83
  rootProject: options.rootProject,
80
84
  addPlugin: options.addPlugin,
81
85
  });
@@ -113,3 +117,23 @@ async function addE2e(tree, options) {
113
117
  return () => { };
114
118
  }
115
119
  }
120
+ async function getExpoE2EWebServerInfo(tree, projectName, configFilePath, isPluginBeingAdded) {
121
+ const nxJson = (0, devkit_1.readNxJson)(tree);
122
+ let e2ePort = isPluginBeingAdded ? 8081 : 4200;
123
+ if (nxJson.targetDefaults?.['serve'] &&
124
+ nxJson.targetDefaults?.['serve'].options?.port) {
125
+ e2ePort = nxJson.targetDefaults?.['serve'].options?.port;
126
+ }
127
+ return (0, e2e_web_server_info_utils_1.getE2EWebServerInfo)(tree, projectName, {
128
+ plugin: '@nx/expo/plugin',
129
+ serveTargetName: 'serveTargetName',
130
+ serveStaticTargetName: 'serveTargetName',
131
+ configFilePath,
132
+ }, {
133
+ defaultServeTargetName: 'serve',
134
+ defaultServeStaticTargetName: 'serve-static',
135
+ defaultE2EWebServerAddress: `http://localhost:${e2ePort}`,
136
+ defaultE2ECiBaseUrl: 'http://localhost:4200',
137
+ defaultE2EPort: e2ePort,
138
+ }, isPluginBeingAdded);
139
+ }
@@ -9,8 +9,5 @@ export interface NormalizedSchema extends Schema {
9
9
  rootProject: boolean;
10
10
  e2eProjectName: string;
11
11
  e2eProjectRoot: string;
12
- e2eWebServerAddress: string;
13
- e2eWebServerTarget: string;
14
- e2ePort: number;
15
12
  }
16
13
  export declare function normalizeOptions(host: Tree, options: Schema): Promise<NormalizedSchema>;
@@ -21,31 +21,12 @@ async function normalizeOptions(host, options) {
21
21
  ? options.tags.split(',').map((s) => s.trim())
22
22
  : [];
23
23
  const rootProject = appProjectRoot === '.';
24
- let e2eWebServerTarget = 'serve';
25
- if (options.addPlugin) {
26
- if (nxJson.plugins) {
27
- for (const plugin of nxJson.plugins) {
28
- if (typeof plugin === 'object' &&
29
- plugin.plugin === '@nx/expo/plugin' &&
30
- plugin.options.serveTargetName) {
31
- e2eWebServerTarget = plugin.options
32
- .serveTargetName;
33
- }
34
- }
35
- }
36
- }
37
- let e2ePort = options.addPlugin ? 8081 : 4200;
38
- if (nxJson.targetDefaults?.[e2eWebServerTarget] &&
39
- nxJson.targetDefaults?.[e2eWebServerTarget].options?.port) {
40
- e2ePort = nxJson.targetDefaults?.[e2eWebServerTarget].options.port;
41
- }
42
24
  const e2eProjectName = rootProject ? 'e2e' : `${appProjectName}-e2e`;
43
25
  const e2eProjectRoot = rootProject ? 'e2e' : `${appProjectRoot}-e2e`;
44
- const e2eWebServerAddress = `http://localhost:${e2ePort}`;
45
26
  return {
46
27
  ...options,
47
28
  unitTestRunner: options.unitTestRunner || 'jest',
48
- e2eTestRunner: options.e2eTestRunner,
29
+ e2eTestRunner: options.e2eTestRunner || 'none',
49
30
  name: projectNames.projectSimpleName,
50
31
  className,
51
32
  lowerCaseName: className.toLowerCase(),
@@ -56,8 +37,5 @@ async function normalizeOptions(host, options) {
56
37
  rootProject,
57
38
  e2eProjectName,
58
39
  e2eProjectRoot,
59
- e2eWebServerAddress,
60
- e2eWebServerTarget,
61
- e2ePort,
62
40
  };
63
41
  }
@@ -76,7 +76,7 @@
76
76
  "description": "Adds the specified e2e test runner",
77
77
  "type": "string",
78
78
  "enum": ["playwright", "cypress", "detox", "none"],
79
- "default": "playwright"
79
+ "default": "none"
80
80
  },
81
81
  "standaloneConfig": {
82
82
  "description": "Split the project configuration into `<projectRoot>/project.json` rather than including it inside `workspace.json`.",