refactor: dedupe browser string helper

This commit is contained in:
Peter Steinberger
2026-04-07 00:08:22 +01:00
parent 978513aa6b
commit f16e9364d2
2 changed files with 12 additions and 11 deletions

View File

@@ -1,3 +1,4 @@
import { normalizeString } from "../record-shared.js";
import type { SnapshotAriaNode } from "./client.js";
import {
getRoleSnapshotStats,
@@ -20,17 +21,6 @@ function normalizeRole(node: ChromeMcpSnapshotNode): string {
return role || "generic";
}
function normalizeString(value: unknown): string | undefined {
if (typeof value === "string") {
const trimmed = value.trim();
return trimmed || undefined;
}
if (typeof value === "number" || typeof value === "boolean") {
return String(value);
}
return undefined;
}
function escapeQuoted(value: string): string {
return value.replaceAll("\\", "\\\\").replaceAll('"', '\\"');
}

View File

@@ -9,3 +9,14 @@ export function asRecord(value: unknown): Record<string, unknown> | null {
export function hasNonEmptyString(value: unknown): value is string {
return typeof value === "string" && value.trim().length > 0;
}
export function normalizeString(value: unknown): string | undefined {
if (typeof value === "string") {
const trimmed = value.trim();
return trimmed || undefined;
}
if (typeof value === "number" || typeof value === "boolean") {
return String(value);
}
return undefined;
}