mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-18 20:51:10 +00:00
refactor: dedupe channel trimmed readers
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { type NodeMatchCandidate, resolveNodeIdFromCandidates } from "./node-match.js";
|
||||
import { normalizeOptionalString } from "./string-coerce.js";
|
||||
|
||||
type ResolveNodeFromListOptions<TNode extends NodeMatchCandidate> = {
|
||||
allowDefault?: boolean;
|
||||
@@ -10,7 +11,7 @@ export function resolveNodeIdFromNodeList<TNode extends NodeMatchCandidate>(
|
||||
query?: string,
|
||||
options: ResolveNodeFromListOptions<TNode> = {},
|
||||
): string {
|
||||
const q = String(query ?? "").trim();
|
||||
const q = normalizeOptionalString(query) ?? "";
|
||||
if (!q) {
|
||||
if (options.allowDefault === true && options.pickDefaultNode) {
|
||||
const picked = options.pickDefaultNode(nodes);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { normalizeOptionalLowercaseString, normalizeOptionalString } from "./string-coerce.js";
|
||||
|
||||
export function normalizeStringEntries(list?: ReadonlyArray<unknown>) {
|
||||
return (list ?? []).map((entry) => String(entry).trim()).filter(Boolean);
|
||||
return (list ?? []).map((entry) => normalizeOptionalString(String(entry)) ?? "").filter(Boolean);
|
||||
}
|
||||
|
||||
export function normalizeStringEntriesLower(list?: ReadonlyArray<unknown>) {
|
||||
@@ -40,7 +40,7 @@ export function normalizeSingleOrTrimmedStringList(value: unknown): string[] {
|
||||
|
||||
export function normalizeCsvOrLooseStringList(value: unknown): string[] {
|
||||
if (Array.isArray(value)) {
|
||||
return value.map((entry) => String(entry).trim()).filter(Boolean);
|
||||
return normalizeStringEntries(value);
|
||||
}
|
||||
if (typeof value === "string") {
|
||||
return value
|
||||
|
||||
Reference in New Issue
Block a user