@react-native-windows/cli 0.0.0-canary.26 → 0.0.0-canary.260

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +117 -0
  2. package/lib-commonjs/commands/autolinkWindows/autolinkWindows.d.ts +88 -0
  3. package/lib-commonjs/commands/autolinkWindows/autolinkWindows.js +705 -0
  4. package/lib-commonjs/commands/autolinkWindows/autolinkWindows.js.map +1 -0
  5. package/lib-commonjs/commands/autolinkWindows/autolinkWindowsOptions.d.ts +14 -0
  6. package/lib-commonjs/commands/autolinkWindows/autolinkWindowsOptions.js +33 -0
  7. package/lib-commonjs/commands/autolinkWindows/autolinkWindowsOptions.js.map +1 -0
  8. package/lib-commonjs/commands/codegenWindows/codegenWindows.d.ts +27 -0
  9. package/lib-commonjs/commands/codegenWindows/codegenWindows.js +211 -0
  10. package/lib-commonjs/commands/codegenWindows/codegenWindows.js.map +1 -0
  11. package/lib-commonjs/commands/codegenWindows/codegenWindowsOptions.d.ts +12 -0
  12. package/lib-commonjs/commands/codegenWindows/codegenWindowsOptions.js +23 -0
  13. package/lib-commonjs/commands/codegenWindows/codegenWindowsOptions.js.map +1 -0
  14. package/lib-commonjs/{config → commands/config}/configUtils.d.ts +141 -93
  15. package/lib-commonjs/commands/config/configUtils.js +420 -0
  16. package/lib-commonjs/commands/config/configUtils.js.map +1 -0
  17. package/lib-commonjs/{config → commands/config}/dependencyConfig.d.ts +38 -37
  18. package/lib-commonjs/commands/config/dependencyConfig.js +230 -0
  19. package/lib-commonjs/commands/config/dependencyConfig.js.map +1 -0
  20. package/lib-commonjs/{config → commands/config}/projectConfig.d.ts +28 -24
  21. package/lib-commonjs/commands/config/projectConfig.js +191 -0
  22. package/lib-commonjs/commands/config/projectConfig.js.map +1 -0
  23. package/lib-commonjs/commands/healthCheck/healthCheckList.d.ts +6 -0
  24. package/lib-commonjs/commands/healthCheck/healthCheckList.js +21 -0
  25. package/lib-commonjs/commands/healthCheck/healthCheckList.js.map +1 -0
  26. package/lib-commonjs/commands/healthCheck/healthChecks.d.ts +7 -0
  27. package/lib-commonjs/commands/healthCheck/healthChecks.js +124 -0
  28. package/lib-commonjs/commands/healthCheck/healthChecks.js.map +1 -0
  29. package/lib-commonjs/commands/initWindows/initWindows.d.ts +46 -0
  30. package/lib-commonjs/commands/initWindows/initWindows.js +275 -0
  31. package/lib-commonjs/commands/initWindows/initWindows.js.map +1 -0
  32. package/lib-commonjs/commands/initWindows/initWindowsOptions.d.ts +16 -0
  33. package/lib-commonjs/commands/initWindows/initWindowsOptions.js +42 -0
  34. package/lib-commonjs/commands/initWindows/initWindowsOptions.js.map +1 -0
  35. package/lib-commonjs/{runWindows → commands/runWindows}/runWindows.d.ts +10 -10
  36. package/lib-commonjs/commands/runWindows/runWindows.js +322 -0
  37. package/lib-commonjs/commands/runWindows/runWindows.js.map +1 -0
  38. package/lib-commonjs/{runWindows → commands/runWindows}/runWindowsOptions.d.ts +56 -52
  39. package/lib-commonjs/{runWindows → commands/runWindows}/runWindowsOptions.js +132 -131
  40. package/lib-commonjs/commands/runWindows/runWindowsOptions.js.map +1 -0
  41. package/lib-commonjs/e2etest/autolink.test.d.ts +6 -0
  42. package/lib-commonjs/e2etest/autolink.test.js +367 -0
  43. package/lib-commonjs/e2etest/autolink.test.js.map +1 -0
  44. package/lib-commonjs/e2etest/dependencyConfig.test.d.ts +6 -0
  45. package/lib-commonjs/e2etest/dependencyConfig.test.js +130 -0
  46. package/lib-commonjs/e2etest/dependencyConfig.test.js.map +1 -0
  47. package/lib-commonjs/e2etest/healthChecks.test.d.ts +6 -0
  48. package/lib-commonjs/e2etest/healthChecks.test.js +31 -0
  49. package/lib-commonjs/e2etest/healthChecks.test.js.map +1 -0
  50. package/lib-commonjs/e2etest/initWindows.test.d.ts +6 -0
  51. package/lib-commonjs/e2etest/initWindows.test.js +110 -0
  52. package/lib-commonjs/e2etest/initWindows.test.js.map +1 -0
  53. package/lib-commonjs/e2etest/projectConfig.test.d.ts +6 -0
  54. package/lib-commonjs/e2etest/projectConfig.test.js +111 -0
  55. package/lib-commonjs/e2etest/projectConfig.test.js.map +1 -0
  56. package/lib-commonjs/e2etest/projectConfig.utils.d.ts +8 -0
  57. package/lib-commonjs/e2etest/projectConfig.utils.js +77 -0
  58. package/lib-commonjs/e2etest/projectConfig.utils.js.map +1 -0
  59. package/lib-commonjs/e2etest/runWindows.test.d.ts +6 -0
  60. package/lib-commonjs/e2etest/runWindows.test.js +61 -0
  61. package/lib-commonjs/e2etest/runWindows.test.js.map +1 -0
  62. package/lib-commonjs/e2etest/typesUpToDate.test.d.ts +6 -0
  63. package/lib-commonjs/e2etest/typesUpToDate.test.js +21 -0
  64. package/lib-commonjs/e2etest/typesUpToDate.test.js.map +1 -0
  65. package/lib-commonjs/generator-common/index.d.ts +39 -23
  66. package/lib-commonjs/generator-common/index.js +242 -221
  67. package/lib-commonjs/generator-common/index.js.map +1 -1
  68. package/lib-commonjs/generator-windows/index.d.ts +10 -10
  69. package/lib-commonjs/generator-windows/index.js +341 -364
  70. package/lib-commonjs/generator-windows/index.js.map +1 -1
  71. package/lib-commonjs/index.d.ts +50 -47
  72. package/lib-commonjs/index.js +77 -39
  73. package/lib-commonjs/index.js.map +1 -1
  74. package/lib-commonjs/{runWindows/utils → utils}/build.d.ts +12 -13
  75. package/lib-commonjs/{runWindows/utils → utils}/build.js +89 -91
  76. package/lib-commonjs/utils/build.js.map +1 -0
  77. package/lib-commonjs/{runWindows/utils → utils}/checkRequirements.d.ts +6 -6
  78. package/lib-commonjs/{runWindows/utils → utils}/checkRequirements.js +69 -65
  79. package/lib-commonjs/utils/checkRequirements.js.map +1 -0
  80. package/lib-commonjs/{runWindows/utils → utils}/commandWithProgress.d.ts +21 -13
  81. package/lib-commonjs/{runWindows/utils → utils}/commandWithProgress.js +149 -113
  82. package/lib-commonjs/utils/commandWithProgress.js.map +1 -0
  83. package/lib-commonjs/{runWindows/utils → utils}/deploy.d.ts +12 -12
  84. package/lib-commonjs/utils/deploy.js +354 -0
  85. package/lib-commonjs/utils/deploy.js.map +1 -0
  86. package/lib-commonjs/{runWindows/utils → utils}/info.d.ts +6 -6
  87. package/lib-commonjs/{runWindows/utils → utils}/info.js +28 -25
  88. package/lib-commonjs/utils/info.js.map +1 -0
  89. package/lib-commonjs/utils/msbuildtools.d.ts +28 -0
  90. package/lib-commonjs/utils/msbuildtools.js +281 -0
  91. package/lib-commonjs/utils/msbuildtools.js.map +1 -0
  92. package/lib-commonjs/utils/nameHelpers.d.ts +9 -0
  93. package/lib-commonjs/utils/nameHelpers.js +46 -0
  94. package/lib-commonjs/utils/nameHelpers.js.map +1 -0
  95. package/lib-commonjs/utils/pathHelpers.d.ts +9 -0
  96. package/lib-commonjs/utils/pathHelpers.js +37 -0
  97. package/lib-commonjs/utils/pathHelpers.js.map +1 -0
  98. package/lib-commonjs/utils/telemetryHelpers.d.ts +29 -0
  99. package/lib-commonjs/utils/telemetryHelpers.js +121 -0
  100. package/lib-commonjs/utils/telemetryHelpers.js.map +1 -0
  101. package/lib-commonjs/{runWindows/utils → utils}/version.d.ts +19 -19
  102. package/lib-commonjs/{runWindows/utils → utils}/version.js +109 -109
  103. package/lib-commonjs/utils/version.js.map +1 -0
  104. package/lib-commonjs/{runWindows/utils → utils}/vsInstalls.d.ts +34 -34
  105. package/lib-commonjs/utils/vsInstalls.js +102 -0
  106. package/lib-commonjs/utils/vsInstalls.js.map +1 -0
  107. package/lib-commonjs/{runWindows/utils → utils}/vstools.d.ts +16 -15
  108. package/lib-commonjs/utils/vstools.js +190 -0
  109. package/lib-commonjs/utils/vstools.js.map +1 -0
  110. package/lib-commonjs/{runWindows/utils → utils}/winappdeploytool.d.ts +24 -24
  111. package/lib-commonjs/{runWindows/utils → utils}/winappdeploytool.js +108 -105
  112. package/lib-commonjs/utils/winappdeploytool.js.map +1 -0
  113. package/package.json +49 -31
  114. package/{powershell → src/powershell}/Add-AppDevPackage.ps1 +2 -2
  115. package/src/powershell/Eval-MsBuildProperties.ps1 +156 -0
  116. package/{powershell → src/powershell}/WindowsStoreAppUtils.ps1 +10 -0
  117. package/CHANGELOG.json +0 -413
  118. package/CHANGELOG.md +0 -200
  119. package/lib-commonjs/config/configUtils.js +0 -253
  120. package/lib-commonjs/config/configUtils.js.map +0 -1
  121. package/lib-commonjs/config/dependencyConfig.js +0 -167
  122. package/lib-commonjs/config/dependencyConfig.js.map +0 -1
  123. package/lib-commonjs/config/projectConfig.js +0 -121
  124. package/lib-commonjs/config/projectConfig.js.map +0 -1
  125. package/lib-commonjs/runWindows/runWindows.js +0 -159
  126. package/lib-commonjs/runWindows/runWindows.js.map +0 -1
  127. package/lib-commonjs/runWindows/runWindowsOptions.js.map +0 -1
  128. package/lib-commonjs/runWindows/utils/autolink.d.ts +0 -7
  129. package/lib-commonjs/runWindows/utils/autolink.js +0 -353
  130. package/lib-commonjs/runWindows/utils/autolink.js.map +0 -1
  131. package/lib-commonjs/runWindows/utils/build.js.map +0 -1
  132. package/lib-commonjs/runWindows/utils/checkRequirements.js.map +0 -1
  133. package/lib-commonjs/runWindows/utils/commandWithProgress.js.map +0 -1
  134. package/lib-commonjs/runWindows/utils/deploy.js +0 -247
  135. package/lib-commonjs/runWindows/utils/deploy.js.map +0 -1
  136. package/lib-commonjs/runWindows/utils/info.js.map +0 -1
  137. package/lib-commonjs/runWindows/utils/msbuildtools.d.ts +0 -22
  138. package/lib-commonjs/runWindows/utils/msbuildtools.js +0 -195
  139. package/lib-commonjs/runWindows/utils/msbuildtools.js.map +0 -1
  140. package/lib-commonjs/runWindows/utils/version.js.map +0 -1
  141. package/lib-commonjs/runWindows/utils/vsInstalls.js +0 -70
  142. package/lib-commonjs/runWindows/utils/vsInstalls.js.map +0 -1
  143. package/lib-commonjs/runWindows/utils/vstools.js +0 -150
  144. package/lib-commonjs/runWindows/utils/vstools.js.map +0 -1
  145. package/lib-commonjs/runWindows/utils/winappdeploytool.js.map +0 -1
