module.exports = { GifData: class { constructor() { this.id = 0; this.name = ""; this.url = ""; } // Initial GifData configuration // Can also be used to update the data piecemeal setInfo(name, url, id) { // Check for existing or incoming name if ((this.name === "") && (typeof name !== 'string')) throw `Error: This Gif doesn't have existing name, and no name is going to be set.`; // Check for existing content or incoming content if ((this.url === "") && (typeof url !== 'string')) throw `Error: This Gif doesn't have existing url, and no url is going to be set.`; // Property is set if the variable is the right type, // otherwise it keeps the existing property this.id = typeof id === 'number' ? id : this.id; this.name = typeof name === 'string' ? name : this.name; this.url = typeof url === 'string' ? url : this.url; return this; // For chaining } }, PastaData: class { constructor() { this.id = 0; this.name = ""; this.content = ""; this.iconUrl = ""; } // Initial PastaData configuration // Can also be used to update the data piecemeal setInfo(name, content, iconUrl, id) { // Check for existing or incoming name if ((this.name === "") && (typeof name !== 'string')) throw `Error: This Pasta doesn't have existing name, and no name is going to be set.`; // Check for existing content or incoming content if ((this.content === "") && (typeof content !== 'string')) throw `Error: This Pasta doesn't have existing content, and no content is going to be set.`; // Property is set if the variable is the right type, // otherwise it keeps the existing property this.id = typeof id === 'number' ? id : this.id; this.name = typeof name === 'string' ? name : this.name; this.content = typeof content === 'string' ? content : this.content; this.iconUrl = typeof iconUrl === 'string' ? iconUrl : this.iconUrl; return this; // For chaining } } }