typings/fix(MessageEmbed): add interfaces for props, fix copy constructor (#3492)

* updated typings

* Updated docs

* fixed types for MessageEmbedOptions

* added curly bracket spaces

* fix(MessageEmbed): make copy constructor work properly

* fix(MessageEmbed): copy the provider too

Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
This commit is contained in:
Tenpi
2020-02-24 05:44:54 -05:00
committed by GitHub
parent 28490e84b0
commit e57ef25082
2 changed files with 95 additions and 29 deletions

View File

@@ -67,81 +67,108 @@ class MessageEmbed {
this.fields = data.fields ? data.fields.map(Util.cloneObject) : [];
/**
* The thumbnail of this embed (if there is one)
* @type {?Object}
* @typedef {Object} MessageEmbedThumbnail
* @property {string} url URL for this thumbnail
* @property {string} proxyURL ProxyURL for this thumbnail
* @property {number} height Height of this thumbnail
* @property {number} width Width of this thumbnail
*/
/**
* The thumbnail of this embed (if there is one)
* @type {?MessageEmbedThumbnail}
*/
this.thumbnail = data.thumbnail ? {
url: data.thumbnail.url,
proxyURL: data.thumbnail.proxy_url,
proxyURL: data.thumbnail.proxyURL || data.thumbnail.proxy_url,
height: data.thumbnail.height,
width: data.thumbnail.width,
} : null;
/**
* The image of this embed, if there is one
* @type {?Object}
* @typedef {Object} MessageEmbedImage
* @property {string} url URL for this image
* @property {string} proxyURL ProxyURL for this image
* @property {number} height Height of this image
* @property {number} width Width of this image
*/
/**
* The image of this embed, if there is one
* @type {?MessageEmbedImage}
*/
this.image = data.image ? {
url: data.image.url,
proxyURL: data.image.proxy_url,
proxyURL: data.image.proxyURL || data.image.proxy_url,
height: data.image.height,
width: data.image.width,
} : null;
/**
* The video of this embed (if there is one)
* @type {?Object}
* @typedef {Object} MessageEmbedVideo
* @property {string} url URL of this video
* @property {string} proxyURL ProxyURL for this video
* @property {number} height Height of this video
* @property {number} width Width of this video
*/
/**
* The video of this embed (if there is one)
* @type {?MessageEmbedVideo}
* @readonly
*/
this.video = data.video ? {
url: data.video.url,
proxyURL: data.video.proxy_url,
proxyURL: data.video.proxyURL || data.video.proxy_url,
height: data.video.height,
width: data.video.width,
} : null;
/**
* The author of this embed (if there is one)
* @type {?Object}
* @typedef {Object} MessageEmbedAuthor
* @property {string} name The name of this author
* @property {string} url URL of this author
* @property {string} iconURL URL of the icon for this author
* @property {string} proxyIconURL Proxied URL of the icon for this author
*/
/**
* The author of this embed (if there is one)
* @type {?MessageEmbedAuthor}
*/
this.author = data.author ? {
name: data.author.name,
url: data.author.url,
iconURL: data.author.iconURL || data.author.icon_url,
proxyIconURL: data.author.proxyIconUrl || data.author.proxy_icon_url,
proxyIconURL: data.author.proxyIconURL || data.author.proxy_icon_url,
} : null;
/**
* The provider of this embed (if there is one)
* @type {?Object}
* @typedef {Object} MessageEmbedProvider
* @property {string} name The name of this provider
* @property {string} url URL of this provider
*/
this.provider = data.provider;
/**
* The footer of this embed
* @type {?Object}
* The provider of this embed (if there is one)
* @type {?MessageEmbedProvider}
*/
this.provider = data.provider ? {
name: data.provider.name,
url: data.provider.name,
} : null;
/**
* @typedef {Object} MessageEmbedFooter
* @property {string} text The text of this footer
* @property {string} iconURL URL of the icon for this footer
* @property {string} proxyIconURL Proxied URL of the icon for this footer
*/
/**
* The footer of this embed
* @type {?MessageEmbedFooter}
*/
this.footer = data.footer ? {
text: data.footer.text,
iconURL: data.footer.iconURL || data.footer.icon_url,