diff --git a/packages/safe-chain/src/packagemanager/pip/runPipCommand.js b/packages/safe-chain/src/packagemanager/pip/runPipCommand.js index 18c8f99..99ee97c 100644 --- a/packages/safe-chain/src/packagemanager/pip/runPipCommand.js +++ b/packages/safe-chain/src/packagemanager/pip/runPipCommand.js @@ -3,9 +3,13 @@ import { safeSpawn } from "../../utils/safeSpawn.js"; import { mergeSafeChainProxyEnvironmentVariables } from "../../registryProxy/registryProxy.js"; import { getCombinedCaBundlePath } from "../../registryProxy/certBundle.js"; +/** + * @param {string} command + * @param {string[]} args + */ export async function runPip(command, args) { try { - const env = mergeSafeChainProxyEnvironmentVariables(process.env); + const env = mergeSafeChainProxyEnvironmentVariables(/** @type {Record} */ (process.env)); // Always provide Python with a complete CA bundle (Safe Chain CA + Mozilla + Node built-in roots) // so that any network request made by pip, including those outside explicit CLI args, @@ -20,10 +24,11 @@ export async function runPip(command, args) { }); return { status: result.status }; } catch (error) { - if (error.status) { - return { status: error.status }; + if (error && typeof error === "object" && "status" in error) { + return { status: /** @type {any} */ (error).status }; } else { - ui.writeError("Error executing command:", error.message); + const message = error && typeof error === "object" && "message" in error ? /** @type {any} */ (error).message : String(error); + ui.writeError("Error executing command:", message); return { status: 1 }; } }