chore: set printWidth to 120 and reformat
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,16 +23,12 @@ const DEFAULT_CONFIG: SenderAllowlistConfig = {
|
||||
function isValidEntry(entry: unknown): entry is ChatAllowlistEntry {
|
||||
if (!entry || typeof entry !== 'object') return false;
|
||||
const e = entry as Record<string, unknown>;
|
||||
const validAllow =
|
||||
e.allow === '*' ||
|
||||
(Array.isArray(e.allow) && e.allow.every((v) => typeof v === 'string'));
|
||||
const validAllow = e.allow === '*' || (Array.isArray(e.allow) && e.allow.every((v) => typeof v === 'string'));
|
||||
const validMode = e.mode === 'trigger' || e.mode === 'drop';
|
||||
return validAllow && validMode;
|
||||
}
|
||||
|
||||
export function loadSenderAllowlist(
|
||||
pathOverride?: string,
|
||||
): SenderAllowlistConfig {
|
||||
export function loadSenderAllowlist(pathOverride?: string): SenderAllowlistConfig {
|
||||
const filePath = pathOverride ?? SENDER_ALLOWLIST_PATH;
|
||||
|
||||
let raw: string;
|
||||
@@ -40,10 +36,7 @@ export function loadSenderAllowlist(
|
||||
raw = fs.readFileSync(filePath, 'utf-8');
|
||||
} catch (err: unknown) {
|
||||
if ((err as NodeJS.ErrnoException).code === 'ENOENT') return DEFAULT_CONFIG;
|
||||
logger.warn(
|
||||
{ err, path: filePath },
|
||||
'sender-allowlist: cannot read config',
|
||||
);
|
||||
logger.warn({ err, path: filePath }, 'sender-allowlist: cannot read config');
|
||||
return DEFAULT_CONFIG;
|
||||
}
|
||||
|
||||
@@ -58,25 +51,17 @@ export function loadSenderAllowlist(
|
||||
const obj = parsed as Record<string, unknown>;
|
||||
|
||||
if (!isValidEntry(obj.default)) {
|
||||
logger.warn(
|
||||
{ path: filePath },
|
||||
'sender-allowlist: invalid or missing default entry',
|
||||
);
|
||||
logger.warn({ path: filePath }, 'sender-allowlist: invalid or missing default entry');
|
||||
return DEFAULT_CONFIG;
|
||||
}
|
||||
|
||||
const chats: Record<string, ChatAllowlistEntry> = {};
|
||||
if (obj.chats && typeof obj.chats === 'object') {
|
||||
for (const [jid, entry] of Object.entries(
|
||||
obj.chats as Record<string, unknown>,
|
||||
)) {
|
||||
for (const [jid, entry] of Object.entries(obj.chats as Record<string, unknown>)) {
|
||||
if (isValidEntry(entry)) {
|
||||
chats[jid] = entry;
|
||||
} else {
|
||||
logger.warn(
|
||||
{ jid, path: filePath },
|
||||
'sender-allowlist: skipping invalid chat entry',
|
||||
);
|
||||
logger.warn({ jid, path: filePath }, 'sender-allowlist: skipping invalid chat entry');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -88,41 +73,24 @@ export function loadSenderAllowlist(
|
||||
};
|
||||
}
|
||||
|
||||
function getEntry(
|
||||
chatJid: string,
|
||||
cfg: SenderAllowlistConfig,
|
||||
): ChatAllowlistEntry {
|
||||
function getEntry(chatJid: string, cfg: SenderAllowlistConfig): ChatAllowlistEntry {
|
||||
return cfg.chats[chatJid] ?? cfg.default;
|
||||
}
|
||||
|
||||
export function isSenderAllowed(
|
||||
chatJid: string,
|
||||
sender: string,
|
||||
cfg: SenderAllowlistConfig,
|
||||
): boolean {
|
||||
export function isSenderAllowed(chatJid: string, sender: string, cfg: SenderAllowlistConfig): boolean {
|
||||
const entry = getEntry(chatJid, cfg);
|
||||
if (entry.allow === '*') return true;
|
||||
return entry.allow.includes(sender);
|
||||
}
|
||||
|
||||
export function shouldDropMessage(
|
||||
chatJid: string,
|
||||
cfg: SenderAllowlistConfig,
|
||||
): boolean {
|
||||
export function shouldDropMessage(chatJid: string, cfg: SenderAllowlistConfig): boolean {
|
||||
return getEntry(chatJid, cfg).mode === 'drop';
|
||||
}
|
||||
|
||||
export function isTriggerAllowed(
|
||||
chatJid: string,
|
||||
sender: string,
|
||||
cfg: SenderAllowlistConfig,
|
||||
): boolean {
|
||||
export function isTriggerAllowed(chatJid: string, sender: string, cfg: SenderAllowlistConfig): boolean {
|
||||
const allowed = isSenderAllowed(chatJid, sender, cfg);
|
||||
if (!allowed && cfg.logDenied) {
|
||||
logger.debug(
|
||||
{ chatJid, sender },
|
||||
'sender-allowlist: trigger denied for sender',
|
||||
);
|
||||
logger.debug({ chatJid, sender }, 'sender-allowlist: trigger denied for sender');
|
||||
}
|
||||
return allowed;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user