@react-native-windows/cli 0.0.0-canary.25 → 0.0.0-canary.250

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 +208 -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 -398
  118. package/CHANGELOG.md +0 -192
  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
@@ -1,121 +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.projectConfigWindows = void 0;
9
- const path = require("path");
10
- const configUtils = require("./configUtils.js");
11
- /**
12
- * Gets the config of any RNW apps under the target folder.
13
- * @param folder The absolute path to the target folder.
14
- * @param userConfig A manually specified override config.
15
- * @return The config if any RNW apps exist.
16
- */
17
- function projectConfigWindows(folder, userConfig = {}) {
18
- if (userConfig === null) {
19
- return null;
20
- }
21
- const usingManualOverride = 'sourceDir' in userConfig;
22
- const sourceDir = usingManualOverride
23
- ? path.join(folder, userConfig.sourceDir)
24
- : configUtils.findWindowsFolder(folder);
25
- if (sourceDir === null) {
26
- // Nothing to look for here, bail
27
- return null;
28
- }
29
- var result = {
30
- folder: folder,
31
- sourceDir: sourceDir.substr(folder.length + 1),
32
- };
33
- var validProject = false;
34
- if (usingManualOverride) {
35
- // Manual override, try to use it for solutionFile
36
- if (!('solutionFile' in userConfig)) {
37
- result.solutionFile =
38
- 'Error: Solution file is required but not specified in react-native.config.';
39
- }
40
- else if (userConfig.solutionFile === null) {
41
- result.solutionFile =
42
- 'Error: Solution file is null in react-native.config.';
43
- }
44
- else {
45
- result.solutionFile = userConfig.solutionFile;
46
- }
47
- // Manual override, try to use it for project
48
- if (!('project' in userConfig)) {
49
- result.project = {
50
- projectFile: 'Error: Project is required but not specified in react-native.config.',
51
- };
52
- }
53
- else if (!userConfig.project) {
54
- result.project = {
55
- projectFile: 'Error: Project is null in react-native.config.',
56
- };
57
- }
58
- else {
59
- if (!('projectFile' in userConfig.project)) {
60
- result.project = {
61
- projectFile: 'Error: Project file is required for project in react-native.config.',
62
- };
63
- }
64
- else if (userConfig.project.projectFile === null) {
65
- result.project = {
66
- projectFile: 'Error: Project file is null in react-native.config.',
67
- };
68
- }
69
- else {
70
- result.project = {
71
- projectFile: userConfig.project.projectFile,
72
- };
73
- validProject = true;
74
- }
75
- }
76
- }
77
- else {
78
- // No manually provided solutionFile, try to find it
79
- const foundSolutions = configUtils.findSolutionFiles(sourceDir);
80
- if (foundSolutions.length === 0) {
81
- result.solutionFile =
82
- 'Error: No app solution file found, please specify in react-native.config.';
83
- }
84
- else if (foundSolutions.length > 1) {
85
- result.solutionFile =
86
- 'Error: Too many app solution files found, please specify in react-native.config.';
87
- }
88
- else {
89
- result.solutionFile = foundSolutions[0];
90
- }
91
- // No manually provided project, try to find it
92
- const foundProjects = configUtils.findAppProjectFiles(sourceDir);
93
- if (foundProjects.length === 0) {
94
- result.project = {
95
- projectFile: 'Error: No app project file found, please specify in react-native.config.',
96
- };
97
- }
98
- else if (foundProjects.length > 1) {
99
- result.project = {
100
- projectFile: 'Error: Too many app project files found, please specify in react-native.config.',
101
- };
102
- }
103
- else {
104
- result.project = {
105
- projectFile: foundProjects[0],
106
- };
107
- validProject = true;
108
- }
109
- }
110
- if (validProject) {
111
- const projectFile = path.join(sourceDir, result.project.projectFile);
112
- const projectContents = configUtils.readProjectFile(projectFile);
113
- // Add missing (auto) items
114
- result.project.projectName = configUtils.getProjectName(projectContents);
115
- result.project.projectLang = configUtils.getProjectLanguage(projectFile);
116
- result.project.projectGuid = configUtils.getProjectGuid(projectContents);
117
- }
118
- return result;
119
- }
120
- exports.projectConfigWindows = projectConfigWindows;
121
- //# sourceMappingURL=projectConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"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"}
@@ -1,159 +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.runWindowsCommand = void 0;
9
- const build = require("./utils/build");
10
- const chalk = require("chalk");
11
- const deploy = require("./utils/deploy");
12
- const commandWithProgress_1 = require("./utils/commandWithProgress");
13
- const info = require("./utils/info");
14
- const msbuildtools_1 = require("./utils/msbuildtools");
15
- const runWindowsOptions_1 = require("./runWindowsOptions");
16
- const autolink_1 = require("./utils/autolink");
17
- function ExitProcessWithError(loggingWasEnabled) {
18
- if (!loggingWasEnabled) {
19
- console.log(`Re-run the command with ${chalk.bold('--logging')} for more information`);
20
- }
21
- process.exit(1);
22
- }
23
- /**
24
- * Performs build deploy and launch of RNW apps.
25
- * @param args Unprocessed args passed from react-native CLI.
26
- * @param config Config passed from react-native CLI.
27
- * @param options Options passed from react-native CLI.
28
- */
29
- async function runWindows(args, config, options) {
30
- const verbose = options.logging;
31
- if (verbose) {
32
- commandWithProgress_1.newInfo('Verbose: ON');
33
- }
34
- // https://github.com/yarnpkg/yarn/issues/8334 - Yarn on Windows breaks apps that read from the environment variables
35
- // Yarn will run node via CreateProcess and pass npm_config_* variables in lowercase without unifying their value
36
- // with their possibly existing uppercase counterparts. This breaks programs that read from the environment block
37
- // and write to a case-insensitive dictionary since they expect to encounter each variable only once.
38
- // The values of the lowercase variables are the one npm actually wants to use, plus they are seeded from the
39
- // uppercase variable values one if there are no overrides.
40
- delete process.env.NPM_CONFIG_CACHE;
41
- delete process.env.NPM_CONFIG_PREFIX;
42
- if (options.info) {
43
- try {
44
- const output = await info.getEnvironmentInfo();
45
- console.log(output.trimEnd());
46
- console.log(' Installed UWP SDKs:');
47
- const sdks = msbuildtools_1.default.getAllAvailableUAPVersions();
48
- sdks.forEach(version => console.log(' ' + version));
49
- return;
50
- }
51
- catch (e) {
52
- commandWithProgress_1.newError('Unable to print environment info.\n' + e.toString());
53
- ExitProcessWithError(options.logging);
54
- }
55
- }
56
- // Get the solution file
57
- const slnFile = build.getAppSolutionFile(options, config);
58
- if (options.autolink) {
59
- const autolinkArgs = [];
60
- const autolinkConfig = config;
61
- const autoLinkOptions = {
62
- logging: options.logging,
63
- proj: options.proj,
64
- sln: options.sln,
65
- };
66
- await autolink_1.autoLinkCommand.func(autolinkArgs, autolinkConfig, autoLinkOptions);
67
- }
68
- else {
69
- commandWithProgress_1.newInfo('Autolink step is skipped');
70
- }
71
- let buildTools;
72
- try {
73
- buildTools = msbuildtools_1.default.findAvailableVersion(options.arch, verbose);
74
- }
75
- catch (error) {
76
- commandWithProgress_1.newWarn('No public VS release found');
77
- // Try prerelease
78
- try {
79
- commandWithProgress_1.newInfo('Trying pre-release VS');
80
- buildTools = msbuildtools_1.default.findAvailableVersion(options.arch, verbose, true);
81
- }
82
- catch (_a) {
83
- throw error;
84
- }
85
- }
86
- if (options.build) {
87
- if (!slnFile) {
88
- commandWithProgress_1.newError('Visual Studio Solution file not found. Maybe run "react-native windows" first?');
89
- ExitProcessWithError(options.logging);
90
- }
91
- try {
92
- await build.restoreNuGetPackages(slnFile, buildTools, verbose);
93
- }
94
- catch (e) {
95
- commandWithProgress_1.newError('Failed to restore the NuGet packages: ' + e.toString());
96
- ExitProcessWithError(options.logging);
97
- }
98
- // Get build/deploy options
99
- const buildType = deploy.getBuildConfiguration(options);
100
- var msBuildProps = build.parseMsBuildProps(options);
101
- // Disable the autolink check since we just ran it
102
- msBuildProps.RunAutolinkCheck = 'false';
103
- try {
104
- await build.buildSolution(buildTools, slnFile, buildType, options.arch, msBuildProps, verbose, undefined, // build the default target
105
- options.buildLogDirectory, options.singleproc);
106
- }
107
- catch (e) {
108
- commandWithProgress_1.newError(`Build failed with message ${e.message}. Check your build configuration.`);
109
- if (e.logfile) {
110
- console.log('See', chalk.bold(e.logfile));
111
- }
112
- ExitProcessWithError(options.logging);
113
- }
114
- }
115
- else {
116
- commandWithProgress_1.newInfo('Build step is skipped');
117
- }
118
- await deploy.startServerInNewWindow(options, verbose);
119
- if (options.deploy) {
120
- if (!slnFile) {
121
- commandWithProgress_1.newError('Visual Studio Solution file not found. Maybe run "react-native windows" first?');
122
- ExitProcessWithError(options.logging);
123
- }
124
- try {
125
- if (options.device || options.emulator || options.target) {
126
- await deploy.deployToDevice(options, verbose);
127
- }
128
- else {
129
- await deploy.deployToDesktop(options, verbose, config, buildTools);
130
- }
131
- }
132
- catch (e) {
133
- commandWithProgress_1.newError(`Failed to deploy${e ? `: ${e.message}` : ''}`);
134
- ExitProcessWithError(options.logging);
135
- }
136
- }
137
- else {
138
- commandWithProgress_1.newInfo('Deploy step is skipped');
139
- }
140
- }
141
- /*
142
- // Example of running the Windows Command
143
- runWindows({
144
- root: 'C:\\github\\hack\\myapp',
145
- debug: true,
146
- arch: 'x86',
147
- nugetPath: 'C:\\github\\react\\react-native-windows\\local-cli\\runWindows\\.nuget\\nuget.exe'
148
- });
149
- */
150
- /**
151
- * Starts the app on a connected Windows emulator or mobile device.
152
- */
153
- exports.runWindowsCommand = {
154
- name: 'run-windows',
155
- description: 'builds your app and starts it on a connected Windows desktop, emulator or device',
156
- func: runWindows,
157
- options: runWindowsOptions_1.runWindowsOptions,
158
- };
159
- //# sourceMappingURL=runWindows.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runWindows.js","sourceRoot":"","sources":["../../src/runWindows/runWindows.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runWindowsOptions.js","sourceRoot":"","sources":["../../src/runWindows/runWindowsOptions.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Copyright (c) Microsoft Corporation.
3
- * Licensed under the MIT License.
4
- * @format
5
- */
6
- import { Command } from '@react-native-community/cli-types';
7
- export declare const autoLinkCommand: Command;
@@ -1,353 +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.autoLinkCommand = void 0;
9
- const fs = require("fs");
10
- const path = require("path");
11
- const chalk = require("chalk");
12
- const perf_hooks_1 = require("perf_hooks");
13
- const commandWithProgress_1 = require("./commandWithProgress");
14
- const vstools = require("./vstools");
15
- const generatorCommon = require("../../generator-common");
16
- const configUtils = require("../../config/configUtils");
17
- /**
18
- * Locates the react-native-windows directory containing template files
19
- * @param config project configuration
20
- */
21
- function resolveTemplateRoot(projectConfig) {
22
- const rnwPackage = path.dirname(require.resolve('react-native-windows/package.json', {
23
- paths: [projectConfig.folder],
24
- }));
25
- return path.join(rnwPackage, 'template');
26
- }
27
- /**
28
- * Logs the given message if verbose is True.
29
- * @param message The message to log.
30
- * @param verbose Whether or not verbose logging is enabled.
31
- */
32
- function verboseMessage(message, verbose) {
33
- if (verbose) {
34
- console.log(message);
35
- }
36
- }
37
- /**
38
- * Loads a source template file and performs the given replacements, normalizing CRLF.
39
- * @param srcFile Path to the source file.
40
- * @param replacements e.g. {'TextToBeReplaced': 'Replacement'}
41
- * @return The contents of the file with the replacements applied.
42
- */
43
- function getNormalizedContents(srcFile, replacements) {
44
- // Template files are CRLF, JS-generated replacements are LF, normalize replacements to CRLF
45
- for (var key in replacements) {
46
- replacements[key] = replacements[key].replace(/\n/g, '\r\n');
47
- }
48
- replacements.useMustache = true;
49
- return generatorCommon.resolveContents(srcFile, replacements);
50
- }
51
- /**
52
- * Updates the target file with the expected contents if it's different.
53
- * @param filePath Path to the target file to update.
54
- * @param expectedContents The expected contents of the file.
55
- * @param verbose If true, enable verbose logging.
56
- * @param checkMode It true, don't make any changes.
57
- * @return Whether any changes were necessary.
58
- */
59
- function updateFile(filePath, expectedContents, verbose, checkMode) {
60
- const fileName = chalk.bold(path.basename(filePath));
61
- verboseMessage(`Reading ${fileName}...`, verbose);
62
- const actualContents = fs.existsSync(filePath)
63
- ? fs.readFileSync(filePath).toString()
64
- : '';
65
- const contentsChanged = expectedContents !== actualContents;
66
- if (contentsChanged) {
67
- verboseMessage(chalk.yellow(`${fileName} needs to be updated.`), verbose);
68
- if (!checkMode) {
69
- verboseMessage(`Writing ${fileName}...`, verbose);
70
- fs.writeFileSync(filePath, expectedContents, {
71
- encoding: 'utf8',
72
- flag: 'w',
73
- });
74
- }
75
- }
76
- else {
77
- verboseMessage(`No changes to ${fileName}.`, verbose);
78
- }
79
- return contentsChanged;
80
- }
81
- /**
82
- * Exits the script with the given status code.
83
- * @param statusCode The status code.
84
- * @param loggingWasEnabled Whether or not verbose lossing was enabled.
85
- */
86
- function exitProcessWithStatusCode(statusCode, loggingWasEnabled) {
87
- if (!loggingWasEnabled && statusCode !== 0) {
88
- console.log(`Error: Re-run the command with ${chalk.bold('--logging')} for more information.`);
89
- }
90
- process.exit(statusCode);
91
- }
92
- /**
93
- * Performs auto-linking for RNW native modules and apps.
94
- * @param args Unprocessed args passed from react-native CLI.
95
- * @param config Config passed from react-native CLI.
96
- * @param options Options passed from react-native CLI.
97
- */
98
- async function updateAutoLink(args, config, options) {
99
- const startTime = perf_hooks_1.performance.now();
100
- const verbose = options.logging;
101
- const checkMode = options.check;
102
- var changesNecessary = false;
103
- const spinner = commandWithProgress_1.newSpinner(checkMode ? 'Checking auto-linked files...' : 'Auto-linking...');
104
- verboseMessage('', verbose);
105
- try {
106
- verboseMessage('Parsing project...', verbose);
107
- const projectConfig = config.project;
108
- if (!('windows' in projectConfig) || projectConfig.windows === null) {
109
- throw new Error('Windows auto-link only supported on Windows app projects');
110
- }
111
- const windowsAppConfig = projectConfig.windows;
112
- const templateRoot = resolveTemplateRoot(windowsAppConfig);
113
- if (options.sln) {
114
- const slnFile = path.join(windowsAppConfig.folder, options.sln);
115
- windowsAppConfig.solutionFile = path.relative(path.join(windowsAppConfig.folder, windowsAppConfig.sourceDir), slnFile);
116
- }
117
- if (options.proj) {
118
- const projFile = path.join(windowsAppConfig.folder, options.proj);
119
- const projectContents = configUtils.readProjectFile(projFile);
120
- windowsAppConfig.project = {
121
- projectFile: path.relative(path.join(windowsAppConfig.folder, windowsAppConfig.sourceDir), projFile),
122
- projectName: configUtils.getProjectName(projectContents),
123
- projectLang: configUtils.getProjectLanguage(projFile),
124
- projectGuid: configUtils.getProjectGuid(projectContents),
125
- };
126
- }
127
- verboseMessage('Found Windows app project, config:', verbose);
128
- verboseMessage(windowsAppConfig, verbose);
129
- const alwaysRequired = [
130
- 'folder',
131
- 'sourceDir',
132
- 'solutionFile',
133
- 'project',
134
- ];
135
- alwaysRequired.forEach(item => {
136
- if (!(item in windowsAppConfig) || windowsAppConfig[item] === null) {
137
- throw new Error(`${item} is required but not specified by react-native config`);
138
- }
139
- else if (typeof windowsAppConfig[item] === 'string' &&
140
- windowsAppConfig[item].startsWith('Error: ')) {
141
- throw new Error(`${item} invalid. ${windowsAppConfig[item]}`);
142
- }
143
- });
144
- const solutionFile = path.join(windowsAppConfig.folder, windowsAppConfig.sourceDir, windowsAppConfig.solutionFile);
145
- const windowsAppProjectConfig = windowsAppConfig.project;
146
- const projectRequired = [
147
- 'projectFile',
148
- 'projectName',
149
- 'projectLang',
150
- 'projectGuid',
151
- ];
152
- projectRequired.forEach(item => {
153
- if (!(item in windowsAppProjectConfig) ||
154
- windowsAppProjectConfig[item] === null) {
155
- throw new Error(`project.${item} is required but not specified by react-native config`);
156
- }
157
- else if (typeof windowsAppProjectConfig[item] === 'string' &&
158
- windowsAppProjectConfig[item].startsWith('Error: ')) {
159
- throw new Error(`project.${item} invalid. ${windowsAppProjectConfig[item]}`);
160
- }
161
- });
162
- const projectFile = path.join(windowsAppConfig.folder, windowsAppConfig.sourceDir, windowsAppConfig.project.projectFile);
163
- const projectDir = path.dirname(projectFile);
164
- const projectLang = windowsAppConfig.project.projectLang;
165
- verboseMessage('Parsing dependencies...', verbose);
166
- const dependenciesConfig = config.dependencies;
167
- let windowsDependencies = {};
168
- for (const dependencyName in dependenciesConfig) {
169
- const windowsDependency = dependenciesConfig[dependencyName].platforms.windows;
170
- if (windowsDependency) {
171
- verboseMessage(`${chalk.bold(dependencyName)} has Windows implementation, config:`, verbose);
172
- verboseMessage(windowsDependency, verbose);
173
- var dependencyIsValid = true;
174
- dependencyIsValid = !!(dependencyIsValid &&
175
- 'sourceDir' in windowsDependency &&
176
- windowsDependency.sourceDir &&
177
- !windowsDependency.sourceDir.startsWith('Error: '));
178
- if ('projects' in windowsDependency &&
179
- Array.isArray(windowsDependency.projects)) {
180
- windowsDependency.projects.forEach(project => {
181
- const itemsToCheck = [
182
- 'projectFile',
183
- 'directDependency',
184
- ];
185
- itemsToCheck.forEach(item => {
186
- dependencyIsValid = !!(dependencyIsValid &&
187
- item in project &&
188
- project[item] &&
189
- !project[item].toString().startsWith('Error: '));
190
- });
191
- });
192
- }
193
- if (dependencyIsValid) {
194
- verboseMessage(`Adding ${chalk.bold(dependencyName)}.`, verbose);
195
- windowsDependencies[dependencyName] = windowsDependency;
196
- }
197
- }
198
- }
199
- // Generating cs/h files for app code consumption
200
- if (projectLang === 'cs') {
201
- let csUsingNamespaces = '';
202
- let csReactPacakgeProviders = '';
203
- for (const dependencyName in windowsDependencies) {
204
- windowsDependencies[dependencyName].projects.forEach(project => {
205
- if (project.directDependency) {
206
- csUsingNamespaces += `\n\n// Namespaces from ${dependencyName}`;
207
- project.csNamespaces.forEach(namespace => {
208
- csUsingNamespaces += `\nusing ${namespace};`;
209
- });
210
- csReactPacakgeProviders += `\n // IReactPackageProviders from ${dependencyName}`;
211
- project.csPackageProviders.forEach(packageProvider => {
212
- csReactPacakgeProviders += `\n packageProviders.Add(new ${packageProvider}());`;
213
- });
214
- }
215
- });
216
- }
217
- const csFileName = 'AutolinkedNativeModules.g.cs';
218
- const srcCsFile = path.join(templateRoot, `${projectLang}-app`, 'src', csFileName);
219
- const destCsFile = path.join(projectDir, csFileName);
220
- verboseMessage(`Calculating ${chalk.bold(path.basename(destCsFile))}...`, verbose);
221
- const csContents = getNormalizedContents(srcCsFile, {
222
- autolinkCsUsingNamespaces: csUsingNamespaces,
223
- autolinkCsReactPacakgeProviders: csReactPacakgeProviders,
224
- });
225
- changesNecessary =
226
- updateFile(destCsFile, csContents, verbose, checkMode) ||
227
- changesNecessary;
228
- }
229
- else if (projectLang === 'cpp') {
230
- let cppIncludes = '';
231
- let cppPackageProviders = '';
232
- for (const dependencyName in windowsDependencies) {
233
- windowsDependencies[dependencyName].projects.forEach(project => {
234
- if (project.directDependency) {
235
- cppIncludes += `\n\n// Includes from ${dependencyName}`;
236
- project.cppHeaders.forEach(header => {
237
- cppIncludes += `\n#include <${header}>`;
238
- });
239
- cppPackageProviders += `\n // IReactPackageProviders from ${dependencyName}`;
240
- project.cppPackageProviders.forEach(packageProvider => {
241
- cppPackageProviders += `\n packageProviders.Append(winrt::${packageProvider}());`;
242
- });
243
- }
244
- });
245
- }
246
- if (cppPackageProviders === '') {
247
- // There are no windows dependencies, this would result in warning. C4100: 'packageProviders': unreferenced formal parameter.
248
- // therefore add a usage.
249
- cppPackageProviders = '\n UNREFERENCED_PARAMETER(packageProviders);'; // CODESYNC: vnext\local-cli\generator-windows\index.js
250
- }
251
- const cppFileName = 'AutolinkedNativeModules.g.cpp';
252
- const srcCppFile = path.join(templateRoot, `${projectLang}-app`, 'src', cppFileName);
253
- const destCppFile = path.join(projectDir, cppFileName);
254
- verboseMessage(`Calculating ${chalk.bold(path.basename(destCppFile))}...`, verbose);
255
- const cppContents = getNormalizedContents(srcCppFile, {
256
- autolinkCppIncludes: cppIncludes,
257
- autolinkCppPackageProviders: cppPackageProviders,
258
- });
259
- changesNecessary =
260
- updateFile(destCppFile, cppContents, verbose, checkMode) ||
261
- changesNecessary;
262
- }
263
- // Generating targets for app project consumption
264
- let projectReferencesForTargets = '';
265
- for (const dependencyName in windowsDependencies) {
266
- windowsDependencies[dependencyName].projects.forEach(project => {
267
- if (project.directDependency) {
268
- const dependencyProjectFile = path.join(windowsDependencies[dependencyName].folder, windowsDependencies[dependencyName].sourceDir, project.projectFile);
269
- const relDependencyProjectFile = path.relative(projectDir, dependencyProjectFile);
270
- projectReferencesForTargets += `\n <!-- Projects from ${dependencyName} -->`;
271
- projectReferencesForTargets += `\n <ProjectReference Include="$(ProjectDir)${relDependencyProjectFile}">
272
- <Project>${project.projectGuid}</Project>
273
- </ProjectReference>`;
274
- }
275
- });
276
- }
277
- const targetFileName = 'AutolinkedNativeModules.g.targets';
278
- const srcTargetFile = path.join(templateRoot, `${projectLang}-app`, 'src', targetFileName);
279
- const destTargetFile = path.join(projectDir, targetFileName);
280
- verboseMessage(`Calculating ${chalk.bold(path.basename(destTargetFile))}...`, verbose);
281
- const targetContents = getNormalizedContents(srcTargetFile, {
282
- autolinkProjectReferencesForTargets: projectReferencesForTargets,
283
- });
284
- changesNecessary =
285
- updateFile(destTargetFile, targetContents, verbose, checkMode) ||
286
- changesNecessary;
287
- // Generating project entries for solution
288
- let projectsForSolution = [];
289
- for (const dependencyName in windowsDependencies) {
290
- // Process projects
291
- windowsDependencies[dependencyName].projects.forEach(project => {
292
- const dependencyProjectFile = path.join(windowsDependencies[dependencyName].folder, windowsDependencies[dependencyName].sourceDir, project.projectFile);
293
- projectsForSolution.push({
294
- projectFile: dependencyProjectFile,
295
- projectName: project.projectName,
296
- projectLang: project.projectLang,
297
- projectGuid: project.projectGuid,
298
- });
299
- });
300
- }
301
- verboseMessage(`Calculating ${chalk.bold(path.basename(solutionFile))} changes...`, verbose);
302
- projectsForSolution.forEach(project => {
303
- const contentsChanged = vstools.addProjectToSolution(solutionFile, project, verbose, checkMode);
304
- changesNecessary = changesNecessary || contentsChanged;
305
- });
306
- spinner.succeed();
307
- var endTime = perf_hooks_1.performance.now();
308
- if (!changesNecessary) {
309
- console.log(`${chalk.green('Success:')} No auto-linking changes necessary. (${Math.round(endTime - startTime)}ms)`);
310
- }
311
- else if (checkMode) {
312
- console.log(`${chalk.yellow('Warning:')} Auto-linking changes were necessary but ${chalk.bold('--check')} specified. Run ${chalk.bold("'npx react-native autolink-windows'")} to apply the changes. (${Math.round(endTime - startTime)}ms)`);
313
- exitProcessWithStatusCode(0, verbose);
314
- }
315
- else {
316
- console.log(`${chalk.green('Success:')} Auto-linking changes completed. (${Math.round(endTime - startTime)}ms)`);
317
- }
318
- }
319
- catch (e) {
320
- spinner.fail();
321
- var endTime = perf_hooks_1.performance.now();
322
- console.log(`${chalk.red('Error:')} ${e.toString()}. (${Math.round(endTime - startTime)}ms)`);
323
- exitProcessWithStatusCode(1, verbose);
324
- }
325
- }
326
- exports.autoLinkCommand = {
327
- name: 'autolink-windows',
328
- description: 'performs autolinking',
329
- func: updateAutoLink,
330
- options: [
331
- {
332
- name: '--logging',
333
- description: 'Verbose output logging',
334
- default: false,
335
- },
336
- {
337
- name: '--check',
338
- description: 'Only check whether any autolinked files need to change',
339
- default: false,
340
- },
341
- {
342
- name: '--sln [string]',
343
- description: "Override the app solution file determined by 'react-native config', e.g. windows\\myApp.sln",
344
- default: undefined,
345
- },
346
- {
347
- name: '--proj [string]',
348
- description: "Override the app project file determined by 'react-native config', e.g. windows\\myApp\\myApp.vcxproj",
349
- default: undefined,
350
- },
351
- ],
352
- };
353
- //# sourceMappingURL=autolink.js.map