js-message-vanilla.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. (
  2. function(){
  3. function Message() {
  4. Object.defineProperties(
  5. this, {
  6. data: {
  7. enumerable: true,
  8. get: getData,
  9. set: setData
  10. },
  11. type: {
  12. enumerable: true,
  13. get: getType,
  14. set: setType
  15. },
  16. load:{
  17. enumarable:true,
  18. writable:false,
  19. value:parse
  20. },
  21. JSON: {
  22. enumerable: true,
  23. get: getJSON
  24. }
  25. }
  26. );
  27. var type = '';
  28. var data = {};
  29. function getType() {
  30. return type;
  31. }
  32. function getData() {
  33. return data;
  34. }
  35. function getJSON() {
  36. return JSON.stringify(
  37. {
  38. type: type,
  39. data: data
  40. }
  41. );
  42. }
  43. function setType(value) {
  44. type = value;
  45. }
  46. function setData(value) {
  47. data = value;
  48. }
  49. function parse(message){
  50. try{
  51. var message=JSON.parse(message);
  52. type=message.type;
  53. data=message.data;
  54. }catch(err){
  55. var badMessage=message;
  56. type='error',
  57. data={
  58. message:'Invalid JSON response format',
  59. err:err,
  60. response:badMessage
  61. }
  62. }
  63. }
  64. }
  65. window.Message=Message;
  66. }
  67. )();