Ein Projekt das es ermöglicht Beerpong über das Internet von zwei unabhängigen positionen aus zu spielen. Entstehung im Rahmen einer Praktikumsaufgabe im Fach Interaktion.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

utils.js 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. // Load modules
  2. // Declare internals
  3. var internals = {};
  4. exports.arrayToObject = function (source) {
  5. var obj = {};
  6. for (var i = 0, il = source.length; i < il; ++i) {
  7. if (typeof source[i] !== 'undefined') {
  8. obj[i] = source[i];
  9. }
  10. }
  11. return obj;
  12. };
  13. exports.merge = function (target, source) {
  14. if (!source) {
  15. return target;
  16. }
  17. if (Array.isArray(source)) {
  18. for (var i = 0, il = source.length; i < il; ++i) {
  19. if (typeof source[i] !== 'undefined') {
  20. if (typeof target[i] === 'object') {
  21. target[i] = exports.merge(target[i], source[i]);
  22. }
  23. else {
  24. target[i] = source[i];
  25. }
  26. }
  27. }
  28. return target;
  29. }
  30. if (Array.isArray(target)) {
  31. if (typeof source !== 'object') {
  32. target.push(source);
  33. return target;
  34. }
  35. else {
  36. target = exports.arrayToObject(target);
  37. }
  38. }
  39. var keys = Object.keys(source);
  40. for (var k = 0, kl = keys.length; k < kl; ++k) {
  41. var key = keys[k];
  42. var value = source[key];
  43. if (value &&
  44. typeof value === 'object') {
  45. if (!target[key]) {
  46. target[key] = value;
  47. }
  48. else {
  49. target[key] = exports.merge(target[key], value);
  50. }
  51. }
  52. else {
  53. target[key] = value;
  54. }
  55. }
  56. return target;
  57. };
  58. exports.decode = function (str) {
  59. try {
  60. return decodeURIComponent(str.replace(/\+/g, ' '));
  61. } catch (e) {
  62. return str;
  63. }
  64. };
  65. exports.compact = function (obj, refs) {
  66. if (typeof obj !== 'object' ||
  67. obj === null) {
  68. return obj;
  69. }
  70. refs = refs || [];
  71. var lookup = refs.indexOf(obj);
  72. if (lookup !== -1) {
  73. return refs[lookup];
  74. }
  75. refs.push(obj);
  76. if (Array.isArray(obj)) {
  77. var compacted = [];
  78. for (var i = 0, l = obj.length; i < l; ++i) {
  79. if (typeof obj[i] !== 'undefined') {
  80. compacted.push(obj[i]);
  81. }
  82. }
  83. return compacted;
  84. }
  85. var keys = Object.keys(obj);
  86. for (var i = 0, il = keys.length; i < il; ++i) {
  87. var key = keys[i];
  88. obj[key] = exports.compact(obj[key], refs);
  89. }
  90. return obj;
  91. };
  92. exports.isRegExp = function (obj) {
  93. return Object.prototype.toString.call(obj) === '[object RegExp]';
  94. };
  95. exports.isBuffer = function (obj) {
  96. if (typeof Buffer !== 'undefined') {
  97. return Buffer.isBuffer(obj);
  98. }
  99. else {
  100. return false;
  101. }
  102. };