package/CHANGELOG.md DELETED
@@ -1,200 +0,0 @@
1
- # Change Log - @react-native-windows/cli
2
-
3
- This log was last generated on Sat, 31 Oct 2020 05:06:14 GMT and should not be manually modified.
4
-
5
- <!-- Start content -->
6
-
7
- ## 0.0.0-canary.26
8
-
9
- Sat, 31 Oct 2020 05:06:14 GMT
10
-
11
- ### Changes
12
-
13
- - Fix Generator Failing to Overwrite Template Files (ngerlem@microsoft.com)
14
-
15
- ## 0.0.0-canary.25
16
-
17
- Fri, 30 Oct 2020 05:07:51 GMT
18
-
19
- ### Changes
20
-
21
- - Enable Hermes Bytecode Compilation and SourceMap Creation as Part of Build (ngerlem@microsoft.com)
22
-
23
- ## 0.0.0-canary.24
24
-
25
- Thu, 29 Oct 2020 05:05:49 GMT
26
-
27
- ### Changes
28
-
29
- - Allow Hermes to be used in C++ projects without modifying source code (ngerlem@microsoft.com)
30
-
31
- ## 0.0.0-canary.23
32
-
33
- Sat, 17 Oct 2020 05:06:20 GMT
34
-
35
- ### Changes
36
-
37
- - C# apps have x86 platform=x86 but C++ apps have Win32 (asklar@microsoft.com)
38
- - Revert "Fix project config and package deploy to support the windows code in a different location (#6232)" (dannyvv@microsoft.com)
39
-
40
- ## 0.0.0-canary.22
41
-
42
- Fri, 16 Oct 2020 05:04:19 GMT
43
-
44
- ### Changes
45
-
46
- - Fix config and app publish to allow for the windows native source code to live in a different location (dannyvv@microsoft.com)
47
-
48
- ## 0.0.0-canary.21
49
-
50
- Thu, 01 Oct 2020 05:08:11 GMT
51
-
52
- ### Changes
53
-
54
- - ESLint Fixup (ngerlem@microsoft.com)
55
-
56
- ## 0.0.0-canary.20
57
-
58
- Tue, 29 Sep 2020 05:05:53 GMT
59
-
60
- ### Changes
61
-
62
- - Fix run-windows Warnings Using Node 14 (ngerlem@microsoft.com)
63
-
64
- ## 0.0.0-canary.19
65
-
66
- Fri, 25 Sep 2020 05:05:40 GMT
67
-
68
- ### Changes
69
-
70
- - Fix casing rules for new projects names for `react-native-windows-init` (jthysell@microsoft.com)
71
- - Add -NoProfile to powershell invocations to ensure deterministic script execution where user profiles do not have the ability to break or change the build outputs (dannyvv@microsoft.com)
72
-
73
- ## 0.0.0-canary.18
74
-
75
- Thu, 24 Sep 2020 05:06:21 GMT
76
-
77
- ### Changes
78
-
79
- - Zero-Config Tests for CLI, react-native-windows-init, react-native-windows-codegen (ngerlem@microsoft.com)
80
-
81
- ## 0.0.0-canary.17
82
-
83
- Mon, 21 Sep 2020 05:06:22 GMT
84
-
85
- ### Changes
86
-
87
- - Fixup eslint config (ngerlem@microsoft.com)
88
-
89
- ## 0.0.0-canary.16
90
-
91
- Sat, 19 Sep 2020 05:05:08 GMT
92
-
93
- ### Changes
94
-
95
- - Adding new native module template support to react-native-windows-init (jthysell@microsoft.com)
96
-
97
- ## 0.0.0-canary.15
98
-
99
- Wed, 16 Sep 2020 05:05:28 GMT
100
-
101
- ### Changes
102
-
103
- - Enable trying Previews of VS as a fallback (asklar@winse.microsoft.com)
104
- - Yarn on Windows breaks apps that read from the environment variables (asklar@winse.microsoft.com)
105
-
106
- ## 0.0.0-canary.14
107
-
108
- Tue, 15 Sep 2020 05:05:15 GMT
109
-
110
- ### Changes
111
-
112
- - fix ts warning (asklar@microsoft.com)
113
-
114
- ## 0.0.0-canary.13
115
-
116
- Mon, 14 Sep 2020 22:03:37 GMT
117
-
118
- ### Changes
119
-
120
- - Reconcile package versions (ngerlem@microsoft.com)
121
-
122
- ## 0.0.0-canary.11
123
-
124
- Wed, 09 Sep 2020 05:06:35 GMT
125
-
126
- ### Changes
127
-
128
- - Enable @typescript-eslint/no-floating-promises (ngerlem@microsoft.com)
129
-
130
- ## 0.0.0-canary.10
131
-
132
- Wed, 02 Sep 2020 05:05:16 GMT
133
-
134
- ### Changes
135
-
136
- - Keep Templates in react-native-windows Package (ngerlem@microsoft.com)
137
-
138
- ## 0.0.0-canary.9
139
-
140
- Fri, 28 Aug 2020 05:06:54 GMT
141
-
142
- ### Changes
143
-
144
- - Fixed templates so C++ apps can consume C# native modules (jthysell@microsoft.com)
145
-
146
- ## 0.0.0-canary.8
147
-
148
- Wed, 26 Aug 2020 05:07:06 GMT
149
-
150
- ### Changes
151
-
152
- - Fix deploy bug where a framework package is installed for one arch but not the one that we are building for (asklar@winse.microsoft.com)
153
-
154
- ## 0.0.0-canary.7
155
-
156
- Tue, 25 Aug 2020 05:05:08 GMT
157
-
158
- ### Changes
159
-
160
- - Default run-windows to disabling parallel MSBuild When Machine Has < 16GB of Memory (ngerlem@microsoft.com)
161
-
162
- ## 0.0.0-canary.5
163
-
164
- Thu, 20 Aug 2020 05:05:23 GMT
165
-
166
- ### Changes
167
-
168
- - Add --singleproc to run-windows (asklar@microsoft.com)
169
-
170
- ## 0.0.0-canary.4
171
-
172
- Wed, 19 Aug 2020 05:04:41 GMT
173
-
174
- ### Changes
175
-
176
- - Fixing config and autolinking (jthysell@microsoft.com)
177
-
178
- ## 0.0.0-canary.3
179
-
180
- Fri, 14 Aug 2020 05:05:34 GMT
181
-
182
- ### Changes
183
-
184
- - Disable autolinking check in msbuild when using `react-native run-windows` (jthysell@microsoft.com)
185
-
186
- ## 0.0.0-canary.2
187
-
188
- Tue, 11 Aug 2020 07:36:05 GMT
189
-
190
- ### Changes
191
-
192
- - Make C# CodeGen the default (dannyvv@microsoft.com)
193
-
194
- ## 0.0.0-canary.1
195
-
196
- Tue, 28 Jul 2020 05:06:13 GMT
197
-
198
- ### Changes
199
-
200
- - Separate local-cli into its own package (ngerlem@microsoft.com)
@@ -1,253 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copyright (c) Microsoft Corporation.
4
- * Licensed under the MIT License.
5
- * @format
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.getProjectGuid = exports.getProjectNamespace = exports.getProjectName = exports.importProjectExists = exports.findPropertyValue = exports.readProjectFile = exports.getProjectLanguage = exports.findAppProjectFiles = exports.findDependencyProjectFiles = exports.isRnwDependencyProject = exports.findSolutionFiles = exports.isRnwSolution = exports.findWindowsFolder = exports.findFiles = void 0;
9
- const fs = require("fs");
10
- const path = require("path");
11
- const glob = require("glob");
12
- const xmldom_1 = require("xmldom");
13
- const xpath = require("xpath");
14
- const msbuildSelect = xpath.useNamespaces({
15
- msbuild: 'http://schemas.microsoft.com/developer/msbuild/2003',
16
- });
17
- /**
18
- * Search for files matching the pattern under the target folder.
19
- * @param folder The absolute path to target folder.
20
- * @param filenamePattern The pattern to search for.
21
- * @return Return the array of relative file paths.
22
- */
23
- function findFiles(folder, filenamePattern) {
24
- const files = glob.sync(path.join('**', filenamePattern), {
25
- cwd: folder,
26
- ignore: [
27
- 'node_modules/**',
28
- '**/Debug/**',
29
- '**/Release/**',
30
- '**/WinUI3/**',
31
- '**/Generated Files/**',
32
- '**/packages/**',
33
- ],
34
- });
35
- return files;
36
- }
37
- exports.findFiles = findFiles;
38
- /**
39
- * Search for the windows sub-folder under the target folder.
40
- * @param folder The absolute path to the target folder.
41
- * @return The absolute path to the windows folder, if it exists.
42
- */
43
- function findWindowsFolder(folder) {
44
- const winDir = 'windows';
45
- const joinedDir = path.join(folder, winDir);
46
- if (fs.existsSync(joinedDir)) {
47
- return joinedDir;
48
- }
49
- return null;
50
- }
51
- exports.findWindowsFolder = findWindowsFolder;
52
- /**
53
- * Checks if the target file path is a RNW solution file by checking if it contains the string "ReactNative".
54
- * @param filePath The absolute file path to check.
55
- * @return Whether the path is to a RNW solution file.
56
- */
57
- function isRnwSolution(filePath) {
58
- return (fs
59
- .readFileSync(filePath)
60
- .toString()
61
- .search(/ReactNative/) > 0);
62
- }
63
- exports.isRnwSolution = isRnwSolution;
64
- /**
65
- * Search for the RNW solution files under the target folder.
66
- * @param winFolder The absolute path to target folder.
67
- * @return Return the array of relative file paths.
68
- */
69
- function findSolutionFiles(winFolder) {
70
- // First search for all potential solution files
71
- const allSolutions = findFiles(winFolder, '*.sln');
72
- if (allSolutions.length === 0) {
73
- // If there're no solution files, return 0
74
- return [];
75
- }
76
- else if (allSolutions.length === 1) {
77
- // If there is exactly one solution file, assume it's it
78
- return [allSolutions[0]];
79
- }
80
- var solutionFiles = [];
81
- // Try to find any solution file that appears to be a React Native solution
82
- for (const solutionFile of allSolutions) {
83
- if (isRnwSolution(path.join(winFolder, solutionFile))) {
84
- solutionFiles.push(solutionFile);
85
- }
86
- }
87
- return solutionFiles;
88
- }
89
- exports.findSolutionFiles = findSolutionFiles;
90
- /**
91
- * Checks if the target file path is a RNW lib project file.
92
- * @param filePath The absolute file path to check.
93
- * @return Whether the path is to a RNW lib project file.
94
- */
95
- function isRnwDependencyProject(filePath) {
96
- const projectContents = readProjectFile(filePath);
97
- const projectLang = getProjectLanguage(filePath);
98
- if (projectLang === 'cs') {
99
- return importProjectExists(projectContents, 'Microsoft.ReactNative.Uwp.CSharpLib.targets');
100
- }
101
- else if (projectLang === 'cpp') {
102
- return importProjectExists(projectContents, 'Microsoft.ReactNative.Uwp.CppLib.targets');
103
- }
104
- return false;
105
- }
106
- exports.isRnwDependencyProject = isRnwDependencyProject;
107
- /**
108
- * Search for the RNW lib project files under the target folder.
109
- * @param winFolder The absolute path to target folder.
110
- * @return Return the array of relative file paths.
111
- */
112
- function findDependencyProjectFiles(winFolder) {
113
- // First, search for all potential project files
114
- const allCppProj = findFiles(winFolder, '*.vcxproj');
115
- const allCsProj = findFiles(winFolder, '*.csproj');
116
- const allProjects = allCppProj.concat(allCsProj);
117
- if (allProjects.length === 0) {
118
- // If there're no project files, return 0
119
- return [];
120
- }
121
- var dependencyProjectFiles = [];
122
- // Try to find any project file that appears to be a dependency project
123
- for (const projectFile of allProjects) {
124
- if (isRnwDependencyProject(path.join(winFolder, projectFile))) {
125
- dependencyProjectFiles.push(projectFile);
126
- }
127
- }
128
- return dependencyProjectFiles;
129
- }
130
- exports.findDependencyProjectFiles = findDependencyProjectFiles;
131
- /**
132
- * Checks if the target file path is a RNW app project file.
133
- * @param filePath The absolute file path to check.
134
- * @return Whether the path is to a RNW app project file.
135
- */
136
- function isRnwAppProject(filePath) {
137
- const projectContents = readProjectFile(filePath);
138
- const projectLang = getProjectLanguage(filePath);
139
- if (projectLang === 'cs') {
140
- return importProjectExists(projectContents, 'Microsoft.ReactNative.Uwp.CSharpApp.targets');
141
- }
142
- else if (projectLang === 'cpp') {
143
- return importProjectExists(projectContents, 'Microsoft.ReactNative.Uwp.CppApp.targets');
144
- }
145
- return false;
146
- }
147
- /**
148
- * Search for the RNW app project files under the target folder.
149
- * @param winFolder The absolute path to target folder.
150
- * @return Return the array of relative file paths.
151
- */
152
- function findAppProjectFiles(winFolder) {
153
- // First, search for all potential project files
154
- const allCppProj = findFiles(winFolder, '*.vcxproj');
155
- const allCsProj = findFiles(winFolder, '*.csproj');
156
- const allProjects = allCppProj.concat(allCsProj);
157
- if (allProjects.length === 0) {
158
- // If there're no project files, return 0
159
- return [];
160
- }
161
- var appProjectFiles = [];
162
- // Try to find any project file that appears to be an app project
163
- for (const projectFile of allProjects) {
164
- if (isRnwAppProject(path.join(winFolder, projectFile))) {
165
- appProjectFiles.push(projectFile);
166
- }
167
- }
168
- return appProjectFiles;
169
- }
170
- exports.findAppProjectFiles = findAppProjectFiles;
171
- /**
172
- * Returns the programming language of the project file.
173
- * @param projectPath The project file path to check.
174
- * @return The language string: cpp, cs, or null if unknown.
175
- */
176
- function getProjectLanguage(projectPath) {
177
- if (projectPath.endsWith('.vcxproj')) {
178
- return 'cpp';
179
- }
180
- else if (projectPath.endsWith('.csproj')) {
181
- return 'cs';
182
- }
183
- return null;
184
- }
185
- exports.getProjectLanguage = getProjectLanguage;
186
- /**
187
- * Reads in the contents of the target project file.
188
- * @param projectPath The target project file path.
189
- * @return The project file contents.
190
- */
191
- function readProjectFile(projectPath) {
192
- const projectContents = fs.readFileSync(projectPath, 'utf8').toString();
193
- return new xmldom_1.DOMParser().parseFromString(projectContents, 'application/xml');
194
- }
195
- exports.readProjectFile = readProjectFile;
196
- /**
197
- * Search for the given property in the project contents and return its value.
198
- * @param projectContents The XML project contents.
199
- * @param propertyName The property to look for.
200
- * @return The value of the tag if it exists.
201
- */
202
- function findPropertyValue(projectContents, propertyName) {
203
- var nodes = msbuildSelect(`//msbuild:PropertyGroup/msbuild:${propertyName}`, projectContents);
204
- if (nodes.length > 0) {
205
- // Take the last one
206
- return nodes[nodes.length - 1].textContent;
207
- }
208
- return null;
209
- }
210
- exports.findPropertyValue = findPropertyValue;
211
- /**
212
- * Search for the given import project in the project contents and return if it exists.
213
- * @param projectContents The XML project contents.
214
- * @param projectName The project to look for.
215
- * @return If the target exists.
216
- */
217
- function importProjectExists(projectContents, projectName) {
218
- var nodes = msbuildSelect(`//msbuild:Import[contains(@Project,'${projectName}')]`, projectContents);
219
- return nodes.length > 0;
220
- }
221
- exports.importProjectExists = importProjectExists;
222
- /**
223
- * Gets the name of the project from the project contents.
224
- * @param projectPath The project file path to check.
225
- * @param projectContents The XML project contents.
226
- * @return The project name.
227
- */
228
- function getProjectName(projectContents) {
229
- const name = findPropertyValue(projectContents, 'ProjectName') ||
230
- findPropertyValue(projectContents, 'AssemblyName') ||
231
- '';
232
- return name;
233
- }
234
- exports.getProjectName = getProjectName;
235
- /**
236
- * Gets the namespace of the project from the project contents.
237
- * @param projectContents The XML project contents.
238
- * @return The project namespace.
239
- */
240
- function getProjectNamespace(projectContents) {
241
- return findPropertyValue(projectContents, 'RootNamespace');
242
- }
243
- exports.getProjectNamespace = getProjectNamespace;
244
- /**
245
- * Gets the guid of the project from the project contents.
246
- * @param projectContents The XML project contents.
247
- * @return The project guid.
248
- */
249
- function getProjectGuid(projectContents) {
250
- return findPropertyValue(projectContents, 'ProjectGuid');
251
- }
252
- exports.getProjectGuid = getProjectGuid;
253
- //# sourceMappingURL=configUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configUtils.js","sourceRoot":"","sources":["../../src/config/configUtils.ts"],"names":[],"mappings":"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"}
@@ -1,167 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copyright (c) Microsoft Corporation.
4
- * Licensed under the MIT License.
5
- * @format
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.dependencyConfigWindows = void 0;
9
- const path = require("path");
10
- const configUtils = require("./configUtils.js");
11
- /**
12
- * Gets the config of any RNW native modules under the target folder.
13
- * @param userConfig A manually specified override config.
14
- * @return The config if any RNW native modules exist.
15
- */
16
- function dependencyConfigWindows(folder, userConfig = {}) {
17
- if (userConfig === null) {
18
- return null;
19
- }
20
- const usingManualProjectsOverride = 'projects' in userConfig && Array.isArray(userConfig.projects);
21
- const usingManualNugetPackagesOverride = 'nugetPackages' in userConfig && Array.isArray(userConfig.nugetPackages);
22
- var result = {
23
- folder,
24
- projects: usingManualProjectsOverride ? userConfig.projects : [],
25
- solutionFile: null,
26
- nugetPackages: usingManualNugetPackagesOverride
27
- ? userConfig.nugetPackages
28
- : [],
29
- };
30
- let sourceDir = null;
31
- if (usingManualProjectsOverride && result.projects.length > 0) {
32
- // Manually provided projects, so extract the sourceDir
33
- if (!('sourceDir' in userConfig)) {
34
- sourceDir =
35
- 'Error: Source dir is required if projects are specified, but it is not specified in react-native.config.';
36
- }
37
- else if (userConfig.sourceDir === null) {
38
- sourceDir =
39
- 'Error: Source dir is required if projects are specified, but it is null in react-native.config.';
40
- }
41
- else {
42
- sourceDir = path.join(folder, userConfig.sourceDir);
43
- }
44
- }
45
- else if (!usingManualProjectsOverride) {
46
- // No manually provided projects, try to find sourceDir
47
- sourceDir = configUtils.findWindowsFolder(folder);
48
- }
49
- if (sourceDir === null) {
50
- // Try to salvage the missing sourceDir
51
- if (result.projects.length === 0 && result.nugetPackages.length > 0) {
52
- // Only nuget packages, no sourceDir required
53
- return result;
54
- }
55
- else if (result.projects.length > 0) {
56
- // Projects overridden but no sourceDir, assume the sourceDir === folder
57
- sourceDir = folder;
58
- }
59
- }
60
- else if (sourceDir.startsWith('Error: ')) {
61
- // Source dir error, bail with error
62
- result.sourceDir = sourceDir;
63
- return result;
64
- }
65
- if (sourceDir === null) {
66
- // After everything above, if sourceDir is still null,
67
- // there's nothing more to look for here, bail
68
- return null;
69
- }
70
- result.sourceDir = sourceDir.substr(folder.length + 1);
71
- const usingManualSolutionFile = 'solutionFile' in userConfig;
72
- var solutionFile = null;
73
- if (usingManualSolutionFile && userConfig.solutionFile !== null) {
74
- // Manually provided solutionFile, so extract it
75
- solutionFile = path.join(sourceDir, userConfig.solutionFile);
76
- }
77
- else if (!usingManualSolutionFile) {
78
- // No manually provided solutionFile, try to find it
79
- const foundSolutions = configUtils.findSolutionFiles(sourceDir);
80
- if (foundSolutions.length === 1) {
81
- solutionFile = path.join(sourceDir, foundSolutions[0]);
82
- }
83
- }
84
- result.solutionFile =
85
- solutionFile !== null ? solutionFile.substr(sourceDir.length + 1) : null;
86
- if (usingManualProjectsOverride) {
87
- // react-native.config used, fill out (auto) items for each provided project, verify (req) items are present
88
- const alwaysRequired = [
89
- 'projectFile',
90
- 'directDependency',
91
- ];
92
- for (let project of result.projects) {
93
- // Verifying (req) items
94
- var errorFound = false;
95
- alwaysRequired.forEach(item => {
96
- if (!(item in project)) {
97
- project[item] = `Error: ${item} is required for each project in react-native.config`;
98
- errorFound = true;
99
- }
100
- });
101
- if (errorFound) {
102
- break;
103
- }
104
- const projectFile = path.join(sourceDir, project.projectFile);
105
- const projectContents = configUtils.readProjectFile(projectFile);
106
- // Calculating (auto) items
107
- project.projectName = configUtils.getProjectName(projectContents);
108
- project.projectLang = configUtils.getProjectLanguage(projectFile);
109
- project.projectGuid = configUtils.getProjectGuid(projectContents);
110
- if (project.directDependency) {
111
- // Calculating more (auto) items
112
- const projectNamespace = configUtils.getProjectNamespace(projectContents);
113
- if (projectNamespace !== null) {
114
- const cppNamespace = projectNamespace.replace(/\./g, '::');
115
- const csNamespace = projectNamespace.replace(/::/g, '.');
116
- project.cppHeaders = project.cppHeaders || [`winrt/${csNamespace}.h`];
117
- project.cppPackageProviders = project.cppPackageProviders || [
118
- `${cppNamespace}::ReactPackageProvider`,
119
- ];
120
- project.csNamespaces = project.csNamespaces || [`${csNamespace}`];
121
- project.csPackageProviders = project.csPackageProviders || [
122
- `${csNamespace}.ReactPackageProvider`,
123
- ];
124
- }
125
- }
126
- }
127
- }
128
- else {
129
- // No react-native.config, try to heurestically find any projects
130
- const foundProjects = configUtils.findDependencyProjectFiles(sourceDir);
131
- for (const foundProject of foundProjects) {
132
- const projectFile = path.join(sourceDir, foundProject);
133
- const projectLang = configUtils.getProjectLanguage(projectFile);
134
- const projectContents = configUtils.readProjectFile(projectFile);
135
- const projectName = configUtils.getProjectName(projectContents);
136
- const projectGuid = configUtils.getProjectGuid(projectContents);
137
- const projectNamespace = configUtils.getProjectNamespace(projectContents);
138
- const directDependency = true;
139
- let cppHeaders = [];
140
- let cppPackageProviders = [];
141
- let csNamespaces = [];
142
- let csPackageProviders = [];
143
- if (projectNamespace !== null) {
144
- const cppNamespace = projectNamespace.replace(/\./g, '::');
145
- const csNamespace = projectNamespace.replace(/::/g, '.');
146
- cppHeaders.push(`winrt/${csNamespace}.h`);
147
- cppPackageProviders.push(`${cppNamespace}::ReactPackageProvider`);
148
- csNamespaces.push(`${csNamespace}`);
149
- csPackageProviders.push(`${csNamespace}.ReactPackageProvider`);
150
- }
151
- result.projects.push({
152
- projectFile: projectFile.substr(sourceDir.length + 1),
153
- projectName,
154
- projectLang,
155
- projectGuid,
156
- directDependency,
157
- cppHeaders,
158
- cppPackageProviders,
159
- csNamespaces,
160
- csPackageProviders,
161
- });
162
- }
163
- }
164
- return result;
165
- }
166
- exports.dependencyConfigWindows = dependencyConfigWindows;
167
- //# sourceMappingURL=dependencyConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencyConfig.js","sourceRoot":"","sources":["../../src/config/dependencyConfig.ts"],"names":[],"mappings":"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"}