@@ -2,7 +2,9 @@ import {MessageEmbed, MessageEmbedOptions} from 'discord.js';
22
33type AnyObject = { [ k : string ] : any } ;
44
5- type Templates = { [ k in string | 'basic' | 'color' | 'complete' | 'image' ] : MessageEmbedOptions }
5+ type Template = MessageEmbedOptions ;
6+
7+ type Templates = { [ k in string | 'basic' | 'color' | 'complete' | 'image' ] : Template }
68
79export const templates : Templates = {
810 basic : {
@@ -50,19 +52,19 @@ export const limits = {
5052} ;
5153
5254export class BetterEmbed extends MessageEmbed {
53- public constructor ( data ?: MessageEmbed | MessageEmbedOptions ) {
55+ public constructor ( data ?: MessageEmbed | Template ) {
5456 super ( data ) ;
5557 this . checkSize ( ) ;
5658 }
5759
58- public static fromTemplate ( template : keyof Templates | MessageEmbedOptions , values : AnyObject ) {
60+ public static fromTemplate ( template : keyof Templates | Template , values : AnyObject ) : BetterEmbed {
5961 if ( typeof template === 'string' )
6062 if ( templates [ template ] ) template = templates [ template ] ;
6163 else throw new Error ( `Template '${ template } ' not found.` ) ;
6264
6365 template = JSON . parse ( JSON . stringify ( template ) ) ;
6466
65- function setValues ( object : AnyObject , values : AnyObject ) : MessageEmbedOptions {
67+ function setValues ( object : AnyObject , values : AnyObject ) : Template {
6668 for ( const [ name , value ] of Object . entries ( object ) ) {
6769 if ( ! object . hasOwnProperty ( name ) ) continue ;
6870 if ( Array . isArray ( value ) ) object [ name ] = value . map ( v => setValues ( v , values ) ) ;
0 commit comments