72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| function Message() {
 | |
|     Object.defineProperties(
 | |
|         this, {
 | |
|             data: {
 | |
|                 enumerable: true,
 | |
|                 get: getData,
 | |
|                 set: setData
 | |
|             },
 | |
|             type: {
 | |
|                 enumerable: true,
 | |
|                 get: getType,
 | |
|                 set: setType
 | |
|             },
 | |
|             load:{
 | |
|                 enumerable:true,
 | |
|                 writable:false,
 | |
|                 value:parse
 | |
|             },
 | |
|             JSON: {
 | |
|                 enumerable: true,
 | |
|                 get: getJSON
 | |
|             }
 | |
|         }
 | |
|     );
 | |
| 
 | |
|     var type = '';
 | |
|     var data = {};
 | |
| 
 | |
|     function getType() {
 | |
|         return type;
 | |
|     }
 | |
| 
 | |
|     function getData() {
 | |
|         return data;
 | |
|     }
 | |
| 
 | |
|     function getJSON() {
 | |
|         return JSON.stringify(
 | |
|             {
 | |
|                 type: type,
 | |
|                 data: data
 | |
|             }
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     function setType(value) {
 | |
|         type = value;
 | |
|     }
 | |
| 
 | |
|     function setData(value) {
 | |
|         data = value;
 | |
|     }
 | |
| 
 | |
|     function parse(message){
 | |
|         try{
 | |
|             var message=JSON.parse(message);
 | |
|             type=message.type;
 | |
|             data=message.data;
 | |
|         }catch(err){
 | |
|             var badMessage=message;
 | |
|             type='error',
 | |
|             data={
 | |
|                 message:'Invalid JSON response format',
 | |
|                 err:err,
 | |
|                 response:badMessage
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| module.exports=Message;
 |