refactor(signal): share rpc context

This commit is contained in:
Peter Steinberger
2026-02-14 14:50:58 +00:00
parent e401e2584d
commit 8218a94a31
3 changed files with 28 additions and 46 deletions

View File

@@ -5,6 +5,7 @@
import { loadConfig } from "../config/config.js";
import { resolveSignalAccount } from "./accounts.js";
import { signalRpcRequest } from "./client.js";
import { resolveSignalRpcContext } from "./rpc-context.js";
export type SignalReactionOpts = {
baseUrl?: string;
@@ -59,28 +60,6 @@ function resolveTargetAuthorParams(params: {
return {};
}
function resolveReactionRpcContext(
opts: SignalReactionOpts,
accountInfo?: ReturnType<typeof resolveSignalAccount>,
) {
const hasBaseUrl = Boolean(opts.baseUrl?.trim());
const hasAccount = Boolean(opts.account?.trim());
const resolvedAccount =
accountInfo ||
(!hasBaseUrl || !hasAccount
? resolveSignalAccount({
cfg: loadConfig(),
accountId: opts.accountId,
})
: undefined);
const baseUrl = opts.baseUrl?.trim() || resolvedAccount?.baseUrl;
if (!baseUrl) {
throw new Error("Signal base URL is required");
}
const account = opts.account?.trim() || resolvedAccount?.config.account?.trim();
return { baseUrl, account };
}
/**
* Send a Signal reaction to a message
* @param recipient - UUID or E.164 phone number of the message author
@@ -98,7 +77,7 @@ export async function sendReactionSignal(
cfg: loadConfig(),
accountId: opts.accountId,
});
const { baseUrl, account } = resolveReactionRpcContext(opts, accountInfo);
const { baseUrl, account } = resolveSignalRpcContext(opts, accountInfo);
const normalizedRecipient = normalizeSignalUuid(recipient);
const groupId = opts.groupId?.trim();
@@ -164,7 +143,7 @@ export async function removeReactionSignal(
cfg: loadConfig(),
accountId: opts.accountId,
});
const { baseUrl, account } = resolveReactionRpcContext(opts, accountInfo);
const { baseUrl, account } = resolveSignalRpcContext(opts, accountInfo);
const normalizedRecipient = normalizeSignalUuid(recipient);
const groupId = opts.groupId?.trim();