import { normalizeOptionalString } from "../shared/string-coerce.js";
export type SenderLabelParams = {
name?: string;
username?: string;
tag?: string;
e164?: string;
id?: string;
};
function normalizeSenderLabelParams(params: SenderLabelParams) {
return {
name: normalizeOptionalString(params.name),
username: normalizeOptionalString(params.username),
tag: normalizeOptionalString(params.tag),
e164: normalizeOptionalString(params.e164),
id: normalizeOptionalString(params.id),
};
}
export function resolveSenderLabel(params: SenderLabelParams): string | null {
const { name, username, tag, e164, id } = normalizeSenderLabelParams(params);
const display = name ?? username ?? tag ?? "";
const idPart = e164 ?? id ?? "";
if (display && idPart && display !== idPart) {
return `${display} (${idPart})`;
}
return display || idPart || null;
}
export function listSenderLabelCandidates(params: SenderLabelParams): string[] {
const candidates = new Set<string>();
const { name, username, tag, e164, id } = normalizeSenderLabelParams(params);
if (name) {
candidates.add(name);
}
if (username) {
candidates.add(username);
}
if (tag) {
candidates.add(tag);
}
if (e164) {
candidates.add(e164);
}
if (id) {
candidates.add(id);
}
const resolved = resolveSenderLabel(params);
if (resolved) {
candidates.add(resolved);
}
return Array.from(candidates);
}
| Messung V0.5 in Prozent |
|---|
| | | |
[Verzeichnis aufwärts0.12unsichere VerbindungÜbersetzung europäischer Sprachen durch Browser2026-06-10]