(params: {
args: readonly string[];
index: number;
flags: Partial<ScreenshotRequestFlags>;
})
| 139 | } |
| 140 | |
| 141 | export function readScreenshotScriptFlag(params: { |
| 142 | args: readonly string[]; |
| 143 | index: number; |
| 144 | flags: Partial<ScreenshotRequestFlags>; |
| 145 | }): { handled: true; nextIndex: number } | { handled: false } { |
| 146 | const { args, flags, index } = params; |
| 147 | const token = args[index]; |
| 148 | if (token === '--fullscreen' || token === '--full' || token === '-f') { |
| 149 | flags.screenshotFullscreen = true; |
| 150 | return { handled: true, nextIndex: index }; |
| 151 | } |
| 152 | if (token === '--no-stabilize') { |
| 153 | flags.screenshotNoStabilize = true; |
| 154 | return { handled: true, nextIndex: index }; |
| 155 | } |
| 156 | if (token === '--normalize-status-bar') { |
| 157 | flags.screenshotNormalizeStatusBar = true; |
| 158 | return { handled: true, nextIndex: index }; |
| 159 | } |
| 160 | if (token === '--max-size') { |
| 161 | const value = args[index + 1]; |
| 162 | const maxSize = value === undefined ? NaN : Number(value); |
| 163 | if (!Number.isInteger(maxSize) || maxSize < 1) { |
| 164 | throw new AppError('INVALID_ARGS', 'screenshot --max-size requires a positive integer'); |
| 165 | } |
| 166 | flags.screenshotMaxSize = maxSize; |
| 167 | return { handled: true, nextIndex: index + 1 }; |
| 168 | } |
| 169 | return { handled: false }; |
| 170 | } |
| 171 | |
| 172 | function stripUndefined<T extends Record<string, unknown>>(value: T): T { |
| 173 | return Object.fromEntries(Object.entries(value).filter((entry) => entry[1] !== undefined)) as T; |
no outgoing calls
no test coverage detected
searching dependent graphs…