Skip to content

Commit fd882ad

Browse files
authored
feat: Improve condition of updating commands (#1345)
1 parent 9848f85 commit fd882ad

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

packages/bot/src/service/command/register.ts

+19-5
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,32 @@ export const registerCommands = async ({
3838
.flatMap((responder) => schemaToDiscordFormat(responder.schema));
3939
const commandByName = new Map(commands.map((obj) => [obj.name, obj]));
4040

41+
const isCommandUpdated = (registered: RegisteredCommand): boolean => {
42+
if (!commandByName.has(registered.name)) {
43+
return false;
44+
}
45+
const mapped = {
46+
...(commandByName.get(registered.name) ?? {}),
47+
id: registered.id
48+
};
49+
const filteredRegistered = {
50+
name: registered.name,
51+
description: registered.description,
52+
options: registered.options,
53+
id: registered.id
54+
};
55+
console.log({ mapped, filteredRegistered });
56+
return !equal(mapped, filteredRegistered);
57+
};
58+
4159
const idsNeedToDelete = [...currentRegisteredByName.keys()]
4260
.filter((name) => !commandByName.has(name))
4361
.map(
4462
(name) =>
4563
(currentRegisteredByName.get(name)?.id ?? 'unknown') as Snowflake
4664
);
4765
const needToUpdate = [...currentRegisteredByName.values()]
48-
.filter(
49-
(registered) =>
50-
commandByName.has(registered.name) &&
51-
!equal(commandByName.get(registered.name) ?? {}, registered)
52-
)
66+
.filter(isCommandUpdated)
5367
.map(
5468
({ id, name }) =>
5569
({ id, ...commandByName.get(name) }) as RegisteredCommand

0 commit comments

Comments
 (0)