import { WebAPIMessage } from './WebAPIMessage'
/**
* @typedef {Object} WebAPIMessageDataSerialized
* @property {object} data
* @instance
*/
/**
* @class
* @classdesc The web api message for serializable data transfert
* @extends WebAPIMessage
* @author [Tristan Valcke]{@link https://github.com/Itee}
*/
class WebAPIMessageData extends WebAPIMessage {
/**
* @static
* @type {boolean}
*/
static isWebAPIMessageData = true
/**
*
* @param data
*/
constructor ( data ) {
super( '_data' )
this.data = data
}
/**
*
* @returns {{id: String, type: String, data: String}}
*/
toJSON () {
const isPlainObject = this.data === Object( this.data )
return {
...super.toJSON(),
...{
data: isPlainObject ? JSON.stringify( this.data ) : this.data
}
}
}
}
export { WebAPIMessageData }