Files
openclaw/src/channels/allow-from.ts
2026-02-19 14:27:37 +00:00

35 lines
836 B
TypeScript

export function mergeAllowFromSources(params: {
allowFrom?: Array<string | number>;
storeAllowFrom?: string[];
}): string[] {
return [...(params.allowFrom ?? []), ...(params.storeAllowFrom ?? [])]
.map((value) => String(value).trim())
.filter(Boolean);
}
export function firstDefined<T>(...values: Array<T | undefined>) {
for (const value of values) {
if (typeof value !== "undefined") {
return value;
}
}
return undefined;
}
export function isSenderIdAllowed(
allow: { entries: string[]; hasWildcard: boolean; hasEntries: boolean },
senderId: string | undefined,
allowWhenEmpty: boolean,
): boolean {
if (!allow.hasEntries) {
return allowWhenEmpty;
}
if (allow.hasWildcard) {
return true;
}
if (!senderId) {
return false;
}
return allow.entries.includes(senderId);
}