(value: unknown)
| 507 | }); |
| 508 | |
| 509 | const isSettings = (value: unknown): value is ExtensionSettings => { |
| 510 | if (!value || typeof value !== "object") return false; |
| 511 | const candidate = value as Partial<ExtensionSettings>; |
| 512 | return ( |
| 513 | typeof candidate.apiBaseUrl === "string" && |
| 514 | typeof candidate.webcam === "object" && |
| 515 | candidate.webcam !== null |
| 516 | ); |
| 517 | }; |
| 518 | |
| 519 | const isWebcamPreviewFrame = (value: unknown): value is WebcamPreviewFrame => { |
| 520 | if (!value || typeof value !== "object") return false; |