Add Capacitor support (#483)

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
This commit is contained in:
Will Chen
2025-06-24 14:35:05 -07:00
committed by GitHub
parent 4ec35f1d6e
commit 47f3ec460a
12 changed files with 8432 additions and 4 deletions

View File

@@ -0,0 +1,57 @@
import { spawn } from "child_process";
import log from "electron-log/main";
const logger = log.scope("simpleSpawn");
export async function simpleSpawn({
command,
cwd,
successMessage,
errorPrefix,
}: {
command: string;
cwd: string;
successMessage: string;
errorPrefix: string;
}): Promise<void> {
return new Promise<void>((resolve, reject) => {
logger.info(`Running: ${command}`);
const process = spawn(command, {
cwd,
shell: true,
stdio: "pipe",
});
let stdout = "";
let stderr = "";
process.stdout?.on("data", (data) => {
const output = data.toString();
stdout += output;
logger.info(output);
});
process.stderr?.on("data", (data) => {
const output = data.toString();
stderr += output;
logger.error(output);
});
process.on("close", (code) => {
if (code === 0) {
logger.info(successMessage);
resolve();
} else {
logger.error(`${errorPrefix}, exit code ${code}`);
const errorMessage = `${errorPrefix} (exit code ${code})\n\nSTDOUT:\n${stdout}\n\nSTDERR:\n${stderr}`;
reject(new Error(errorMessage));
}
});
process.on("error", (err) => {
logger.error(`Failed to spawn command: ${command}`, err);
const errorMessage = `Failed to spawn command: ${err.message}\n\nSTDOUT:\n${stdout}\n\nSTDERR:\n${stderr}`;
reject(new Error(errorMessage));
});
});
}