import { parseArgs } from "node:util"; import { runQaDockerUpCommand } from "../extensions/qa-lab/src/cli.runtime.ts"; const { values } = parseArgs({ options: { help: { type: "boolean", short: "h" }, "output-dir": { type: "string" }, "gateway-port": { type: "string" }, "qa-lab-port": { type: "string" }, "provider-base-url": { type: "string" }, image: { type: "string" }, "use-prebuilt-image": { type: "boolean" }, "bind-ui-dist": { type: "boolean" }, "skip-ui-build": { type: "boolean" }, }, allowPositionals: false, }); if (values.help) { process.stdout.write(`Usage: pnpm qa:lab:up [options] Options: --output-dir --gateway-port --qa-lab-port --provider-base-url --image --use-prebuilt-image --bind-ui-dist --skip-ui-build -h, --help `); process.exit(0); } const parsePort = (value: string | undefined) => { if (!value) { return undefined; } const parsed = Number(value); if (!Number.isFinite(parsed)) { throw new Error(`Invalid port: ${value}`); } return parsed; }; await runQaDockerUpCommand({ outputDir: values["output-dir"], gatewayPort: parsePort(values["gateway-port"]), qaLabPort: parsePort(values["qa-lab-port"]), providerBaseUrl: values["provider-base-url"], image: values.image, usePrebuiltImage: values["use-prebuilt-image"], bindUiDist: values["bind-ui-dist"], skipUiBuild: values["skip-ui-build"], });