Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
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.

prototype-es.js 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /* eslint-disable node/no-unsupported-features/es-syntax */
  2. /**
  3. * @param {RegExp} regex
  4. * @param {string} newFlags
  5. * @param {Integer} [newLastIndex=regex.lastIndex]
  6. * @returns {RegExp}
  7. */
  8. function mixinRegex(regex, newFlags) {
  9. var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
  10. newFlags = newFlags || '';
  11. regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.unicode ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : '') + (newFlags.includes('s') ? 's' : regex.dotAll ? 's' : ''));
  12. regex.lastIndex = newLastIndex;
  13. return regex;
  14. }
  15. /* eslint-disable no-extend-native,
  16. no-use-extend-native/no-use-extend-native,
  17. node/no-unsupported-features/es-syntax */
  18. RegExp.prototype.forEach = function (str, cb) {
  19. var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  20. var matches,
  21. n0,
  22. i = 0;
  23. var regex = mixinRegex(this, 'g');
  24. while ((matches = regex.exec(str)) !== null) {
  25. n0 = matches.splice(0, 1);
  26. cb.apply(thisObj, matches.concat(i++, n0));
  27. }
  28. return this;
  29. };
  30. RegExp.prototype.some = function (str, cb) {
  31. var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  32. var matches,
  33. ret,
  34. n0,
  35. i = 0;
  36. var regex = mixinRegex(this, 'g');
  37. while ((matches = regex.exec(str)) !== null) {
  38. n0 = matches.splice(0, 1);
  39. ret = cb.apply(thisObj, matches.concat(i++, n0));
  40. if (ret) {
  41. return true;
  42. }
  43. }
  44. return false;
  45. };
  46. RegExp.prototype.every = function (str, cb) {
  47. var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  48. var matches,
  49. ret,
  50. n0,
  51. i = 0;
  52. var regex = mixinRegex(this, 'g');
  53. while ((matches = regex.exec(str)) !== null) {
  54. n0 = matches.splice(0, 1);
  55. ret = cb.apply(thisObj, matches.concat(i++, n0));
  56. if (!ret) {
  57. return false;
  58. }
  59. }
  60. return true;
  61. };
  62. RegExp.prototype.map = function (str, cb) {
  63. var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  64. var matches,
  65. n0,
  66. i = 0;
  67. var ret = [];
  68. var regex = mixinRegex(this, 'g');
  69. while ((matches = regex.exec(str)) !== null) {
  70. n0 = matches.splice(0, 1);
  71. ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
  72. }
  73. return ret;
  74. };
  75. RegExp.prototype.filter = function (str, cb) {
  76. var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  77. var matches,
  78. n0,
  79. i = 0;
  80. var ret = [];
  81. var regex = mixinRegex(this, 'g');
  82. while ((matches = regex.exec(str)) !== null) {
  83. n0 = matches.splice(0, 1);
  84. matches = matches.concat(i++, n0);
  85. if (cb.apply(thisObj, matches)) {
  86. ret.push(matches[0]);
  87. }
  88. }
  89. return ret;
  90. };
  91. RegExp.prototype.reduce = function (str, cb, prev) {
  92. var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
  93. var matches,
  94. n0,
  95. i = 0;
  96. var regex = mixinRegex(this, 'g');
  97. if (!prev) {
  98. if ((matches = regex.exec(str)) !== null) {
  99. n0 = matches.splice(0, 1);
  100. prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i++)));
  101. }
  102. }
  103. while ((matches = regex.exec(str)) !== null) {
  104. n0 = matches.splice(0, 1);
  105. prev = cb.apply(thisObj, [prev].concat(matches.concat(n0, i++)));
  106. }
  107. return prev;
  108. };
  109. RegExp.prototype.reduceRight = function (str, cb, prevOrig, thisObjOrig) {
  110. var matches,
  111. n0,
  112. i,
  113. prev = prevOrig,
  114. thisObj = thisObjOrig;
  115. var regex = mixinRegex(this, 'g');
  116. var matchesContainer = [];
  117. thisObj = thisObj || null;
  118. while ((matches = regex.exec(str)) !== null) {
  119. matchesContainer.push(matches);
  120. }
  121. i = matchesContainer.length;
  122. if (!i) {
  123. if (arguments.length < 3) {
  124. throw new TypeError('reduce of empty matches array with no initial value');
  125. }
  126. return prev;
  127. }
  128. if (!prev) {
  129. matches = matchesContainer.splice(-1)[0];
  130. n0 = matches.splice(0, 1);
  131. prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i--)));
  132. }
  133. matchesContainer.reduceRight(function (container, mtches) {
  134. n0 = mtches.splice(0, 1);
  135. prev = cb.apply(thisObj, [prev].concat(mtches.concat(n0, i--)));
  136. return container;
  137. }, matchesContainer);
  138. return prev;
  139. };