codeplay-common 4.10.8 → 4.10.9

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.
@@ -38,7 +38,9 @@ function updateBuildScripts(scripts) {
38
38
  next['ionic:build'] = next['ionic:build'] || 'npm run build';
39
39
  next['ionic:serve'] = next['ionic:serve'] || 'cross-env NODE_ENV=development vite';
40
40
  next['baseline-profile:setup'] = next['baseline-profile:setup'] || 'node scripts-common/setup-baseline-profile.js';
41
- next['baseline-profile:generate'] = next['baseline-profile:generate'] || 'cd android && gradlew.bat :app:generateBaselineProfile --console=plain';
41
+ if (!next['baseline-profile:generate'] || next['baseline-profile:generate'] === 'cd android && gradlew.bat :app:generateBaselineProfile --console=plain') {
42
+ next['baseline-profile:generate'] = 'node scripts-common/generate-baseline-profile.js';
43
+ }
42
44
  next.release = next.release || 'node finalrelease';
43
45
  return next;
44
46
  }
@@ -0,0 +1,42 @@
1
+ const { execFileSync, spawnSync } = require('child_process');
2
+ const path = require('path');
3
+
4
+ function main() {
5
+ const devices = execFileSync('adb', ['devices'], { encoding: 'utf8' })
6
+ .split(/\r?\n/)
7
+ .map(line => line.match(/^(.+?)\tdevice\s*$/))
8
+ .filter(Boolean)
9
+ .map(match => match[1]);
10
+ const requestedSerial = process.env.ANDROID_SERIAL?.trim();
11
+ if (requestedSerial?.includes(',')) {
12
+ throw new Error('Set ANDROID_SERIAL to one device connection for Baseline Profile generation.');
13
+ }
14
+ const serial = requestedSerial || devices[0];
15
+ if (!serial || !devices.includes(serial)) {
16
+ throw new Error(requestedSerial
17
+ ? `ADB device is not online: ${requestedSerial}`
18
+ : 'No online ADB device. Connect an Android device before generating a Baseline Profile.');
19
+ }
20
+
21
+ console.log(`Generating Baseline Profile using one ADB connection: ${serial}`);
22
+ const args = [':app:generateBaselineProfile', '--console=plain'];
23
+ const result = spawnSync(
24
+ process.platform === 'win32' ? 'cmd.exe' : './gradlew',
25
+ process.platform === 'win32' ? ['/d', '/s', '/c', `gradlew.bat ${args.join(' ')}`] : args,
26
+ {
27
+ cwd: path.resolve(__dirname, '..', 'android'),
28
+ env: { ...process.env, ANDROID_SERIAL: serial },
29
+ stdio: 'inherit',
30
+ }
31
+ );
32
+ if (result.error) throw result.error;
33
+ if (result.signal) throw new Error(`Baseline Profile generation stopped by ${result.signal}.`);
34
+ process.exitCode = result.status ?? 1;
35
+ }
36
+
37
+ try {
38
+ main();
39
+ } catch (error) {
40
+ console.error(`Baseline Profile generation failed: ${error.message}`);
41
+ process.exitCode = 1;
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeplay-common",
3
- "version": "4.10.8",
3
+ "version": "4.10.9",
4
4
  "description": "Common build scripts and files",
5
5
  "scripts": {
6
6
  "postinstall": "node scripts/sync-files.js",