Skip to content

Commit 96e2b25

Browse files
committed
Reuse Signal alias map for directory listing
1 parent bf90b1d commit 96e2b25

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

extensions/signal/src/aliases.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,12 @@ function resolveRawSignalTarget(
6969
};
7070
}
7171

72-
export function resolveSignalAliasTarget(params: {
73-
cfg: OpenClawConfig;
74-
accountId?: string | null;
72+
function resolveSignalAliasTargetFromMap(params: {
73+
aliases: ReadonlyMap<string, string>;
7574
input: string;
7675
}): ResolvedSignalAliasTarget | null {
77-
const aliases = resolveAliasMap(params);
7876
const initialAlias = normalizeAliasKey(params.input);
79-
if (!initialAlias || !aliases.has(initialAlias)) {
77+
if (!initialAlias || !params.aliases.has(initialAlias)) {
8078
return null;
8179
}
8280

@@ -88,7 +86,7 @@ export function resolveSignalAliasTarget(params: {
8886
}
8987
visited.add(alias);
9088

91-
const rawValue = aliases.get(alias);
89+
const rawValue = params.aliases.get(alias);
9290
if (typeof rawValue !== "string" || !rawValue.trim()) {
9391
throw new Error(`Signal alias "${alias}" must point to a non-empty Signal target.`);
9492
}
@@ -102,7 +100,7 @@ export function resolveSignalAliasTarget(params: {
102100
}
103101

104102
const nextAlias = normalizeAliasKey(rawValue);
105-
if (nextAlias && aliases.has(nextAlias)) {
103+
if (nextAlias && params.aliases.has(nextAlias)) {
106104
alias = nextAlias;
107105
continue;
108106
}
@@ -113,6 +111,18 @@ export function resolveSignalAliasTarget(params: {
113111
}
114112
}
115113

114+
export function resolveSignalAliasTarget(params: {
115+
cfg: OpenClawConfig;
116+
accountId?: string | null;
117+
input: string;
118+
}): ResolvedSignalAliasTarget | null {
119+
const aliases = resolveAliasMap(params);
120+
return resolveSignalAliasTargetFromMap({
121+
aliases,
122+
input: params.input,
123+
});
124+
}
125+
116126
export function resolveSignalTarget(params: {
117127
cfg: OpenClawConfig;
118128
accountId?: string | null;
@@ -144,7 +154,7 @@ export function listSignalAliasDirectoryEntries(params: {
144154
const limit = typeof params.limit === "number" && params.limit > 0 ? params.limit : undefined;
145155
const exactAlias = params.query ? normalizeAliasKey(params.query) : undefined;
146156
if (exactAlias && aliases.has(exactAlias)) {
147-
const target = resolveSignalAliasTarget({ ...params, input: exactAlias });
157+
const target = resolveSignalAliasTargetFromMap({ aliases, input: exactAlias });
148158
if (target?.kind === params.kind) {
149159
return [{ kind: params.kind, id: target.to, name: target.alias }];
150160
}
@@ -156,7 +166,7 @@ export function listSignalAliasDirectoryEntries(params: {
156166
for (const alias of aliases.keys()) {
157167
let target: ResolvedSignalAliasTarget | null;
158168
try {
159-
target = resolveSignalAliasTarget({ ...params, input: alias });
169+
target = resolveSignalAliasTargetFromMap({ aliases, input: alias });
160170
} catch {
161171
continue;
162172
}

0 commit comments

Comments
 (0)