Skip to content

Commit

Permalink
refactor: reduce overhead
Browse files Browse the repository at this point in the history
  • Loading branch information
Jiralite committed Nov 12, 2023
1 parent 1126cd9 commit fa4833c
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 45 deletions.
24 changes: 14 additions & 10 deletions packages/builders/src/components/selectMenu/ChannelSelectMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,17 @@ export class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder<APIChannelSe
* @param channels - The channels to add
*/
public addDefaultChannels(...channels: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(channels).map((id) => ({
id,
type: SelectMenuDefaultValueType.Channel as const,
}));

const normalizedValues = normalizeArray(channels);
optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);
this.data.default_values ??= [];
optionsLengthValidator.parse(this.data.default_values.length + normalizedValues.length);
this.data.default_values.push(...normalizedValues);

this.data.default_values.push(
...normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.Channel as const,
})),
);

return this;
}

Expand All @@ -87,13 +90,14 @@ export class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder<APIChannelSe
* @param channels - The channels to set
*/
public setDefaultChannels(...channels: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(channels).map((id) => ({
const normalizedValues = normalizeArray(channels);
optionsLengthValidator.parse(normalizedValues.length);

this.data.default_values = normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.Channel as const,
}));

optionsLengthValidator.parse(normalizedValues.length);
this.data.default_values = normalizedValues;
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,17 @@ export class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder<APIMenti
* @param roles - The roles to add
*/
public addDefaultRoles(...roles: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(roles).map((id) => ({
id,
type: SelectMenuDefaultValueType.Role as const,
}));

const normalizedValues = normalizeArray(roles);
optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);
this.data.default_values ??= [];
optionsLengthValidator.parse(this.data.default_values.length + normalizedValues.length);
this.data.default_values.push(...normalizedValues);

this.data.default_values.push(
...normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.Role as const,
})),
);

return this;
}

Expand All @@ -62,14 +65,17 @@ export class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder<APIMenti
* @param users - The users to add
*/
public addDefaultUsers(...users: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(users).map((id) => ({
id,
type: SelectMenuDefaultValueType.User as const,
}));

const normalizedValues = normalizeArray(users);
optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);
this.data.default_values ??= [];
optionsLengthValidator.parse(this.data.default_values.length + normalizedValues.length);
this.data.default_values.push(...normalizedValues);

this.data.default_values.push(
...normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.User as const,
})),
);

return this;
}

Expand All @@ -85,8 +91,8 @@ export class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder<APIMenti
>
) {
const normalizedValues = normalizeArray(values);
optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);
this.data.default_values ??= [];
optionsLengthValidator.parse(this.data.default_values.length + normalizedValues.length);
this.data.default_values.push(...normalizedValues);
return this;
}
Expand Down
24 changes: 14 additions & 10 deletions packages/builders/src/components/selectMenu/RoleSelectMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,17 @@ export class RoleSelectMenuBuilder extends BaseSelectMenuBuilder<APIRoleSelectCo
* @param roles - The roles to add
*/
public addDefaultRoles(...roles: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(roles).map((id) => ({
id,
type: SelectMenuDefaultValueType.Role as const,
}));

const normalizedValues = normalizeArray(roles);
optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);
this.data.default_values ??= [];
optionsLengthValidator.parse(this.data.default_values.length + normalizedValues.length);
this.data.default_values.push(...normalizedValues);

this.data.default_values.push(
...normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.Role as const,
})),
);

return this;
}

Expand All @@ -61,13 +64,14 @@ export class RoleSelectMenuBuilder extends BaseSelectMenuBuilder<APIRoleSelectCo
* @param roles - The roles to set
*/
public setDefaultRoles(...roles: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(roles).map((id) => ({
const normalizedValues = normalizeArray(roles);
optionsLengthValidator.parse(normalizedValues.length);

this.data.default_values = normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.Role as const,
}));

optionsLengthValidator.parse(normalizedValues.length);
this.data.default_values = normalizedValues;
return this;
}
}
24 changes: 14 additions & 10 deletions packages/builders/src/components/selectMenu/UserSelectMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,17 @@ export class UserSelectMenuBuilder extends BaseSelectMenuBuilder<APIUserSelectCo
* @param users - The users to add
*/
public addDefaultUsers(...users: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(users).map((id) => ({
id,
type: SelectMenuDefaultValueType.User as const,
}));

const normalizedValues = normalizeArray(users);
optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);
this.data.default_values ??= [];
optionsLengthValidator.parse(this.data.default_values.length + normalizedValues.length);
this.data.default_values.push(...normalizedValues);

this.data.default_values.push(
...normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.User as const,
})),
);

return this;
}

Expand All @@ -61,13 +64,14 @@ export class UserSelectMenuBuilder extends BaseSelectMenuBuilder<APIUserSelectCo
* @param users - The users to set
*/
public setDefaultUsers(...users: RestOrArray<Snowflake>) {
const normalizedValues = normalizeArray(users).map((id) => ({
const normalizedValues = normalizeArray(users);
optionsLengthValidator.parse(normalizedValues.length);

this.data.default_values = normalizedValues.map((id) => ({
id,
type: SelectMenuDefaultValueType.User as const,
}));

optionsLengthValidator.parse(normalizedValues.length);
this.data.default_values = normalizedValues;
return this;
}
}

0 comments on commit fa4833c

Please sign in to comment.