refactor(embed): remove array support in favor of rest params (#7498)

This commit is contained in:
Almeida
2022-02-20 12:38:13 +00:00
committed by GitHub
parent ffecf08495
commit b3fa2ece40
3 changed files with 5 additions and 36 deletions

View File

@@ -4,9 +4,6 @@ import {
colorPredicate,
descriptionPredicate,
embedFieldsArrayPredicate,
fieldInlinePredicate,
fieldNamePredicate,
fieldValuePredicate,
footerTextPredicate,
timestampPredicate,
titlePredicate,
@@ -94,19 +91,4 @@ export class Embed extends UnsafeEmbed {
// Data assertions
return super.setURL(urlPredicate.parse(url)!);
}
/**
* Normalizes field input and resolves strings
*
* @param fields Fields to normalize
*/
public static override normalizeFields(...fields: APIEmbedField[]): APIEmbedField[] {
return fields.flat(Infinity).map((field) => {
fieldNamePredicate.parse(field.name);
fieldValuePredicate.parse(field.value);
fieldInlinePredicate.parse(field.inline);
return { name: field.name, value: field.value, inline: field.inline ?? undefined };
});
}
}

View File

@@ -190,7 +190,6 @@ export class UnsafeEmbed implements Equatable<APIEmbed | UnsafeEmbed> {
* @param fields The fields to add
*/
public addFields(...fields: APIEmbedField[]): this {
fields = UnsafeEmbed.normalizeFields(...fields);
if (this.data.fields) this.data.fields.push(...fields);
else this.data.fields = fields;
return this;
@@ -204,7 +203,6 @@ export class UnsafeEmbed implements Equatable<APIEmbed | UnsafeEmbed> {
* @param fields The replacing field objects
*/
public spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this {
fields = UnsafeEmbed.normalizeFields(...fields);
if (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields);
else this.data.fields = fields;
return this;
@@ -337,15 +335,4 @@ export class UnsafeEmbed implements Equatable<APIEmbed | UnsafeEmbed> {
const { image, thumbnail, ...otherData } = data;
return isEqual(otherData, thisData) && image?.url === thisImage?.url && thumbnail?.url === thisThumbnail?.url;
}
/**
* Normalizes field input and resolves strings
*
* @param fields Fields to normalize
*/
public static normalizeFields(...fields: APIEmbedField[]): APIEmbedField[] {
return fields
.flat(Infinity)
.map((field) => ({ name: field.name, value: field.value, inline: field.inline ?? undefined }));
}
}