@react-native-windows/cli 0.0.0-canary.11 → 0.0.0-canary.113
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 +49 -0
- package/lib-commonjs/config/configUtils.d.ts +25 -2
- package/lib-commonjs/config/configUtils.js +119 -30
- package/lib-commonjs/config/configUtils.js.map +1 -1
- package/lib-commonjs/config/dependencyConfig.js +101 -44
- package/lib-commonjs/config/dependencyConfig.js.map +1 -1
- package/lib-commonjs/config/projectConfig.d.ts +4 -1
- package/lib-commonjs/config/projectConfig.js +68 -12
- package/lib-commonjs/config/projectConfig.js.map +1 -1
- package/lib-commonjs/e2etest/autolink.test.d.ts +6 -0
- package/lib-commonjs/e2etest/autolink.test.js +435 -0
- package/lib-commonjs/e2etest/autolink.test.js.map +1 -0
- package/lib-commonjs/e2etest/dependencyConfig.test.d.ts +6 -0
- package/lib-commonjs/e2etest/dependencyConfig.test.js +162 -0
- package/lib-commonjs/e2etest/dependencyConfig.test.js.map +1 -0
- package/lib-commonjs/e2etest/projectConfig.test.d.ts +6 -0
- package/lib-commonjs/e2etest/projectConfig.test.js +123 -0
- package/lib-commonjs/e2etest/projectConfig.test.js.map +1 -0
- package/lib-commonjs/e2etest/projectConfig.utils.d.ts +4 -0
- package/lib-commonjs/e2etest/projectConfig.utils.js +56 -0
- package/lib-commonjs/e2etest/projectConfig.utils.js.map +1 -0
- package/lib-commonjs/e2etest/runWindows.test.d.ts +6 -0
- package/lib-commonjs/e2etest/runWindows.test.js +61 -0
- package/lib-commonjs/e2etest/runWindows.test.js.map +1 -0
- package/lib-commonjs/generator-common/index.d.ts +16 -0
- package/lib-commonjs/generator-common/index.js +65 -44
- package/lib-commonjs/generator-common/index.js.map +1 -1
- package/lib-commonjs/generator-windows/index.d.ts +2 -2
- package/lib-commonjs/generator-windows/index.js +248 -155
- package/lib-commonjs/generator-windows/index.js.map +1 -1
- package/lib-commonjs/healthChecks.d.ts +2 -0
- package/lib-commonjs/healthChecks.js +88 -0
- package/lib-commonjs/healthChecks.js.map +1 -0
- package/lib-commonjs/index.d.ts +5 -0
- package/lib-commonjs/index.js +24 -8
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/runWindows/runWindows.js +211 -53
- package/lib-commonjs/runWindows/runWindows.js.map +1 -1
- package/lib-commonjs/runWindows/runWindowsOptions.d.ts +14 -10
- package/lib-commonjs/runWindows/runWindowsOptions.js +16 -12
- package/lib-commonjs/runWindows/runWindowsOptions.js.map +1 -1
- package/lib-commonjs/runWindows/utils/autolink.d.ts +88 -1
- package/lib-commonjs/runWindows/utils/autolink.js +596 -265
- package/lib-commonjs/runWindows/utils/autolink.js.map +1 -1
- package/lib-commonjs/runWindows/utils/build.d.ts +1 -2
- package/lib-commonjs/runWindows/utils/build.js +25 -32
- package/lib-commonjs/runWindows/utils/build.js.map +1 -1
- package/lib-commonjs/runWindows/utils/checkRequirements.js +12 -8
- package/lib-commonjs/runWindows/utils/checkRequirements.js.map +1 -1
- package/lib-commonjs/runWindows/utils/commandWithProgress.d.ts +11 -3
- package/lib-commonjs/runWindows/utils/commandWithProgress.js +60 -25
- package/lib-commonjs/runWindows/utils/commandWithProgress.js.map +1 -1
- package/lib-commonjs/runWindows/utils/deploy.d.ts +1 -1
- package/lib-commonjs/runWindows/utils/deploy.js +167 -85
- package/lib-commonjs/runWindows/utils/deploy.js.map +1 -1
- package/lib-commonjs/runWindows/utils/info.js +5 -2
- package/lib-commonjs/runWindows/utils/info.js.map +1 -1
- package/lib-commonjs/runWindows/utils/msbuildtools.d.ts +10 -5
- package/lib-commonjs/runWindows/utils/msbuildtools.js +98 -61
- package/lib-commonjs/runWindows/utils/msbuildtools.js.map +1 -1
- package/lib-commonjs/runWindows/utils/telemetryHelpers.d.ts +29 -0
- package/lib-commonjs/runWindows/utils/telemetryHelpers.js +109 -0
- package/lib-commonjs/runWindows/utils/telemetryHelpers.js.map +1 -0
- package/lib-commonjs/runWindows/utils/version.d.ts +4 -4
- package/lib-commonjs/runWindows/utils/version.js +1 -1
- package/lib-commonjs/runWindows/utils/version.js.map +1 -1
- package/lib-commonjs/runWindows/utils/vsInstalls.d.ts +4 -1
- package/lib-commonjs/runWindows/utils/vsInstalls.js +22 -7
- package/lib-commonjs/runWindows/utils/vsInstalls.js.map +1 -1
- package/lib-commonjs/runWindows/utils/vstools.d.ts +1 -0
- package/lib-commonjs/runWindows/utils/vstools.js +42 -29
- package/lib-commonjs/runWindows/utils/vstools.js.map +1 -1
- package/lib-commonjs/runWindows/utils/winappdeploytool.d.ts +3 -3
- package/lib-commonjs/runWindows/utils/winappdeploytool.js +19 -16
- package/lib-commonjs/runWindows/utils/winappdeploytool.js.map +1 -1
- package/package.json +42 -25
- package/powershell/Add-AppDevPackage.ps1 +2 -2
- package/powershell/WindowsStoreAppUtils.ps1 +10 -0
- package/CHANGELOG.json +0 -170
- package/CHANGELOG.md +0 -85
|
@@ -4,112 +4,120 @@
|
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
* @format
|
|
6
6
|
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
7
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
11
|
+
exports.installScriptsAndDependencies = exports.copyProjectTemplateAndReplace = void 0;
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const username_1 = __importDefault(require("username"));
|
|
15
|
+
const uuid_1 = __importDefault(require("uuid"));
|
|
16
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
17
|
+
const fs_1 = __importDefault(require("@react-native-windows/fs"));
|
|
18
|
+
const semver_1 = __importDefault(require("semver"));
|
|
19
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
20
|
+
const find_up_1 = __importDefault(require("find-up"));
|
|
17
21
|
const configUtils_1 = require("../config/configUtils");
|
|
18
22
|
const generator_common_1 = require("../generator-common");
|
|
23
|
+
const telemetry_1 = require("@react-native-windows/telemetry");
|
|
24
|
+
const package_utils_1 = require("@react-native-windows/package-utils");
|
|
19
25
|
const windowsDir = 'windows';
|
|
20
26
|
const bundleDir = 'Bundle';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
.toString()
|
|
30
|
-
.trim();
|
|
31
|
-
if (!fs.existsSync(path.join(windowsDir, newProjectName))) {
|
|
32
|
-
fs.mkdirSync(path.join(windowsDir, newProjectName));
|
|
33
|
-
}
|
|
34
|
-
childProcess.execSync(`powershell -command "$pwd = (ConvertTo-SecureString -String password -Force -AsPlainText); Export-PfxCertificate -Cert 'cert:\\CurrentUser\\My\\${thumbprint}' -FilePath ${path.join(windowsDir, newProjectName, newProjectName)}_TemporaryKey.pfx -Password $pwd"`, { timeout });
|
|
35
|
-
console.log(chalk.green('Self-signed certificate generated successfully.'));
|
|
36
|
-
return thumbprint;
|
|
37
|
-
}
|
|
38
|
-
catch (err) {
|
|
39
|
-
console.log(chalk.yellow('Failed to generate Self-signed certificate. Using Default Certificate. Use Visual Studio to renew it.'));
|
|
40
|
-
toCopyTempKey = true;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
console.log(chalk.yellow('Using Default Certificate. Use Visual Studio to renew it.'));
|
|
45
|
-
toCopyTempKey = true;
|
|
46
|
-
}
|
|
47
|
-
if (toCopyTempKey) {
|
|
48
|
-
await generator_common_1.copyAndReplaceWithChangedCallback(path.join(srcPath, 'keys', 'MyApp_TemporaryKey.pfx'), destPath, path.join(windowsDir, newProjectName, newProjectName + '_TemporaryKey.pfx'));
|
|
49
|
-
}
|
|
50
|
-
return null;
|
|
27
|
+
function pascalCase(str) {
|
|
28
|
+
const camelCase = lodash_1.default.camelCase(str);
|
|
29
|
+
return camelCase[0].toUpperCase() + camelCase.substr(1);
|
|
30
|
+
}
|
|
31
|
+
function resolveRnwPath(subpath) {
|
|
32
|
+
return require.resolve(path_1.default.join('react-native-windows', subpath), {
|
|
33
|
+
paths: [process.cwd()],
|
|
34
|
+
});
|
|
51
35
|
}
|
|
36
|
+
// Existing high cyclomatic complexity
|
|
37
|
+
// eslint-disable-next-line complexity
|
|
52
38
|
async function copyProjectTemplateAndReplace(srcRootPath, destPath, newProjectName, namespace, options) {
|
|
53
39
|
if (!srcRootPath) {
|
|
54
|
-
throw new
|
|
40
|
+
throw new telemetry_1.CodedError('CopyProjectTemplateNoSourcePath', 'Need a path to copy from');
|
|
55
41
|
}
|
|
56
42
|
if (!destPath) {
|
|
57
|
-
throw new
|
|
43
|
+
throw new telemetry_1.CodedError('CopyProjectTemplateNoDestPath', 'Need a path to copy to');
|
|
58
44
|
}
|
|
59
45
|
if (!newProjectName) {
|
|
60
|
-
throw new
|
|
46
|
+
throw new telemetry_1.CodedError('CopyProjectTemplateNoProjectName', 'Need a project name');
|
|
61
47
|
}
|
|
62
|
-
|
|
63
|
-
generator_common_1.createDir(path.join(destPath, windowsDir, newProjectName));
|
|
64
|
-
generator_common_1.createDir(path.join(destPath, windowsDir, newProjectName, bundleDir));
|
|
65
|
-
generator_common_1.createDir(path.join(destPath, windowsDir, newProjectName, 'BundleBuilder'));
|
|
48
|
+
const projectType = options.projectType;
|
|
66
49
|
const language = options.language;
|
|
50
|
+
// React-native init only allows alphanumerics in project names, but other
|
|
51
|
+
// new project tools (like create-react-native-module) are less strict.
|
|
52
|
+
if (projectType === 'lib') {
|
|
53
|
+
newProjectName = pascalCase(newProjectName);
|
|
54
|
+
}
|
|
55
|
+
// Similar to the above, but we want to retain namespace separators
|
|
56
|
+
if (projectType === 'lib') {
|
|
57
|
+
namespace = namespace.split(/[.:]+/).map(pascalCase).join('.');
|
|
58
|
+
}
|
|
59
|
+
// Checking if we're overwriting an existing project and re-uses their projectGUID
|
|
60
|
+
const existingProjectPath = path_1.default.join(destPath, windowsDir, newProjectName, newProjectName + (language === 'cs' ? '.csproj' : '.vcxproj'));
|
|
61
|
+
let existingProjectGuid;
|
|
62
|
+
if (fs_1.default.existsSync(existingProjectPath)) {
|
|
63
|
+
console.log('Found existing project, extracting ProjectGuid.');
|
|
64
|
+
existingProjectGuid = (0, configUtils_1.findPropertyValue)((0, configUtils_1.readProjectFile)(existingProjectPath), 'ProjectGuid', existingProjectPath).replace(/[{}]/g, '');
|
|
65
|
+
}
|
|
66
|
+
(0, generator_common_1.createDir)(path_1.default.join(destPath, windowsDir));
|
|
67
|
+
(0, generator_common_1.createDir)(path_1.default.join(destPath, windowsDir, newProjectName));
|
|
68
|
+
if (projectType === 'app') {
|
|
69
|
+
(0, generator_common_1.createDir)(path_1.default.join(destPath, windowsDir, newProjectName, bundleDir));
|
|
70
|
+
(0, generator_common_1.createDir)(path_1.default.join(destPath, windowsDir, newProjectName, 'BundleBuilder'));
|
|
71
|
+
}
|
|
67
72
|
const namespaceCpp = toCppNamespace(namespace);
|
|
68
73
|
if (options.experimentalNuGetDependency) {
|
|
69
74
|
console.log('Using experimental NuGet dependency.');
|
|
70
75
|
}
|
|
71
76
|
if (options.useWinUI3) {
|
|
72
77
|
console.log('Using experimental WinUI3 dependency.');
|
|
73
|
-
fs.writeFileSync(path.join(destPath, windowsDir, 'UseWinUI3'), '');
|
|
74
78
|
}
|
|
75
79
|
const projDir = 'proj';
|
|
76
|
-
const srcPath =
|
|
77
|
-
const sharedPath =
|
|
78
|
-
const projectGuid =
|
|
79
|
-
const rnwVersion = require('
|
|
80
|
+
const srcPath = path_1.default.join(srcRootPath, `${language}-${projectType}`);
|
|
81
|
+
const sharedPath = path_1.default.join(srcRootPath, `shared-${projectType}`);
|
|
82
|
+
const projectGuid = existingProjectGuid || uuid_1.default.v4();
|
|
83
|
+
const rnwVersion = require(resolveRnwPath('package.json')).version;
|
|
80
84
|
const nugetVersion = options.nuGetTestVersion || rnwVersion;
|
|
81
|
-
const packageGuid =
|
|
82
|
-
const currentUser =
|
|
83
|
-
|
|
85
|
+
const packageGuid = uuid_1.default.v4();
|
|
86
|
+
const currentUser = username_1.default.sync(); // Gets the current username depending on the platform.
|
|
87
|
+
let mainComponentName = newProjectName;
|
|
88
|
+
const appJsonPath = await (0, find_up_1.default)('app.json', { cwd: destPath });
|
|
89
|
+
if (appJsonPath) {
|
|
90
|
+
const appJson = await fs_1.default.readJsonFile(appJsonPath);
|
|
91
|
+
mainComponentName = appJson.name;
|
|
92
|
+
}
|
|
84
93
|
const xamlNamespace = options.useWinUI3
|
|
85
94
|
? 'Microsoft.UI.Xaml'
|
|
86
95
|
: 'Windows.UI.Xaml';
|
|
87
96
|
const xamlNamespaceCpp = toCppNamespace(xamlNamespace);
|
|
88
|
-
const
|
|
89
|
-
const
|
|
90
|
-
const winui3Version = configUtils_1.findPropertyValue(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
const winuiPropsPath = resolveRnwPath('PropertySheets/WinUI.props');
|
|
98
|
+
const winuiProps = (0, configUtils_1.readProjectFile)(winuiPropsPath);
|
|
99
|
+
const winui3Version = (0, configUtils_1.findPropertyValue)(winuiProps, 'WinUI3Version', winuiPropsPath);
|
|
100
|
+
const winui2xVersion = (0, configUtils_1.findPropertyValue)(winuiProps, 'WinUI2xVersion', winuiPropsPath);
|
|
101
|
+
const jsEnginePropsPath = resolveRnwPath('PropertySheets/JSengine.props');
|
|
102
|
+
const hermesVersion = (0, configUtils_1.findPropertyValue)((0, configUtils_1.readProjectFile)(jsEnginePropsPath), 'HermesVersion', jsEnginePropsPath);
|
|
94
103
|
const csNugetPackages = [
|
|
95
104
|
{
|
|
96
105
|
id: 'Microsoft.NETCore.UniversalWindowsPlatform',
|
|
97
106
|
version: '6.2.9',
|
|
98
107
|
},
|
|
108
|
+
{
|
|
109
|
+
id: 'ReactNative.Hermes.Windows',
|
|
110
|
+
version: hermesVersion,
|
|
111
|
+
},
|
|
99
112
|
];
|
|
100
113
|
const cppNugetPackages = [
|
|
101
114
|
{
|
|
102
115
|
id: 'Microsoft.Windows.CppWinRT',
|
|
103
|
-
version: '2.0.
|
|
104
|
-
propsTopOfFile: true,
|
|
105
|
-
hasProps: true,
|
|
106
|
-
hasTargets: true,
|
|
116
|
+
version: '2.0.211028.7',
|
|
107
117
|
},
|
|
108
118
|
{
|
|
109
|
-
id:
|
|
110
|
-
version:
|
|
111
|
-
hasProps: false,
|
|
112
|
-
hasTargets: false,
|
|
119
|
+
id: 'ReactNative.Hermes.Windows',
|
|
120
|
+
version: hermesVersion,
|
|
113
121
|
},
|
|
114
122
|
];
|
|
115
123
|
if (options.experimentalNuGetDependency) {
|
|
@@ -120,23 +128,28 @@ async function copyProjectTemplateAndReplace(srcRootPath, destPath, newProjectNa
|
|
|
120
128
|
cppNugetPackages.push({
|
|
121
129
|
id: 'Microsoft.ReactNative',
|
|
122
130
|
version: nugetVersion,
|
|
123
|
-
hasProps: false,
|
|
124
|
-
hasTargets: true,
|
|
125
131
|
});
|
|
126
132
|
cppNugetPackages.push({
|
|
127
133
|
id: 'Microsoft.ReactNative.Cxx',
|
|
128
134
|
version: nugetVersion,
|
|
129
|
-
hasProps: false,
|
|
130
|
-
hasTargets: true,
|
|
131
135
|
});
|
|
132
136
|
}
|
|
137
|
+
const packagesConfigCppNugetPackages = [
|
|
138
|
+
...cppNugetPackages,
|
|
139
|
+
{
|
|
140
|
+
id: options.useWinUI3 ? 'Microsoft.WinUI' : 'Microsoft.UI.Xaml',
|
|
141
|
+
version: options.useWinUI3 ? winui3Version : winui2xVersion,
|
|
142
|
+
},
|
|
143
|
+
];
|
|
133
144
|
const templateVars = {
|
|
134
145
|
useMustache: true,
|
|
135
|
-
regExpPatternsToRemove: [
|
|
146
|
+
regExpPatternsToRemove: [],
|
|
136
147
|
name: newProjectName,
|
|
137
148
|
namespace: namespace,
|
|
138
149
|
namespaceCpp: namespaceCpp,
|
|
139
150
|
languageIsCpp: language === 'cpp',
|
|
151
|
+
rnwVersion: await (0, telemetry_1.getVersionOfNpmPackage)('react-native-windows'),
|
|
152
|
+
mainComponentName: mainComponentName,
|
|
140
153
|
// Visual Studio is very picky about the casing of the guids for projects, project references and the solution
|
|
141
154
|
// https://www.bing.com/search?q=visual+studio+project+guid+casing&cvid=311a5ad7f9fc41089507b24600d23ee7&FORM=ANAB01&PC=U531
|
|
142
155
|
// we therefore have to precariously use the right casing in the right place or risk building in VS breaking.
|
|
@@ -145,125 +158,205 @@ async function copyProjectTemplateAndReplace(srcRootPath, destPath, newProjectNa
|
|
|
145
158
|
// packaging and signing variables:
|
|
146
159
|
packageGuid: packageGuid,
|
|
147
160
|
currentUser: currentUser,
|
|
148
|
-
certificateThumbprint: certificateThumbprint,
|
|
149
161
|
useExperimentalNuget: options.experimentalNuGetDependency,
|
|
150
162
|
nuGetTestFeed: options.nuGetTestFeed,
|
|
163
|
+
nuGetADOFeed: nugetVersion.startsWith('0.0.0-'),
|
|
151
164
|
// cpp template variables
|
|
152
165
|
useWinUI3: options.useWinUI3,
|
|
166
|
+
useHermes: options.useHermes,
|
|
153
167
|
xamlNamespace: xamlNamespace,
|
|
154
168
|
xamlNamespaceCpp: xamlNamespaceCpp,
|
|
155
169
|
cppNugetPackages: cppNugetPackages,
|
|
170
|
+
packagesConfigCppNugetPackages: packagesConfigCppNugetPackages,
|
|
156
171
|
// cs template variables
|
|
157
172
|
csNugetPackages: csNugetPackages,
|
|
158
173
|
// autolinking template variables
|
|
174
|
+
autolinkPropertiesForProps: '',
|
|
159
175
|
autolinkProjectReferencesForTargets: '',
|
|
160
176
|
autolinkCsUsingNamespaces: '',
|
|
161
|
-
|
|
177
|
+
autolinkCsReactPackageProviders: '',
|
|
162
178
|
autolinkCppIncludes: '',
|
|
163
|
-
autolinkCppPackageProviders: '\n UNREFERENCED_PARAMETER(packageProviders);',
|
|
179
|
+
autolinkCppPackageProviders: '\n UNREFERENCED_PARAMETER(packageProviders);', // CODESYNC: vnext\local-cli\runWindows\utils\autolink.js
|
|
164
180
|
};
|
|
165
|
-
const commonMappings =
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
from: path.join(srcRootPath, '_gitignore'),
|
|
169
|
-
to: path.join(windowsDir, '.gitignore'),
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
from: path.join(srcRootPath, 'b_gitignore'),
|
|
173
|
-
to: path.join(windowsDir, newProjectName, '.gitignore'),
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
from: path.join(srcRootPath, 'index.windows.bundle'),
|
|
177
|
-
to: path.join(windowsDir, newProjectName, bundleDir, 'index.windows.bundle'),
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
from: path.join(srcPath, projDir, 'MyApp.sln'),
|
|
181
|
-
to: path.join(windowsDir, newProjectName + '.sln'),
|
|
182
|
-
},
|
|
183
|
-
];
|
|
184
|
-
for (const mapping of commonMappings) {
|
|
185
|
-
await generator_common_1.copyAndReplaceWithChangedCallback(mapping.from, destPath, mapping.to, templateVars, options.overwrite);
|
|
186
|
-
}
|
|
187
|
-
if (language === 'cs') {
|
|
188
|
-
const csMappings = [
|
|
181
|
+
const commonMappings = projectType === 'app'
|
|
182
|
+
? [
|
|
183
|
+
// app common mappings
|
|
189
184
|
{
|
|
190
|
-
from:
|
|
191
|
-
|
|
185
|
+
from: path_1.default.join(srcRootPath, options.useDevMode
|
|
186
|
+
? 'metro.devMode.config.js'
|
|
187
|
+
: 'metro.config.js'),
|
|
188
|
+
to: 'metro.config.js',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
from: path_1.default.join(srcRootPath, '_gitignore'),
|
|
192
|
+
to: path_1.default.join(windowsDir, '.gitignore'),
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
from: path_1.default.join(srcRootPath, 'b_gitignore'),
|
|
196
|
+
to: path_1.default.join(windowsDir, newProjectName, '.gitignore'),
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
from: path_1.default.join(srcRootPath, 'index.windows.bundle'),
|
|
200
|
+
to: path_1.default.join(windowsDir, newProjectName, bundleDir, 'index.windows.bundle'),
|
|
192
201
|
},
|
|
193
|
-
];
|
|
194
|
-
for (const mapping of csMappings) {
|
|
195
|
-
await generator_common_1.copyAndReplaceWithChangedCallback(mapping.from, destPath, mapping.to, templateVars, options.overwrite);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
const cppMappings = [
|
|
200
202
|
{
|
|
201
|
-
from:
|
|
202
|
-
to:
|
|
203
|
+
from: path_1.default.join(srcPath, projDir, 'MyApp.sln'),
|
|
204
|
+
to: path_1.default.join(windowsDir, newProjectName + '.sln'),
|
|
203
205
|
},
|
|
206
|
+
]
|
|
207
|
+
: [
|
|
208
|
+
// lib common mappings
|
|
204
209
|
{
|
|
205
|
-
from:
|
|
206
|
-
to:
|
|
210
|
+
from: path_1.default.join(srcRootPath, '_gitignore'),
|
|
211
|
+
to: path_1.default.join(windowsDir, '.gitignore'),
|
|
207
212
|
},
|
|
208
213
|
{
|
|
209
|
-
from:
|
|
210
|
-
to:
|
|
214
|
+
from: path_1.default.join(srcPath, projDir, 'MyLib.sln'),
|
|
215
|
+
to: path_1.default.join(windowsDir, newProjectName + '.sln'),
|
|
211
216
|
},
|
|
212
217
|
];
|
|
218
|
+
for (const mapping of commonMappings) {
|
|
219
|
+
await (0, generator_common_1.copyAndReplaceWithChangedCallback)(mapping.from, destPath, mapping.to, templateVars, options.overwrite);
|
|
220
|
+
}
|
|
221
|
+
if (language === 'cs') {
|
|
222
|
+
const csMappings = projectType === 'app'
|
|
223
|
+
? [
|
|
224
|
+
// cs app mappings
|
|
225
|
+
{
|
|
226
|
+
from: path_1.default.join(srcPath, projDir, 'MyApp.csproj'),
|
|
227
|
+
to: path_1.default.join(windowsDir, newProjectName, newProjectName + '.csproj'),
|
|
228
|
+
},
|
|
229
|
+
]
|
|
230
|
+
: [
|
|
231
|
+
// cs lib mappings
|
|
232
|
+
{
|
|
233
|
+
from: path_1.default.join(srcPath, projDir, 'MyLib.csproj'),
|
|
234
|
+
to: path_1.default.join(windowsDir, newProjectName, newProjectName + '.csproj'),
|
|
235
|
+
},
|
|
236
|
+
];
|
|
237
|
+
csMappings.push({
|
|
238
|
+
from: path_1.default.join(srcPath, projDir, 'Directory.Build.props'),
|
|
239
|
+
to: path_1.default.join(windowsDir, 'Directory.Build.props'),
|
|
240
|
+
});
|
|
241
|
+
for (const mapping of csMappings) {
|
|
242
|
+
await (0, generator_common_1.copyAndReplaceWithChangedCallback)(mapping.from, destPath, mapping.to, templateVars, options.overwrite);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
const cppMappings = projectType === 'app'
|
|
247
|
+
? [
|
|
248
|
+
// cpp app mappings
|
|
249
|
+
{
|
|
250
|
+
from: path_1.default.join(srcPath, projDir, 'MyApp.vcxproj'),
|
|
251
|
+
to: path_1.default.join(windowsDir, newProjectName, newProjectName + '.vcxproj'),
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
from: path_1.default.join(srcPath, projDir, 'MyApp.vcxproj.filters'),
|
|
255
|
+
to: path_1.default.join(windowsDir, newProjectName, newProjectName + '.vcxproj.filters'),
|
|
256
|
+
},
|
|
257
|
+
]
|
|
258
|
+
: [
|
|
259
|
+
// cpp lib mappings
|
|
260
|
+
{
|
|
261
|
+
from: path_1.default.join(srcPath, projDir, 'MyLib.vcxproj'),
|
|
262
|
+
to: path_1.default.join(windowsDir, newProjectName, newProjectName + '.vcxproj'),
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
from: path_1.default.join(srcPath, projDir, 'MyLib.vcxproj.filters'),
|
|
266
|
+
to: path_1.default.join(windowsDir, newProjectName, newProjectName + '.vcxproj.filters'),
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
from: path_1.default.join(srcPath, projDir, 'MyLib.def'),
|
|
270
|
+
to: path_1.default.join(windowsDir, newProjectName, newProjectName + '.def'),
|
|
271
|
+
},
|
|
272
|
+
];
|
|
213
273
|
for (const mapping of cppMappings) {
|
|
214
|
-
await generator_common_1.copyAndReplaceWithChangedCallback(mapping.from, destPath, mapping.to, templateVars, options.overwrite);
|
|
274
|
+
await (0, generator_common_1.copyAndReplaceWithChangedCallback)(mapping.from, destPath, mapping.to, templateVars, options.overwrite);
|
|
215
275
|
}
|
|
216
276
|
}
|
|
217
|
-
//
|
|
218
|
-
if (
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
277
|
+
// shared proj
|
|
278
|
+
if (fs_1.default.existsSync(path_1.default.join(sharedPath, projDir))) {
|
|
279
|
+
const sharedProjMappings = [];
|
|
280
|
+
sharedProjMappings.push({
|
|
281
|
+
from: path_1.default.join(sharedPath, projDir, 'NuGet.Config'),
|
|
282
|
+
to: path_1.default.join(windowsDir, 'NuGet.Config'),
|
|
283
|
+
});
|
|
284
|
+
if (fs_1.default.existsSync(path_1.default.join(sharedPath, projDir, 'ExperimentalFeatures.props'))) {
|
|
285
|
+
sharedProjMappings.push({
|
|
286
|
+
from: path_1.default.join(sharedPath, projDir, 'ExperimentalFeatures.props'),
|
|
287
|
+
to: path_1.default.join(windowsDir, 'ExperimentalFeatures.props'),
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
for (const mapping of sharedProjMappings) {
|
|
291
|
+
await (0, generator_common_1.copyAndReplaceWithChangedCallback)(mapping.from, destPath, mapping.to, templateVars, options.overwrite);
|
|
227
292
|
}
|
|
228
293
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
294
|
+
// shared assets
|
|
295
|
+
if (fs_1.default.existsSync(path_1.default.join(sharedPath, 'assets'))) {
|
|
296
|
+
await (0, generator_common_1.copyAndReplaceAll)(path_1.default.join(sharedPath, 'assets'), destPath, path_1.default.join(windowsDir, newProjectName, 'Assets'), templateVars, options.overwrite);
|
|
297
|
+
}
|
|
298
|
+
// shared src
|
|
299
|
+
if (fs_1.default.existsSync(path_1.default.join(sharedPath, 'src'))) {
|
|
300
|
+
await (0, generator_common_1.copyAndReplaceAll)(path_1.default.join(sharedPath, 'src'), destPath, path_1.default.join(windowsDir, newProjectName), templateVars, options.overwrite);
|
|
301
|
+
}
|
|
302
|
+
// src
|
|
303
|
+
if (fs_1.default.existsSync(path_1.default.join(srcPath, 'src'))) {
|
|
304
|
+
await (0, generator_common_1.copyAndReplaceAll)(path_1.default.join(srcPath, 'src'), destPath, path_1.default.join(windowsDir, newProjectName), templateVars, options.overwrite);
|
|
305
|
+
}
|
|
306
|
+
if (projectType === 'app') {
|
|
307
|
+
console.log(chalk_1.default.white.bold('To run your app on UWP:'));
|
|
308
|
+
console.log(chalk_1.default.white(' npx react-native run-windows'));
|
|
309
|
+
}
|
|
234
310
|
}
|
|
235
311
|
exports.copyProjectTemplateAndReplace = copyProjectTemplateAndReplace;
|
|
236
312
|
function toCppNamespace(namespace) {
|
|
237
313
|
return namespace.replace(/\./g, '::');
|
|
238
314
|
}
|
|
239
|
-
function
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
let rnPeerDependency = rnwPackageJson.peerDependencies['react-native'];
|
|
245
|
-
const depDelim = ' || ';
|
|
246
|
-
const delimIndex = rnPeerDependency.indexOf(depDelim);
|
|
247
|
-
if (delimIndex !== -1) {
|
|
248
|
-
rnPeerDependency = rnPeerDependency.slice(0, delimIndex);
|
|
315
|
+
async function installScriptsAndDependencies(options) {
|
|
316
|
+
var _a;
|
|
317
|
+
const projectPackage = await package_utils_1.WritableNpmPackage.fromPath(process.cwd());
|
|
318
|
+
if (!projectPackage) {
|
|
319
|
+
throw new Error(`The current directory '${process.cwd()}' is not the root of an npm package`);
|
|
249
320
|
}
|
|
250
|
-
|
|
251
|
-
|
|
321
|
+
await projectPackage.mergeProps({
|
|
322
|
+
scripts: { windows: 'react-native run-windows' },
|
|
323
|
+
});
|
|
324
|
+
const rnwPackage = await (0, package_utils_1.findPackage)('react-native-windows');
|
|
325
|
+
if (!rnwPackage) {
|
|
326
|
+
throw new Error('Could not locate the package for react-native-windows');
|
|
327
|
+
}
|
|
328
|
+
const rnPackage = await (0, package_utils_1.findPackage)('react-native');
|
|
329
|
+
if (!rnPackage) {
|
|
330
|
+
throw new Error('Could not locate the package for react-native');
|
|
331
|
+
}
|
|
332
|
+
// We add an exclusionList from metro config. This will be hoisted, but add
|
|
333
|
+
// an explict dep because we require it directly.
|
|
334
|
+
const cliPackage = await (0, package_utils_1.findPackage)('@react-native-community/cli', {
|
|
335
|
+
searchPath: rnPackage.path,
|
|
336
|
+
});
|
|
337
|
+
const metroConfigPackage = await (0, package_utils_1.findPackage)('metro-config', {
|
|
338
|
+
searchPath: (cliPackage === null || cliPackage === void 0 ? void 0 : cliPackage.path) || rnPackage.path,
|
|
252
339
|
});
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
340
|
+
if (metroConfigPackage) {
|
|
341
|
+
await projectPackage.mergeProps({
|
|
342
|
+
devDependencies: {
|
|
343
|
+
'metro-config': `^${metroConfigPackage.json.version}`,
|
|
344
|
+
},
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
const rnPeerDependency = rnwPackage.json.peerDependencies['react-native'];
|
|
348
|
+
if (!semver_1.default.satisfies(rnPackage.json.version, rnPeerDependency) &&
|
|
349
|
+
((_a = projectPackage.json.dependencies) === null || _a === void 0 ? void 0 : _a['react-native'])) {
|
|
350
|
+
console.log(chalk_1.default.green('Installing a compatible version of react-native:'));
|
|
351
|
+
console.log(chalk_1.default.white(` ${rnPeerDependency}`));
|
|
257
352
|
// Patch package.json to have proper react-native version and install
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
projectPackageJson.dependencies['react-native'] = rnPeerDependency;
|
|
262
|
-
fs.writeFileSync(projectPackageJsonPath, JSON.stringify(projectPackageJson, null, 2));
|
|
353
|
+
await projectPackage.mergeProps({
|
|
354
|
+
dependencies: { 'react-native': rnPeerDependency },
|
|
355
|
+
});
|
|
263
356
|
// Install dependencies using correct package manager
|
|
264
|
-
const isYarn =
|
|
265
|
-
|
|
357
|
+
const isYarn = fs_1.default.existsSync(path_1.default.join(process.cwd(), 'yarn.lock'));
|
|
358
|
+
child_process_1.default.execSync(isYarn ? 'yarn' : 'npm i', options.verbose ? { stdio: 'inherit' } : {});
|
|
266
359
|
}
|
|
267
360
|
}
|
|
268
|
-
exports.
|
|
361
|
+
exports.installScriptsAndDependencies = installScriptsAndDependencies;
|
|
269
362
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-windows/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-windows/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport chalk from 'chalk';\nimport path from 'path';\nimport username from 'username';\nimport uuid from 'uuid';\nimport childProcess from 'child_process';\nimport fs from '@react-native-windows/fs';\nimport semver from 'semver';\nimport _ from 'lodash';\nimport findUp from 'find-up';\nimport {readProjectFile, findPropertyValue} from '../config/configUtils';\n\nimport {\n createDir,\n copyAndReplaceAll,\n copyAndReplaceWithChangedCallback,\n} from '../generator-common';\nimport {GenerateOptions} from '..';\nimport {\n CodedError,\n getVersionOfNpmPackage,\n} from '@react-native-windows/telemetry';\nimport {\n findPackage,\n WritableNpmPackage,\n} from '@react-native-windows/package-utils';\n\nconst windowsDir = 'windows';\nconst bundleDir = 'Bundle';\n\n/**\n * This represents the data to insert nuget packages\n */\ninterface NugetPackage {\n id: string;\n version: string;\n}\n\nfunction pascalCase(str: string) {\n const camelCase = _.camelCase(str);\n return camelCase[0].toUpperCase() + camelCase.substr(1);\n}\n\nfunction resolveRnwPath(subpath: string): string {\n return require.resolve(path.join('react-native-windows', subpath), {\n paths: [process.cwd()],\n });\n}\n\n// Existing high cyclomatic complexity\n// eslint-disable-next-line complexity\nexport async function copyProjectTemplateAndReplace(\n srcRootPath: string,\n destPath: string,\n newProjectName: string,\n namespace: string,\n options: GenerateOptions,\n) {\n if (!srcRootPath) {\n throw new CodedError(\n 'CopyProjectTemplateNoSourcePath',\n 'Need a path to copy from',\n );\n }\n\n if (!destPath) {\n throw new CodedError(\n 'CopyProjectTemplateNoDestPath',\n 'Need a path to copy to',\n );\n }\n\n if (!newProjectName) {\n throw new CodedError(\n 'CopyProjectTemplateNoProjectName',\n 'Need a project name',\n );\n }\n\n const projectType = options.projectType;\n const language = options.language;\n\n // React-native init only allows alphanumerics in project names, but other\n // new project tools (like create-react-native-module) are less strict.\n if (projectType === 'lib') {\n newProjectName = pascalCase(newProjectName);\n }\n\n // Similar to the above, but we want to retain namespace separators\n if (projectType === 'lib') {\n namespace = namespace.split(/[.:]+/).map(pascalCase).join('.');\n }\n\n // Checking if we're overwriting an existing project and re-uses their projectGUID\n const existingProjectPath = path.join(\n destPath,\n windowsDir,\n newProjectName,\n newProjectName + (language === 'cs' ? '.csproj' : '.vcxproj'),\n );\n let existingProjectGuid: string | undefined;\n if (fs.existsSync(existingProjectPath)) {\n console.log('Found existing project, extracting ProjectGuid.');\n existingProjectGuid = findPropertyValue(\n readProjectFile(existingProjectPath),\n 'ProjectGuid',\n existingProjectPath,\n ).replace(/[{}]/g, '');\n }\n\n createDir(path.join(destPath, windowsDir));\n createDir(path.join(destPath, windowsDir, newProjectName));\n\n if (projectType === 'app') {\n createDir(path.join(destPath, windowsDir, newProjectName, bundleDir));\n createDir(path.join(destPath, windowsDir, newProjectName, 'BundleBuilder'));\n }\n\n const namespaceCpp = toCppNamespace(namespace);\n if (options.experimentalNuGetDependency) {\n console.log('Using experimental NuGet dependency.');\n }\n if (options.useWinUI3) {\n console.log('Using experimental WinUI3 dependency.');\n }\n\n const projDir = 'proj';\n const srcPath = path.join(srcRootPath, `${language}-${projectType}`);\n const sharedPath = path.join(srcRootPath, `shared-${projectType}`);\n const projectGuid = existingProjectGuid || uuid.v4();\n const rnwVersion = require(resolveRnwPath('package.json')).version;\n const nugetVersion = options.nuGetTestVersion || rnwVersion;\n const packageGuid = uuid.v4();\n const currentUser = username.sync()!; // Gets the current username depending on the platform.\n\n let mainComponentName = newProjectName;\n const appJsonPath = await findUp('app.json', {cwd: destPath});\n if (appJsonPath) {\n const appJson = await fs.readJsonFile<{name: string}>(appJsonPath);\n mainComponentName = appJson.name;\n }\n\n const xamlNamespace = options.useWinUI3\n ? 'Microsoft.UI.Xaml'\n : 'Windows.UI.Xaml';\n const xamlNamespaceCpp = toCppNamespace(xamlNamespace);\n\n const winuiPropsPath = resolveRnwPath('PropertySheets/WinUI.props');\n const winuiProps = readProjectFile(winuiPropsPath);\n const winui3Version = findPropertyValue(\n winuiProps,\n 'WinUI3Version',\n winuiPropsPath,\n );\n const winui2xVersion = findPropertyValue(\n winuiProps,\n 'WinUI2xVersion',\n winuiPropsPath,\n );\n\n const jsEnginePropsPath = resolveRnwPath('PropertySheets/JSengine.props');\n const hermesVersion = findPropertyValue(\n readProjectFile(jsEnginePropsPath),\n 'HermesVersion',\n jsEnginePropsPath,\n );\n\n const csNugetPackages: NugetPackage[] = [\n {\n id: 'Microsoft.NETCore.UniversalWindowsPlatform',\n version: '6.2.9',\n },\n {\n id: 'ReactNative.Hermes.Windows',\n version: hermesVersion,\n },\n ];\n\n const cppNugetPackages: NugetPackage[] = [\n {\n id: 'Microsoft.Windows.CppWinRT',\n version: '2.0.211028.7',\n },\n {\n id: 'ReactNative.Hermes.Windows',\n version: hermesVersion,\n },\n ];\n\n if (options.experimentalNuGetDependency) {\n csNugetPackages.push({\n id: 'Microsoft.ReactNative.Managed',\n version: nugetVersion,\n });\n\n cppNugetPackages.push({\n id: 'Microsoft.ReactNative',\n version: nugetVersion,\n });\n\n cppNugetPackages.push({\n id: 'Microsoft.ReactNative.Cxx',\n version: nugetVersion,\n });\n }\n\n const packagesConfigCppNugetPackages = [\n ...cppNugetPackages,\n {\n id: options.useWinUI3 ? 'Microsoft.WinUI' : 'Microsoft.UI.Xaml',\n version: options.useWinUI3 ? winui3Version : winui2xVersion,\n },\n ];\n\n const templateVars: Record<string, any> = {\n useMustache: true,\n regExpPatternsToRemove: [],\n\n name: newProjectName,\n namespace: namespace,\n namespaceCpp: namespaceCpp,\n languageIsCpp: language === 'cpp',\n\n rnwVersion: await getVersionOfNpmPackage('react-native-windows'),\n\n mainComponentName: mainComponentName,\n\n // Visual Studio is very picky about the casing of the guids for projects, project references and the solution\n // https://www.bing.com/search?q=visual+studio+project+guid+casing&cvid=311a5ad7f9fc41089507b24600d23ee7&FORM=ANAB01&PC=U531\n // we therefore have to precariously use the right casing in the right place or risk building in VS breaking.\n projectGuidLower: `{${projectGuid.toLowerCase()}}`,\n projectGuidUpper: `{${projectGuid.toUpperCase()}}`,\n\n // packaging and signing variables:\n packageGuid: packageGuid,\n currentUser: currentUser,\n\n useExperimentalNuget: options.experimentalNuGetDependency,\n nuGetTestFeed: options.nuGetTestFeed,\n nuGetADOFeed: nugetVersion.startsWith('0.0.0-'),\n\n // cpp template variables\n useWinUI3: options.useWinUI3,\n useHermes: options.useHermes,\n xamlNamespace: xamlNamespace,\n xamlNamespaceCpp: xamlNamespaceCpp,\n cppNugetPackages: cppNugetPackages,\n packagesConfigCppNugetPackages: packagesConfigCppNugetPackages,\n\n // cs template variables\n csNugetPackages: csNugetPackages,\n\n // autolinking template variables\n autolinkPropertiesForProps: '',\n autolinkProjectReferencesForTargets: '',\n autolinkCsUsingNamespaces: '',\n autolinkCsReactPackageProviders: '',\n autolinkCppIncludes: '',\n autolinkCppPackageProviders:\n '\\n UNREFERENCED_PARAMETER(packageProviders);', // CODESYNC: vnext\\local-cli\\runWindows\\utils\\autolink.js\n };\n\n const commonMappings =\n projectType === 'app'\n ? [\n // app common mappings\n {\n from: path.join(\n srcRootPath,\n options.useDevMode\n ? 'metro.devMode.config.js'\n : 'metro.config.js',\n ),\n to: 'metro.config.js',\n },\n {\n from: path.join(srcRootPath, '_gitignore'),\n to: path.join(windowsDir, '.gitignore'),\n },\n {\n from: path.join(srcRootPath, 'b_gitignore'),\n to: path.join(windowsDir, newProjectName, '.gitignore'),\n },\n {\n from: path.join(srcRootPath, 'index.windows.bundle'),\n to: path.join(\n windowsDir,\n newProjectName,\n bundleDir,\n 'index.windows.bundle',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyApp.sln'),\n to: path.join(windowsDir, newProjectName + '.sln'),\n },\n ]\n : [\n // lib common mappings\n {\n from: path.join(srcRootPath, '_gitignore'),\n to: path.join(windowsDir, '.gitignore'),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.sln'),\n to: path.join(windowsDir, newProjectName + '.sln'),\n },\n ];\n\n for (const mapping of commonMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n\n if (language === 'cs') {\n const csMappings =\n projectType === 'app'\n ? [\n // cs app mappings\n {\n from: path.join(srcPath, projDir, 'MyApp.csproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.csproj',\n ),\n },\n ]\n : [\n // cs lib mappings\n {\n from: path.join(srcPath, projDir, 'MyLib.csproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.csproj',\n ),\n },\n ];\n\n csMappings.push({\n from: path.join(srcPath, projDir, 'Directory.Build.props'),\n to: path.join(windowsDir, 'Directory.Build.props'),\n });\n\n for (const mapping of csMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n } else {\n const cppMappings =\n projectType === 'app'\n ? [\n // cpp app mappings\n {\n from: path.join(srcPath, projDir, 'MyApp.vcxproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyApp.vcxproj.filters'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj.filters',\n ),\n },\n ]\n : [\n // cpp lib mappings\n {\n from: path.join(srcPath, projDir, 'MyLib.vcxproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.vcxproj.filters'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj.filters',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.def'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.def',\n ),\n },\n ];\n\n for (const mapping of cppMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n }\n\n // shared proj\n if (fs.existsSync(path.join(sharedPath, projDir))) {\n const sharedProjMappings = [];\n\n sharedProjMappings.push({\n from: path.join(sharedPath, projDir, 'NuGet.Config'),\n to: path.join(windowsDir, 'NuGet.Config'),\n });\n\n if (\n fs.existsSync(\n path.join(sharedPath, projDir, 'ExperimentalFeatures.props'),\n )\n ) {\n sharedProjMappings.push({\n from: path.join(sharedPath, projDir, 'ExperimentalFeatures.props'),\n to: path.join(windowsDir, 'ExperimentalFeatures.props'),\n });\n }\n\n for (const mapping of sharedProjMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n }\n\n // shared assets\n if (fs.existsSync(path.join(sharedPath, 'assets'))) {\n await copyAndReplaceAll(\n path.join(sharedPath, 'assets'),\n destPath,\n path.join(windowsDir, newProjectName, 'Assets'),\n templateVars,\n options.overwrite,\n );\n }\n\n // shared src\n if (fs.existsSync(path.join(sharedPath, 'src'))) {\n await copyAndReplaceAll(\n path.join(sharedPath, 'src'),\n destPath,\n path.join(windowsDir, newProjectName),\n templateVars,\n options.overwrite,\n );\n }\n\n // src\n if (fs.existsSync(path.join(srcPath, 'src'))) {\n await copyAndReplaceAll(\n path.join(srcPath, 'src'),\n destPath,\n path.join(windowsDir, newProjectName),\n templateVars,\n options.overwrite,\n );\n }\n\n if (projectType === 'app') {\n console.log(chalk.white.bold('To run your app on UWP:'));\n console.log(chalk.white(' npx react-native run-windows'));\n }\n}\n\nfunction toCppNamespace(namespace: string) {\n return namespace.replace(/\\./g, '::');\n}\n\nexport async function installScriptsAndDependencies(options: {\n verbose: boolean;\n}) {\n const projectPackage = await WritableNpmPackage.fromPath(process.cwd());\n if (!projectPackage) {\n throw new Error(\n `The current directory '${process.cwd()}' is not the root of an npm package`,\n );\n }\n\n await projectPackage.mergeProps({\n scripts: {windows: 'react-native run-windows'},\n });\n\n const rnwPackage = await findPackage('react-native-windows');\n if (!rnwPackage) {\n throw new Error('Could not locate the package for react-native-windows');\n }\n\n const rnPackage = await findPackage('react-native');\n if (!rnPackage) {\n throw new Error('Could not locate the package for react-native');\n }\n\n // We add an exclusionList from metro config. This will be hoisted, but add\n // an explict dep because we require it directly.\n const cliPackage = await findPackage('@react-native-community/cli', {\n searchPath: rnPackage.path,\n });\n const metroConfigPackage = await findPackage('metro-config', {\n searchPath: cliPackage?.path || rnPackage.path,\n });\n\n if (metroConfigPackage) {\n await projectPackage.mergeProps({\n devDependencies: {\n 'metro-config': `^${metroConfigPackage.json.version}`,\n },\n });\n }\n\n const rnPeerDependency = rnwPackage.json.peerDependencies['react-native'];\n\n if (\n !semver.satisfies(rnPackage.json.version, rnPeerDependency) &&\n projectPackage.json.dependencies?.['react-native']\n ) {\n console.log(\n chalk.green('Installing a compatible version of react-native:'),\n );\n console.log(chalk.white(` ${rnPeerDependency}`));\n\n // Patch package.json to have proper react-native version and install\n await projectPackage.mergeProps({\n dependencies: {'react-native': rnPeerDependency},\n });\n\n // Install dependencies using correct package manager\n const isYarn = fs.existsSync(path.join(process.cwd(), 'yarn.lock'));\n childProcess.execSync(\n isYarn ? 'yarn' : 'npm i',\n options.verbose ? {stdio: 'inherit'} : {},\n );\n }\n}\n"]}
|