@rock-js/tools 0.12.0 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/lib/hermes.js +56 -12
- package/dist/src/lib/hermes.js.map +1 -1
- package/package.json +2 -2
package/dist/src/lib/hermes.js
CHANGED
|
@@ -11,6 +11,40 @@ function getReactNativePackagePath() {
|
|
|
11
11
|
const input = require.resolve('react-native', { paths: [root] });
|
|
12
12
|
return path.dirname(input);
|
|
13
13
|
}
|
|
14
|
+
function getHermesCompilerPackagePath() {
|
|
15
|
+
const require = createRequire(import.meta.url);
|
|
16
|
+
try {
|
|
17
|
+
const hermesCompilerPath = require.resolve('hermes-compiler/package.json', {
|
|
18
|
+
paths: [getReactNativePackagePath()],
|
|
19
|
+
});
|
|
20
|
+
return path.dirname(hermesCompilerPath);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Returns the Hermes OS binary folder name for the current platform.
|
|
28
|
+
*/
|
|
29
|
+
function getHermesOSBin() {
|
|
30
|
+
const os = getLocalOS();
|
|
31
|
+
switch (os) {
|
|
32
|
+
case 'windows':
|
|
33
|
+
return 'win64-bin';
|
|
34
|
+
case 'macos':
|
|
35
|
+
return 'osx-bin';
|
|
36
|
+
default:
|
|
37
|
+
return 'linux64-bin';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Returns the Hermes executable name for the current platform.
|
|
42
|
+
*/
|
|
43
|
+
function getHermesOSExe() {
|
|
44
|
+
const hermesExecutableName = 'hermesc';
|
|
45
|
+
const os = getLocalOS();
|
|
46
|
+
return os === 'windows' ? `${hermesExecutableName}.exe` : hermesExecutableName;
|
|
47
|
+
}
|
|
14
48
|
/**
|
|
15
49
|
* Returns the path to the react-native compose-source-maps.js script.
|
|
16
50
|
*/
|
|
@@ -59,7 +93,7 @@ function injectDebugId(sourceMapPath, debugId) {
|
|
|
59
93
|
export async function runHermes({ bundleOutputPath, sourcemapOutputPath, }) {
|
|
60
94
|
const hermescPath = getHermescPath();
|
|
61
95
|
if (!hermescPath) {
|
|
62
|
-
throw new RockError('Hermesc binary not found.
|
|
96
|
+
throw new RockError('Hermesc binary not found. Please ensure React Native is installed correctly or use `--no-hermes` flag to disable Hermes.');
|
|
63
97
|
}
|
|
64
98
|
// Output will be .hbc file
|
|
65
99
|
const hbcOutputPath = `${bundleOutputPath}.hbc`;
|
|
@@ -119,23 +153,33 @@ export async function runHermes({ bundleOutputPath, sourcemapOutputPath, }) {
|
|
|
119
153
|
}
|
|
120
154
|
}
|
|
121
155
|
/**
|
|
122
|
-
* Get `hermesc` binary path
|
|
156
|
+
* Get `hermesc` binary path with fallback strategy:
|
|
157
|
+
* 1. hermes-compiler package (RN 0.83+)
|
|
158
|
+
* 2. react-native bundled hermesc (RN 0.69-0.82)
|
|
159
|
+
* 3. Local build from source
|
|
160
|
+
*
|
|
123
161
|
* Based on: https://github.com/facebook/react-native/blob/f2c78af56ae492f49b90d0af61ca9bf4d124fca0/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/PathUtils.kt#L48-L55
|
|
124
162
|
*/
|
|
125
163
|
function getHermescPath() {
|
|
164
|
+
// 1. Check hermes-compiler package (RN 0.83+)
|
|
165
|
+
const hermesCompilerPath = getHermesCompilerPackagePath();
|
|
166
|
+
if (hermesCompilerPath) {
|
|
167
|
+
const hermesCompilerBinPath = path.join(hermesCompilerPath, 'hermesc', getHermesOSBin(), getHermesOSExe());
|
|
168
|
+
if (fs.existsSync(hermesCompilerBinPath)) {
|
|
169
|
+
return hermesCompilerBinPath;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// 2. Check bundled hermesc in react-native/sdks/hermesc (RN 0.69-0.82)
|
|
126
173
|
const reactNativePath = getReactNativePackagePath();
|
|
127
|
-
|
|
128
|
-
|
|
174
|
+
const bundledHermesPath = path.join(reactNativePath, 'sdks', 'hermesc', getHermesOSBin(), getHermesOSExe());
|
|
175
|
+
if (fs.existsSync(bundledHermesPath)) {
|
|
176
|
+
return bundledHermesPath;
|
|
177
|
+
}
|
|
178
|
+
// 3. Check local build from source (fallback)
|
|
179
|
+
const localBuildPath = path.join(reactNativePath, 'sdks', 'hermes', 'build', 'bin', 'hermesc');
|
|
129
180
|
if (fs.existsSync(localBuildPath)) {
|
|
130
181
|
return localBuildPath;
|
|
131
182
|
}
|
|
132
|
-
|
|
133
|
-
const prebuildPaths = {
|
|
134
|
-
macos: `${reactNativePath}/sdks/hermesc/osx-bin/hermesc`,
|
|
135
|
-
linux: `${reactNativePath}/sdks/hermesc/linux64-bin/hermesc`,
|
|
136
|
-
windows: `${reactNativePath}/sdks/hermesc/win64-bin/hermesc.exe`,
|
|
137
|
-
};
|
|
138
|
-
const os = getLocalOS();
|
|
139
|
-
return prebuildPaths[os];
|
|
183
|
+
return null;
|
|
140
184
|
}
|
|
141
185
|
//# sourceMappingURL=hermes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../../src/lib/hermes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,SAAS,yBAAyB;IAChC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB;IAC/B,MAAM,aAAa,GAAG,yBAAyB,EAAE,CAAC;IAClD,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CACrC,aAAa,EACb,SAAS,EACT,wBAAwB,CACzB,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CACjB,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,aAAqB;IAC3C,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,aAAqB,EAAE,OAAe;IAC3D,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QAC5B,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,SAAS,CACjB,4CAA4C,aAAa,EAAE,CAC5D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAC9B,gBAAgB,EAChB,mBAAmB,GAIpB;IACC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,
|
|
1
|
+
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../../src/lib/hermes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rock-js/tools",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.2",
|
|
4
4
|
"description": "Internal core utilities for Rock",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"tslib": "^2.3.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@rock-js/test-helpers": "^0.12.
|
|
33
|
+
"@rock-js/test-helpers": "^0.12.2",
|
|
34
34
|
"@types/adm-zip": "^0.5.7"
|
|
35
35
|
},
|
|
36
36
|
"publishConfig": {
|