feat: route mac control via nodes
This commit is contained in:
@@ -782,6 +782,7 @@ export function registerNodesCli(program: Command) {
|
||||
.option("--screen <index>", "Screen index (0 = primary)", "0")
|
||||
.option("--duration <ms|10s>", "Clip duration (ms or 10s)", "10000")
|
||||
.option("--fps <fps>", "Frames per second", "10")
|
||||
.option("--no-audio", "Disable microphone audio capture")
|
||||
.option("--out <path>", "Output path")
|
||||
.option(
|
||||
"--invoke-timeout <ms>",
|
||||
@@ -808,6 +809,7 @@ export function registerNodesCli(program: Command) {
|
||||
: undefined,
|
||||
fps: Number.isFinite(fps) ? fps : undefined,
|
||||
format: "mp4",
|
||||
includeAudio: opts.audio !== false,
|
||||
},
|
||||
idempotencyKey: randomIdempotencyKey(),
|
||||
};
|
||||
@@ -844,6 +846,7 @@ export function registerNodesCli(program: Command) {
|
||||
durationMs: parsed.durationMs,
|
||||
fps: parsed.fps,
|
||||
screenIndex: parsed.screenIndex,
|
||||
hasAudio: parsed.hasAudio,
|
||||
},
|
||||
},
|
||||
null,
|
||||
|
||||
@@ -13,12 +13,14 @@ describe("nodes screen helpers", () => {
|
||||
durationMs: 1000,
|
||||
fps: 12,
|
||||
screenIndex: 0,
|
||||
hasAudio: true,
|
||||
});
|
||||
expect(payload.format).toBe("mp4");
|
||||
expect(payload.base64).toBe("Zm9v");
|
||||
expect(payload.durationMs).toBe(1000);
|
||||
expect(payload.fps).toBe(12);
|
||||
expect(payload.screenIndex).toBe(0);
|
||||
expect(payload.hasAudio).toBe(true);
|
||||
});
|
||||
|
||||
it("rejects invalid screen.record payload", () => {
|
||||
|
||||
@@ -10,6 +10,7 @@ export type ScreenRecordPayload = {
|
||||
durationMs?: number;
|
||||
fps?: number;
|
||||
screenIndex?: number;
|
||||
hasAudio?: boolean;
|
||||
};
|
||||
|
||||
function asRecord(value: unknown): Record<string, unknown> {
|
||||
@@ -36,6 +37,7 @@ export function parseScreenRecordPayload(value: unknown): ScreenRecordPayload {
|
||||
fps: typeof obj.fps === "number" ? obj.fps : undefined,
|
||||
screenIndex:
|
||||
typeof obj.screenIndex === "number" ? obj.screenIndex : undefined,
|
||||
hasAudio: typeof obj.hasAudio === "boolean" ? obj.hasAudio : undefined,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user