@codemoreira/esad 1.4.6-4 → 1.4.6-5
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/bin/esad.js +29 -2
- package/package.json +1 -1
- package/src/cli/commands/build.js +2 -1
- package/src/cli/commands/dev.js +2 -1
- package/src/cli/commands/host.js +14 -10
package/bin/esad.js
CHANGED
|
@@ -36,13 +36,40 @@ program
|
|
|
36
36
|
|
|
37
37
|
// --- COMMAND: esad host ---
|
|
38
38
|
program
|
|
39
|
-
.command('host
|
|
40
|
-
.description('Manage the Host App (
|
|
39
|
+
.command('host [subcommand]')
|
|
40
|
+
.description('Manage the Host App (subcommands: dev, android, ios)')
|
|
41
41
|
.action(async (sub) => {
|
|
42
42
|
await hostCommand(sub);
|
|
43
43
|
process.exit(0);
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
+
// --- COMMAND: esad android ---
|
|
47
|
+
program
|
|
48
|
+
.command('android')
|
|
49
|
+
.description('Run the Host App on Android')
|
|
50
|
+
.action(async () => {
|
|
51
|
+
await hostCommand('android');
|
|
52
|
+
process.exit(0);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// --- COMMAND: esad ios ---
|
|
56
|
+
program
|
|
57
|
+
.command('ios')
|
|
58
|
+
.description('Run the Host App on iOS')
|
|
59
|
+
.action(async () => {
|
|
60
|
+
await hostCommand('ios');
|
|
61
|
+
process.exit(0);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// --- COMMAND: esad start ---
|
|
65
|
+
program
|
|
66
|
+
.command('start')
|
|
67
|
+
.description('Alias for esad host dev')
|
|
68
|
+
.action(async () => {
|
|
69
|
+
await hostCommand('dev');
|
|
70
|
+
process.exit(0);
|
|
71
|
+
});
|
|
72
|
+
|
|
46
73
|
// --- COMMAND: esad create-module ---
|
|
47
74
|
program
|
|
48
75
|
.command('create-module <module-name>')
|
package/package.json
CHANGED
|
@@ -52,7 +52,8 @@ module.exports = async (options) => {
|
|
|
52
52
|
'--platform', platform,
|
|
53
53
|
'--dev', 'false',
|
|
54
54
|
'--bundle-output', bundleOutput,
|
|
55
|
-
'--assets-dest', path.dirname(bundleOutput)
|
|
55
|
+
'--assets-dest', path.dirname(bundleOutput),
|
|
56
|
+
'--reset-cache'
|
|
56
57
|
], cwd);
|
|
57
58
|
|
|
58
59
|
console.log(chalk.green(`\n✅ Build complete! Assets generated in build/ directory.`));
|
package/src/cli/commands/dev.js
CHANGED
|
@@ -84,7 +84,8 @@ module.exports = async (options) => {
|
|
|
84
84
|
'--platform', platform,
|
|
85
85
|
'--dev', 'false',
|
|
86
86
|
'--bundle-output', bundleOutput,
|
|
87
|
-
'--assets-dest', path.dirname(bundleOutput)
|
|
87
|
+
'--assets-dest', path.dirname(bundleOutput),
|
|
88
|
+
'--reset-cache'
|
|
88
89
|
], cwd);
|
|
89
90
|
} catch (err) {
|
|
90
91
|
console.error(chalk.red(`❌ Build failed.`));
|
package/src/cli/commands/host.js
CHANGED
|
@@ -7,12 +7,7 @@ const readline = require('readline');
|
|
|
7
7
|
const { getWorkspaceConfig } = require('../utils/config');
|
|
8
8
|
const { prepareNative } = require('../utils/scaffold');
|
|
9
9
|
|
|
10
|
-
const
|
|
11
|
-
input: process.stdin,
|
|
12
|
-
output: process.stdout
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
const askQuestion = (query) => new Promise((resolve) => rl.question(query, resolve));
|
|
10
|
+
const askQuestion = (query, rl) => new Promise((resolve) => rl.question(query, resolve));
|
|
16
11
|
|
|
17
12
|
/**
|
|
18
13
|
* Check if a port is in use
|
|
@@ -28,6 +23,12 @@ const isPortInUse = (port) => new Promise((resolve) => {
|
|
|
28
23
|
});
|
|
29
24
|
|
|
30
25
|
module.exports = async (subcommand) => {
|
|
26
|
+
const rl = readline.createInterface({
|
|
27
|
+
input: process.stdin,
|
|
28
|
+
output: process.stdout
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
if (!subcommand) subcommand = 'dev';
|
|
31
32
|
let cwd = process.cwd();
|
|
32
33
|
let pkgPath = path.join(cwd, 'package.json');
|
|
33
34
|
|
|
@@ -64,7 +65,7 @@ module.exports = async (subcommand) => {
|
|
|
64
65
|
console.log(`[b] Bundler Only`);
|
|
65
66
|
console.log(`[c] Cancel`);
|
|
66
67
|
|
|
67
|
-
const choice = (await askQuestion(`\nSelect platform:
|
|
68
|
+
const choice = (await askQuestion(`\nSelect platform: `, rl)).toLowerCase();
|
|
68
69
|
|
|
69
70
|
if (choice === 'c') {
|
|
70
71
|
console.log(`\n❌ Cancelled.`);
|
|
@@ -86,13 +87,13 @@ module.exports = async (subcommand) => {
|
|
|
86
87
|
if (shouldStartBundler && choice !== 'c') {
|
|
87
88
|
console.log(`\n🛠️ Starting Rspack Bundler in a new window...`);
|
|
88
89
|
if (process.platform === 'win32') {
|
|
89
|
-
spawn('cmd', ['/c', 'start', '/D', cwd, 'npx', 'react-native', '
|
|
90
|
+
spawn('cmd', ['/c', 'start', '/D', cwd, 'npx', 'react-native', 'start', '--reset-cache'], {
|
|
90
91
|
detached: true,
|
|
91
92
|
stdio: 'ignore',
|
|
92
93
|
shell: true
|
|
93
94
|
}).unref();
|
|
94
95
|
} else {
|
|
95
|
-
spawn('npx', ['react-native', '
|
|
96
|
+
spawn('npx', ['react-native', 'start', '--reset-cache'], {
|
|
96
97
|
cwd,
|
|
97
98
|
detached: true,
|
|
98
99
|
stdio: 'inherit',
|
|
@@ -139,13 +140,16 @@ module.exports = async (subcommand) => {
|
|
|
139
140
|
// Other subcommands (android, ios directly)
|
|
140
141
|
try {
|
|
141
142
|
if (subcommand === 'android') {
|
|
143
|
+
console.log(`🤖 Compiling and launching on Android...`);
|
|
142
144
|
await runProcess('npx', ['expo', 'run:android', '--no-bundler'], cwd);
|
|
143
145
|
} else if (subcommand === 'ios') {
|
|
146
|
+
console.log(`🍎 Compiling and launching on iOS...`);
|
|
144
147
|
await runProcess('npx', ['expo', 'run:ios', '--no-bundler'], cwd);
|
|
145
148
|
}
|
|
146
149
|
} catch (err) {
|
|
147
150
|
console.error(`❌ Error running host command: ${err.message}`);
|
|
151
|
+
} finally {
|
|
152
|
+
rl.close();
|
|
148
153
|
}
|
|
149
|
-
rl.close();
|
|
150
154
|
}
|
|
151
155
|
};
|