@rock-js/tools 0.12.1 → 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.
@@ -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. Use `--no-hermes` flag to disable Hermes.');
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
- // Local build from source: node_modules/react-native/sdks/hermes/build/bin/hermesc
128
- const localBuildPath = path.join(reactNativePath, 'sdks/hermes/build/bin/hermesc');
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
- // Precompiled binaries: node_modules/react-native/sdks/hermesc/%OS-BIN%/hermesc
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":"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"}
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.1",
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.1",
33
+ "@rock-js/test-helpers": "^0.12.2",
34
34
  "@types/adm-zip": "^0.5.7"
35
35
  },
36
36
  "publishConfig": {