@valkyriestudios/utils 4.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/.babelrc +1 -0
  2. package/.eslintrc.json +152 -0
  3. package/.nyc_output/79bac8a3-26d6-499d-a9d9-6f61d6c11628.json +1 -0
  4. package/.nyc_output/8a42299e-25b8-4720-a08c-cb83c830059c.json +1 -0
  5. package/.nyc_output/processinfo/79bac8a3-26d6-499d-a9d9-6f61d6c11628.json +1 -0
  6. package/.nyc_output/processinfo/8a42299e-25b8-4720-a08c-cb83c830059c.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -0
  8. package/.nycrc +4 -0
  9. package/.travis.yml +2 -3
  10. package/CHANGELOG.md +75 -0
  11. package/README.md +70 -2
  12. package/array/dedupe.js +14 -14
  13. package/array/is.js +5 -4
  14. package/array/isNotEmpty.js +15 -0
  15. package/boolean/is.js +5 -4
  16. package/caching/memoize.js +14 -19
  17. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/base.css +224 -0
  18. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/block-navigation.js +87 -0
  19. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/favicon.png +0 -0
  20. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/index.html +296 -0
  21. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/prettify.css +1 -0
  22. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/prettify.js +2 -0
  23. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  24. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/sorter.js +196 -0
  25. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +118 -0
  26. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/index.html +146 -0
  27. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/is.js.html +100 -0
  28. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/isNotEmpty.js.html +109 -0
  29. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/boolean/index.html +116 -0
  30. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/boolean/is.js.html +100 -0
  31. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/caching/index.html +116 -0
  32. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +130 -0
  33. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/date/index.html +116 -0
  34. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/date/is.js.html +100 -0
  35. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/define.js.html +106 -0
  36. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +151 -0
  37. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/get.js.html +187 -0
  38. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/index.html +176 -0
  39. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/seal.js.html +151 -0
  40. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/set.js.html +220 -0
  41. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/equal.js.html +274 -0
  42. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/formdata/index.html +116 -0
  43. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/formdata/is.js.html +100 -0
  44. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/index.html +176 -0
  45. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/is.js.html +103 -0
  46. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noop.js.html +100 -0
  47. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +103 -0
  48. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +103 -0
  49. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/sleep.js.html +124 -0
  50. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +232 -0
  51. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/guid.js.html +175 -0
  52. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/index.html +131 -0
  53. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/index.html +131 -0
  54. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/is.js.html +202 -0
  55. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/index.html +221 -0
  56. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/is.js.html +112 -0
  57. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isAbove.js.html +115 -0
  58. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isBelow.js.html +115 -0
  59. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isBetween.js.html +121 -0
  60. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +100 -0
  61. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +136 -0
  62. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/round.js.html +139 -0
  63. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +151 -0
  64. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/define.js.html +118 -0
  65. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +106 -0
  66. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +106 -0
  67. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/forValues.js.html +133 -0
  68. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/index.html +236 -0
  69. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/is.js.html +100 -0
  70. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/isNotEmpty.js.html +109 -0
  71. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/merge.js.html +157 -0
  72. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/pick.js.html +151 -0
  73. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/zip.js.html +139 -0
  74. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/regexp/index.html +116 -0
  75. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/regexp/is.js.html +100 -0
  76. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/index.html +146 -0
  77. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/is.js.html +100 -0
  78. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/isBetween.js.html +133 -0
  79. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/isNotEmpty.js.html +109 -0
  80. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov.info +974 -0
  81. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/base.css +224 -0
  82. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/block-navigation.js +79 -0
  83. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/favicon.png +0 -0
  84. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/index.html +291 -0
  85. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/prettify.css +1 -0
  86. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/prettify.js +2 -0
  87. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  88. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/sorter.js +170 -0
  89. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +113 -0
  90. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/array/index.html +126 -0
  91. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/array/is.js.html +95 -0
  92. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/boolean/index.html +111 -0
  93. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/boolean/is.js.html +95 -0
  94. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/caching/index.html +111 -0
  95. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +125 -0
  96. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/date/index.html +111 -0
  97. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/date/is.js.html +95 -0
  98. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/define.js.html +101 -0
  99. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +146 -0
  100. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/get.js.html +182 -0
  101. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/index.html +171 -0
  102. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/seal.js.html +146 -0
  103. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/set.js.html +215 -0
  104. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/equal.js.html +269 -0
  105. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/formdata/index.html +111 -0
  106. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/formdata/is.js.html +95 -0
  107. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/index.html +171 -0
  108. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/is.js.html +98 -0
  109. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/noop.js.html +95 -0
  110. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +98 -0
  111. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +98 -0
  112. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/sleep.js.html +119 -0
  113. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +218 -0
  114. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/hash/guid.js.html +170 -0
  115. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/hash/index.html +126 -0
  116. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/index.html +111 -0
  117. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/index.html +171 -0
  118. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/is.js.html +104 -0
  119. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +95 -0
  120. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +131 -0
  121. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/round.js.html +134 -0
  122. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +146 -0
  123. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/define.js.html +113 -0
  124. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +101 -0
  125. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +101 -0
  126. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/forValues.js.html +128 -0
  127. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/index.html +216 -0
  128. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/is.js.html +95 -0
  129. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/merge.js.html +152 -0
  130. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/pick.js.html +146 -0
  131. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/zip.js.html +134 -0
  132. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/regexp/index.html +111 -0
  133. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/regexp/is.js.html +95 -0
  134. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/string/index.html +111 -0
  135. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/string/is.js.html +95 -0
  136. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov.info +822 -0
  137. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/base.css +224 -0
  138. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/block-navigation.js +79 -0
  139. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/favicon.png +0 -0
  140. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/index.html +291 -0
  141. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/prettify.css +1 -0
  142. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/prettify.js +2 -0
  143. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  144. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/sorter.js +170 -0
  145. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +113 -0
  146. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/index.html +141 -0
  147. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/is.js.html +95 -0
  148. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/isNotEmpty.js.html +104 -0
  149. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/index.html +111 -0
  150. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/is.js.html +95 -0
  151. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/index.html +111 -0
  152. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +125 -0
  153. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/index.html +111 -0
  154. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/is.js.html +95 -0
  155. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/define.js.html +101 -0
  156. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +146 -0
  157. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/get.js.html +182 -0
  158. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/index.html +171 -0
  159. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/seal.js.html +146 -0
  160. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/set.js.html +215 -0
  161. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/equal.js.html +269 -0
  162. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/index.html +111 -0
  163. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/is.js.html +95 -0
  164. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/index.html +171 -0
  165. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/is.js.html +98 -0
  166. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noop.js.html +95 -0
  167. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +98 -0
  168. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +98 -0
  169. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/sleep.js.html +119 -0
  170. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +227 -0
  171. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/guid.js.html +170 -0
  172. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/index.html +126 -0
  173. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/index.html +126 -0
  174. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/is.js.html +185 -0
  175. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/index.html +186 -0
  176. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/is.js.html +107 -0
  177. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isBetween.js.html +116 -0
  178. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +95 -0
  179. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +131 -0
  180. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/round.js.html +134 -0
  181. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +146 -0
  182. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/define.js.html +113 -0
  183. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +101 -0
  184. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +101 -0
  185. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/forValues.js.html +128 -0
  186. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/index.html +231 -0
  187. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/is.js.html +95 -0
  188. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/isNotEmpty.js.html +104 -0
  189. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/merge.js.html +152 -0
  190. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/pick.js.html +146 -0
  191. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/zip.js.html +134 -0
  192. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/index.html +111 -0
  193. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/is.js.html +95 -0
  194. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/index.html +141 -0
  195. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/is.js.html +95 -0
  196. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isBetween.js.html +128 -0
  197. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isNotEmpty.js.html +104 -0
  198. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov.info +940 -0
  199. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/index.html +14 -14
  200. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/array/dedupe.js.html +1 -1
  201. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/array/index.html +1 -1
  202. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/array/is.js.html +1 -1
  203. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/boolean/index.html +1 -1
  204. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/boolean/is.js.html +1 -1
  205. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/caching/index.html +1 -1
  206. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/caching/memoize.js.html +1 -1
  207. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/date/index.html +1 -1
  208. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/date/is.js.html +1 -1
  209. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/define.js.html +1 -1
  210. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/freeze.js.html +1 -1
  211. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/get.js.html +1 -1
  212. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/index.html +1 -1
  213. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/seal.js.html +1 -1
  214. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/set.js.html +1 -1
  215. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/equal.js.html +1 -1
  216. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/formdata/index.html +1 -1
  217. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/formdata/is.js.html +1 -1
  218. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/index.html +21 -6
  219. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/is.js.html +1 -1
  220. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/noop.js.html +1 -1
  221. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/noopresolve.js.html +1 -1
  222. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/noopreturn.js.html +1 -1
  223. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/sleep.js.html +119 -0
  224. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/hash/fnv1A.js.html +1 -1
  225. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/hash/guid.js.html +1 -1
  226. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/hash/index.html +1 -1
  227. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/index.html +1 -1
  228. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/index.html +1 -1
  229. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/is.js.html +1 -1
  230. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/isNumericalNaN.js.html +1 -1
  231. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/randomBetween.js.html +1 -1
  232. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/round.js.html +1 -1
  233. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/toPercentage.js.html +1 -1
  234. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/define.js.html +1 -1
  235. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/defineFrozen.js.html +1 -1
  236. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/defineSealed.js.html +1 -1
  237. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/forValues.js.html +1 -1
  238. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/index.html +1 -1
  239. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/is.js.html +1 -1
  240. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/merge.js.html +1 -1
  241. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/pick.js.html +1 -1
  242. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/zip.js.html +1 -1
  243. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/regexp/index.html +1 -1
  244. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/regexp/is.js.html +1 -1
  245. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/string/index.html +1 -1
  246. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/string/is.js.html +1 -1
  247. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov.info +18 -0
  248. package/coverage/lcov-report/base.css +5 -4
  249. package/coverage/lcov-report/block-navigation.js +71 -48
  250. package/coverage/lcov-report/favicon.png +0 -0
  251. package/coverage/lcov-report/index.html +247 -50
  252. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  253. package/coverage/lcov-report/sorter.js +51 -14
  254. package/coverage/lcov-report/src/array/dedupe.js.html +145 -0
  255. package/coverage/lcov-report/src/array/index.html +146 -0
  256. package/coverage/lcov-report/src/array/is.js.html +100 -0
  257. package/coverage/lcov-report/src/array/isNotEmpty.js.html +109 -0
  258. package/coverage/lcov-report/src/boolean/index.html +116 -0
  259. package/coverage/lcov-report/src/boolean/is.js.html +100 -0
  260. package/coverage/lcov-report/src/caching/index.html +116 -0
  261. package/coverage/lcov-report/src/caching/memoize.js.html +139 -0
  262. package/coverage/lcov-report/src/date/index.html +116 -0
  263. package/coverage/lcov-report/src/date/is.js.html +100 -0
  264. package/coverage/lcov-report/src/deep/define.js.html +106 -0
  265. package/coverage/lcov-report/src/deep/freeze.js.html +151 -0
  266. package/coverage/lcov-report/src/deep/get.js.html +190 -0
  267. package/coverage/lcov-report/src/deep/index.html +176 -0
  268. package/coverage/lcov-report/src/deep/seal.js.html +151 -0
  269. package/coverage/lcov-report/src/deep/set.js.html +229 -0
  270. package/coverage/lcov-report/src/equal.js.html +280 -0
  271. package/coverage/lcov-report/src/function/index.html +176 -0
  272. package/coverage/lcov-report/src/function/is.js.html +103 -0
  273. package/coverage/lcov-report/src/function/noop.js.html +100 -0
  274. package/coverage/lcov-report/src/function/noopresolve.js.html +103 -0
  275. package/coverage/lcov-report/src/function/noopreturn.js.html +103 -0
  276. package/coverage/lcov-report/src/function/sleep.js.html +121 -0
  277. package/coverage/lcov-report/src/hash/fnv1A.js.html +238 -0
  278. package/coverage/lcov-report/src/hash/guid.js.html +184 -0
  279. package/coverage/lcov-report/src/hash/index.html +131 -0
  280. package/coverage/lcov-report/src/index.html +131 -0
  281. package/coverage/lcov-report/src/is.js.html +196 -0
  282. package/coverage/lcov-report/src/number/index.html +221 -0
  283. package/coverage/lcov-report/src/number/is.js.html +109 -0
  284. package/coverage/lcov-report/src/number/isAbove.js.html +115 -0
  285. package/coverage/lcov-report/src/number/isBelow.js.html +115 -0
  286. package/coverage/lcov-report/src/number/isBetween.js.html +121 -0
  287. package/coverage/lcov-report/src/number/isNumericalNaN.js.html +100 -0
  288. package/coverage/lcov-report/src/number/randomBetween.js.html +136 -0
  289. package/coverage/lcov-report/src/number/round.js.html +139 -0
  290. package/coverage/lcov-report/src/number/toPercentage.js.html +151 -0
  291. package/coverage/lcov-report/src/object/define.js.html +118 -0
  292. package/coverage/lcov-report/src/object/defineFrozen.js.html +106 -0
  293. package/coverage/lcov-report/src/object/defineSealed.js.html +106 -0
  294. package/coverage/lcov-report/src/object/forValues.js.html +133 -0
  295. package/coverage/lcov-report/src/object/index.html +236 -0
  296. package/coverage/lcov-report/src/object/is.js.html +100 -0
  297. package/coverage/lcov-report/src/object/isNotEmpty.js.html +109 -0
  298. package/coverage/lcov-report/src/object/merge.js.html +157 -0
  299. package/coverage/lcov-report/src/object/pick.js.html +151 -0
  300. package/coverage/lcov-report/src/object/zip.js.html +145 -0
  301. package/coverage/lcov-report/src/regexp/index.html +116 -0
  302. package/coverage/lcov-report/src/regexp/is.js.html +100 -0
  303. package/coverage/lcov-report/src/string/index.html +146 -0
  304. package/coverage/lcov-report/src/string/is.js.html +100 -0
  305. package/coverage/lcov-report/src/string/isBetween.js.html +133 -0
  306. package/coverage/lcov-report/src/string/isNotEmpty.js.html +109 -0
  307. package/coverage/lcov.info +1132 -0
  308. package/date/is.js +5 -4
  309. package/deep/define.js +8 -10
  310. package/deep/freeze.js +19 -25
  311. package/deep/get.js +29 -32
  312. package/deep/seal.js +19 -25
  313. package/deep/set.js +41 -42
  314. package/equal.js +44 -59
  315. package/function/is.js +5 -6
  316. package/function/noop.js +2 -3
  317. package/function/noopresolve.js +7 -8
  318. package/function/noopreturn.js +5 -6
  319. package/function/sleep.js +15 -0
  320. package/hash/fnv1A.js +38 -54
  321. package/hash/guid.js +22 -30
  322. package/is.js +133 -0
  323. package/number/is.js +8 -8
  324. package/number/isAbove.js +15 -0
  325. package/number/isBelow.js +15 -0
  326. package/number/isBetween.js +16 -0
  327. package/number/isNumericalNaN.js +5 -4
  328. package/number/randomBetween.js +16 -19
  329. package/number/round.js +16 -19
  330. package/number/toPercentage.js +21 -26
  331. package/object/define.js +12 -13
  332. package/object/defineFrozen.js +9 -11
  333. package/object/defineSealed.js +9 -11
  334. package/object/forValues.js +17 -22
  335. package/object/is.js +5 -4
  336. package/object/isNotEmpty.js +15 -0
  337. package/object/merge.js +21 -22
  338. package/object/pick.js +22 -29
  339. package/object/zip.js +19 -20
  340. package/package.json +15 -17
  341. package/regexp/is.js +5 -4
  342. package/string/is.js +5 -4
  343. package/string/isBetween.js +21 -0
  344. package/string/isNotEmpty.js +16 -0
  345. package/test/constants.js +79 -0
  346. package/test/src/array.test.js +104 -51
  347. package/test/src/boolean.test.js +39 -43
  348. package/test/src/caching.test.js +10 -1
  349. package/test/src/date.test.js +39 -43
  350. package/test/src/deep.test.js +155 -66
  351. package/test/src/equal.test.js +66 -57
  352. package/test/src/function.test.js +85 -68
  353. package/test/src/hash.test.js +39 -30
  354. package/test/src/is.test.js +187 -0
  355. package/test/src/number.test.js +467 -73
  356. package/test/src/object.test.js +211 -149
  357. package/test/src/regexp.test.js +39 -43
  358. package/test/src/string.test.js +216 -40
  359. package/formdata/is.js +0 -9
  360. package/karma.conf.js +0 -64
  361. package/test/src/formdata.test.js +0 -74
  362. package/test/test_index.js +0 -2
@@ -1,83 +1,80 @@
1
1
  'use strict';
2
2
 
3
- import isObject from '../../src/object/is';
4
- import pick from '../../src/object/pick';
5
- import merge from '../../src/object/merge';
6
- import forValues from '../../src/object/forValues';
7
- import zip from '../../src/object/zip';
8
- import define from '../../src/object/define';
9
- import defineFrozen from '../../src/object/defineFrozen';
10
- import defineSealed from '../../src/object/defineSealed';
11
- import noopreturn from '../../src/function/noopreturn';
3
+ import isObject from '../../src/object/is';
4
+ import isNotEmptyObject from '../../src/object/isNotEmpty';
5
+ import pick from '../../src/object/pick';
6
+ import merge from '../../src/object/merge';
7
+ import forValues from '../../src/object/forValues';
8
+ import zip from '../../src/object/zip';
9
+ import define from '../../src/object/define';
10
+ import defineFrozen from '../../src/object/defineFrozen';
11
+ import defineSealed from '../../src/object/defineSealed';
12
+ import noopreturn from '../../src/function/noopreturn';
13
+ import {
14
+ fnNumericValues,
15
+ fnBooleanValues,
16
+ fnRegexValues,
17
+ fnStringValues,
18
+ fnObjectValues,
19
+ fnDateValues,
20
+ fnArrayValues,
21
+ fnFunctionValues,
22
+ fnNullables,
23
+ } from '../constants';
24
+
25
+ const chai = require('chai');
26
+ const spies = require('chai-spies');
27
+ chai.use(spies);
28
+
29
+ const expect = chai.expect;
30
+ const assert = chai.assert;
31
+ const should = chai.should();
32
+ const spy = chai.spy;
12
33
 
13
34
  describe("Object - isObject", () => {
14
35
  it ('not see a string as an object', () => {
15
- expect(isObject('foo')).toEqual(false);
16
- expect(isObject(new String('bar'))).toEqual(false);
36
+ let vals = fnStringValues();
37
+ for (let el of vals) expect(isObject(el)).to.eql(false);
17
38
  });
18
39
 
19
40
  it ('not see a numeric value as an object', () => {
20
- expect(isObject(1)).toEqual(false);
21
- expect(isObject(NaN)).toEqual(false);
22
- expect(isObject(0.000001)).toEqual(false);
23
- expect(isObject(8e10)).toEqual(false);
24
- expect(isObject(Math.PI)).toEqual(false);
25
- expect(isObject(new Number(1.12345))).toEqual(false);
26
- expect(isObject(new Number(Number.EPSILON))).toEqual(false);
41
+ let vals = fnNumericValues();
42
+ for (let el of vals) expect(isObject(el)).to.eql(false);
27
43
  });
28
44
 
29
45
  it ('not see a boolean as an object', () => {
30
- expect(isObject(true)).toEqual(false);
31
- expect(isObject(false)).toEqual(false);
32
- expect(isObject(Boolean(true))).toEqual(false);
33
- expect(isObject(Boolean(false))).toEqual(false);
34
- expect(isObject(Boolean('foo'))).toEqual(false);
35
- expect(isObject(new Boolean(false))).toEqual(false);
46
+ let vals = fnBooleanValues();
47
+ for (let el of vals) expect(isObject(el)).to.eql(false);
36
48
  });
37
49
 
38
50
  it ('not see a regex as an object', () => {
39
- expect(isObject(/abcdefg/i)).toEqual(false);
40
- expect(isObject(new RegExp('\\w+'))).toEqual(false);
51
+ let vals = fnRegexValues();
52
+ for (let el of vals) expect(isObject(el)).to.eql(false);
41
53
  });
42
54
 
43
55
  it ('see an object as an object', () => {
44
- expect(isObject({bar:'foo'})).toEqual(true);
45
- expect(isObject(new Object())).toEqual(true);
46
- expect(isObject(Object.create(null))).toEqual(true);
47
- expect(isObject(Object.create([]))).toEqual(true);
56
+ let vals = fnObjectValues();
57
+ for (let el of vals) expect(isObject(el)).to.eql(true);
48
58
  });
49
59
 
50
- it ('not see a null as an object', () => {
51
- expect(isObject(null)).toEqual(false);
60
+ it ('not see a nullable as an object', () => {
61
+ let vals = fnNullables();
62
+ for (let el of vals) expect(isObject(el)).to.eql(false);
52
63
  });
53
64
 
54
65
  it ('not see a date as an object', () => {
55
- expect(isObject(new Date())).toEqual(false);
56
- expect(isObject(Date.now())).toEqual(false);
57
- });
58
-
59
- it ('not see an undefined as an object', () => {
60
- expect(isObject(undefined)).toEqual(false);
66
+ let vals = fnDateValues();
67
+ for (let el of vals) expect(isObject(el)).to.eql(false);
61
68
  });
62
69
 
63
70
  it ('not see an array as an object', () => {
64
- expect(isObject([0, 1, 2])).toEqual(false);
65
- expect(isObject(new Array(1, 2, 3))).toEqual(false);
66
- expect(isObject(new Array(5))).toEqual(false);
71
+ let vals = fnArrayValues();
72
+ for (let el of vals) expect(isObject(el)).to.eql(false);
67
73
  });
68
74
 
69
75
  it ('not see a function as an object', () => {
70
- function testFunction () {}
71
-
72
- const testArrowFunction = () => {};
73
-
74
- expect(isObject(testFunction)).toEqual(false);
75
- expect(isObject(testArrowFunction)).toEqual(false);
76
- });
77
-
78
- it ('not see formdata as an object', () => {
79
- let fdata = new FormData();
80
- expect(isObject(fdata)).toEqual(false);
76
+ let vals = fnFunctionValues();
77
+ for (let el of vals) expect(isObject(el)).to.eql(false);
81
78
  });
82
79
  });
83
80
 
@@ -93,38 +90,38 @@ describe("Object - pick", () => {
93
90
  };
94
91
 
95
92
  it ('correctly retrieve the selected keys', () => {
96
- expect(pick(subject, ['a'])).toEqual({ a: 100 });
97
- expect(pick(subject, ['a', 'b'])).toEqual({ a: 100, b: 200 });
98
- expect(pick(subject, ['a', 'c.e'])).toEqual({ a: 100, c: { e: true }});
99
- expect(pick(subject, ['a', 'c.d', 'c.f'])).toEqual({ a: 100, c: { d: 5, f: [0, 1, 2] }});
100
- expect(pick(subject, ['a', 'b', 'd'])).toEqual({ a: 100, b: 200 });
93
+ expect(pick(subject, ['a'])).to.eql({ a: 100 });
94
+ expect(pick(subject, ['a', 'b'])).to.eql({ a: 100, b: 200 });
95
+ expect(pick(subject, ['a', 'c.e'])).to.eql({ a: 100, c: { e: true }});
96
+ expect(pick(subject, ['a', 'c.d', 'c.f'])).to.eql({ a: 100, c: { d: 5, f: [0, 1, 2] }});
97
+ expect(pick(subject, ['a', 'b', 'd'])).to.eql({ a: 100, b: 200 });
101
98
  });
102
99
 
103
100
  it ('returns an empty object when nothing is passed', () => {
104
- expect(pick()).toEqual({});
101
+ expect(pick()).to.eql({});
105
102
  });
106
103
 
107
104
  it ('returns an empty object when no keys are passed', () => {
108
- expect(pick(subject)).toEqual({});
105
+ expect(pick(subject)).to.eql({});
109
106
  });
110
107
 
111
108
  it ('throws a type error when passed something else than an object', () => {
112
109
  expect(function() {
113
110
  pick(false);
114
- }).toThrowError(TypeError);
111
+ }).to.throw(TypeError);
115
112
  expect(function() {
116
113
  pick(subject, false);
117
- }).toThrowError(TypeError);
114
+ }).to.throw(TypeError);
118
115
  });
119
116
  });
120
117
 
121
118
  describe("Object - merge", () => {
122
119
  it ('returns the target object if only passed a target', () => {
123
- expect(merge({a: 1, b: 2})).toEqual({a: 1, b:2 });
120
+ expect(merge({a: 1, b: 2})).to.eql({a: 1, b:2 });
124
121
  });
125
122
 
126
123
  it ('merges keys correctly', () => {
127
- expect(merge({ a: 1, b: 2, c: true}, { a: 5, c: false })).toEqual({ a: 5, b: 2, c: false });
124
+ expect(merge({ a: 1, b: 2, c: true}, { a: 5, c: false })).to.eql({ a: 5, b: 2, c: false });
128
125
  expect(merge({
129
126
  a: [0, 1, 2, 3],
130
127
  b: {
@@ -136,7 +133,7 @@ describe("Object - merge", () => {
136
133
  foo: 'bar',
137
134
  hello: 'world',
138
135
  },
139
- }, { a: ['foo', 'bar'], b: { available: true }, c: { hello: 'core' }})).toEqual({
136
+ }, { a: ['foo', 'bar'], b: { available: true }, c: { hello: 'core' }})).to.eql({
140
137
  a: ['foo', 'bar'],
141
138
  b: {
142
139
  name: 'utils',
@@ -151,13 +148,13 @@ describe("Object - merge", () => {
151
148
  });
152
149
 
153
150
  it ('does not merge in keys that are not defined in the target', () => {
154
- expect(merge({ a: 1, b: 2 }, { a: 2, b: 3, c: 4 })).toEqual({ a: 2, b: 3 });
151
+ expect(merge({ a: 1, b: 2 }, { a: 2, b: 3, c: 4 })).to.eql({ a: 2, b: 3 });
155
152
  });
156
153
 
157
154
  it ('throws a type error when passed something else than an object', () => {
158
155
  expect(function() {
159
156
  merge(false, { a: 2 })
160
- }).toThrowError(TypeError);
157
+ }).to.throw(TypeError);
161
158
  });
162
159
  });
163
160
 
@@ -183,8 +180,8 @@ describe("Object - forValues", () => {
183
180
  });
184
181
 
185
182
  it ('correctly executes the cb on every value', () => {
186
- expect(forValues(subject_sum, (key, val) => val + 1)).toEqual({ a: 2, b: 3, c: 4 });
187
- expect(forValues(subject_obj, (key, val) => Object.assign(val, { name: `${val.first_name} ${val.last_name}` }))).toEqual({
183
+ expect(forValues(subject_sum, (key, val) => val + 1)).to.eql({ a: 2, b: 3, c: 4 });
184
+ expect(forValues(subject_obj, (key, val) => Object.assign(val, { name: `${val.first_name} ${val.last_name}` }))).to.eql({
188
185
  1823 : {
189
186
  name: 'Jane Doe',
190
187
  first_name: 'Jane',
@@ -201,55 +198,55 @@ describe("Object - forValues", () => {
201
198
  last_name: 'The Clown',
202
199
  },
203
200
  });
204
- expect(forValues(subject_sum, noopreturn)).toEqual(subject_sum);
201
+ expect(forValues(subject_sum, noopreturn)).to.eql(subject_sum);
205
202
  });
206
203
 
207
204
  it ('throws a type error when passed something else than an object', () => {
208
205
  expect(function() {
209
206
  forValues(false, (key, val) => val + 1);
210
- }).toThrowError(TypeError);
207
+ }).to.throw(TypeError);
211
208
  });
212
209
  });
213
210
 
214
211
  describe("Object - zip", () => {
215
212
  it ('returns an empty object when called without parameters', () => {
216
- expect(zip()).toEqual({});
213
+ expect(zip()).to.eql({});
217
214
  });
218
215
 
219
216
  it ('only returns a zipped object for the keys that are passed', () => {
220
- expect(zip(['a'], [1, 2, 3])).toEqual({a: 1});
217
+ expect(zip(['a'], [1, 2, 3])).to.eql({a: 1});
221
218
  });
222
219
 
223
220
  it ('defaults to null when passed with only keys', () => {
224
- expect(zip(['a', 'b', 'c'])).toEqual({a: null, b: null, c: null});
221
+ expect(zip(['a', 'b', 'c'])).to.eql({a: null, b: null, c: null});
225
222
  });
226
223
 
227
224
  it ('defaults to the provided default when passed one', () => {
228
- expect(zip(['a', 'b', 'c'], false, false)).toEqual({a: false, b: false, c: false});
225
+ expect(zip(['a', 'b', 'c'], false, false)).to.eql({a: false, b: false, c: false});
229
226
  });
230
227
 
231
228
  it ('zips an object when passed with the correct parameters', () => {
232
- expect(zip(['a', 'b', 'c'], [1, 2, 3])).toEqual({ a: 1, b: 2, c: 3});
229
+ expect(zip(['a', 'b', 'c'], [1, 2, 3])).to.eql({ a: 1, b: 2, c: 3});
233
230
  });
234
231
 
235
232
  it ('throws a type error when passed something else than the expected parameters', () => {
236
233
  expect(function() {
237
234
  zip(false);
238
- }).toThrowError(TypeError);
235
+ }).to.throw(TypeError);
239
236
 
240
237
  expect(function() {
241
238
  zip(['a'], { hello: 'bar' });
242
- }).toThrowError(TypeError);
239
+ }).to.throw(TypeError);
243
240
  });
244
241
  });
245
242
 
246
243
  describe("Object - define", () => {
247
244
  it ('returns an empty object when called without parameters', () => {
248
- expect(define()).toEqual({});
245
+ expect(define()).to.eql({});
249
246
  });
250
247
 
251
248
  it ('returns the same object when called with an empty properties object and an existing object', () => {
252
- expect(define({}, {a: 1})).toEqual({a: 1});
249
+ expect(define({}, {a: 1})).to.eql({a: 1});
253
250
  });
254
251
 
255
252
  it ('defines properties that are passed without passing an existing object', () => {
@@ -264,22 +261,22 @@ describe("Object - define", () => {
264
261
  },
265
262
  });
266
263
 
267
- expect(obj.a).toBeDefined();
268
- expect(Object.getOwnPropertyDescriptor(obj, 'a').set).toBe(undefined);
269
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'a').get).toBe('function');
264
+ should.exist(obj.a);
265
+ expect(Object.getOwnPropertyDescriptor(obj, 'a').set).to.eql(undefined);
266
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'a').get, 'function');
270
267
 
271
- expect(obj.b).toBeDefined();
272
- expect(Object.getOwnPropertyDescriptor(obj, 'b').get).toBe(undefined);
273
- expect(Object.getOwnPropertyDescriptor(obj, 'b').set).toBe(undefined);
274
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'b').value).toBe('function');
268
+ should.exist(obj.b);
269
+ expect(Object.getOwnPropertyDescriptor(obj, 'b').get).to.eql(undefined);
270
+ expect(Object.getOwnPropertyDescriptor(obj, 'b').set).to.eql(undefined);
271
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'b').value, 'function');
275
272
 
276
- const spy_a = spyOnProperty(obj, 'a', 'get').and.callThrough();
277
- expect(obj.a).toBe(1);
278
- expect(spy_a).toHaveBeenCalled();
273
+ const spy_a = spy(obj, 'a');
274
+ expect(obj.a).to.eql(1);
275
+ expect(spy_a).to.have.been.called;
279
276
 
280
- const spy_b = spyOnProperty(obj, 'b', 'value').and.callThrough();
281
- expect(obj.b()).toBe(2);
282
- expect(spy_b).toHaveBeenCalled();
277
+ const spy_b = spy(obj, 'b');
278
+ expect(obj.b()).to.eql(2);
279
+ expect(spy_b).to.have.been.called;
283
280
  });
284
281
 
285
282
  it ('defines properties that are passed on an existing object', () => {
@@ -294,24 +291,24 @@ describe("Object - define", () => {
294
291
  },
295
292
  }, { c: 1 });
296
293
 
297
- expect(obj.a).toBeDefined();
298
- expect(Object.getOwnPropertyDescriptor(obj, 'a').set).toBe(undefined);
299
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'a').get).toBe('function');
294
+ should.exist(obj.a);
295
+ expect(Object.getOwnPropertyDescriptor(obj, 'a').set).to.eql(undefined);
296
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'a').get, 'function');
300
297
 
301
- expect(obj.b).toBeDefined();
302
- expect(Object.getOwnPropertyDescriptor(obj, 'b').get).toBe(undefined);
303
- expect(Object.getOwnPropertyDescriptor(obj, 'b').set).toBe(undefined);
304
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'b').value).toBe('function');
298
+ should.exist(obj.b);
299
+ expect(Object.getOwnPropertyDescriptor(obj, 'b').get).to.eql(undefined);
300
+ expect(Object.getOwnPropertyDescriptor(obj, 'b').set).to.eql(undefined);
301
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'b').value, 'function');
305
302
 
306
- const spy_a = spyOnProperty(obj, 'a', 'get').and.callThrough();
307
- expect(obj.a).toBe(1);
308
- expect(spy_a).toHaveBeenCalled();
303
+ const spy_a = spy(obj, 'a');
304
+ expect(obj.a).to.eql(1);
305
+ expect(spy_a).to.have.been.called;
309
306
 
310
- const spy_b = spyOnProperty(obj, 'b', 'value').and.callThrough();
311
- expect(obj.b()).toBe(2);
312
- expect(spy_b).toHaveBeenCalled();
307
+ const spy_b = spy(obj, 'b');
308
+ expect(obj.b()).to.eql(2);
309
+ expect(spy_b).to.have.been.called;
313
310
 
314
- expect(obj.c).toBe(1);
311
+ expect(obj.c).to.eql(1);
315
312
  });
316
313
 
317
314
  it ('defines properties that are passed on an existing object', () => {
@@ -326,32 +323,32 @@ describe("Object - define", () => {
326
323
  },
327
324
  }, { a: 5 });
328
325
 
329
- expect(obj.a).toBeDefined();
330
- expect(Object.getOwnPropertyDescriptor(obj, 'a').set).toBe(undefined);
331
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'a').get).toBe('function');
326
+ should.exist(obj.a);
327
+ expect(Object.getOwnPropertyDescriptor(obj, 'a').set).to.eql(undefined);
328
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'a').get, 'function');
332
329
 
333
- expect(obj.b).toBeDefined();
334
- expect(Object.getOwnPropertyDescriptor(obj, 'b').get).toBe(undefined);
335
- expect(Object.getOwnPropertyDescriptor(obj, 'b').set).toBe(undefined);
336
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'b').value).toBe('function');
330
+ should.exist(obj.b);
331
+ expect(Object.getOwnPropertyDescriptor(obj, 'b').get).to.eql(undefined);
332
+ expect(Object.getOwnPropertyDescriptor(obj, 'b').set).to.eql(undefined);
333
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'b').value, 'function');
337
334
 
338
- const spy_a = spyOnProperty(obj, 'a', 'get').and.callThrough();
339
- expect(obj.a).toBe(1);
340
- expect(spy_a).toHaveBeenCalled();
335
+ const spy_a = spy(obj, 'a');
336
+ expect(obj.a).to.eql(1);
337
+ expect(spy_a).to.have.been.called;
341
338
 
342
- const spy_b = spyOnProperty(obj, 'b', 'value').and.callThrough();
343
- expect(obj.b()).toBe(2);
344
- expect(spy_b).toHaveBeenCalled();
339
+ const spy_b = spy(obj, 'b');
340
+ expect(obj.b()).to.eql(2);
341
+ expect(spy_b).to.have.been.called;
345
342
  });
346
343
 
347
344
  it ('throws a type error when passed something else than the expected parameters', () => {
348
345
  expect(function() {
349
346
  define(false);
350
- }).toThrowError(TypeError);
347
+ }).to.throw(TypeError);
351
348
 
352
349
  expect(function() {
353
350
  define({}, false);
354
- }).toThrowError(TypeError);
351
+ }).to.throw(TypeError);
355
352
  });
356
353
  });
357
354
 
@@ -359,21 +356,21 @@ describe("Object - defineFrozen", () => {
359
356
  it ('returns a frozen empty object when called without parameters', () => {
360
357
  const obj = defineFrozen();
361
358
 
362
- expect(obj).toEqual({});
363
- expect(Object.isFrozen(obj)).toEqual(true);
359
+ expect(obj).to.eql({});
360
+ expect(Object.isFrozen(obj)).to.eql(true);
364
361
  expect(function() {
365
362
  obj.b = false;
366
- }).toThrowError();
363
+ }).to.throw();
367
364
  });
368
365
 
369
366
  it ('returns a frozen version of the same object when called with an empty properties object and an existing object', () => {
370
367
  const obj = defineFrozen({}, {a: 1});
371
368
 
372
- expect(obj).toEqual({a: 1});
373
- expect(Object.isFrozen(obj)).toEqual(true);
369
+ expect(obj).to.eql({a: 1});
370
+ expect(Object.isFrozen(obj)).to.eql(true);
374
371
  expect(function() {
375
372
  obj.a = 9999;
376
- }).toThrowError();
373
+ }).to.throw();
377
374
  });
378
375
 
379
376
  it ('defines properties that are passed without passing an existing object, and freezes them', () => {
@@ -383,28 +380,28 @@ describe("Object - defineFrozen", () => {
383
380
  },
384
381
  });
385
382
 
386
- expect(obj.a).toBeDefined();
387
- expect(Object.getOwnPropertyDescriptor(obj, 'a').set).toBe(undefined);
388
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'a').get).toBe('function');
383
+ should.exist(obj.a);
384
+ expect(Object.getOwnPropertyDescriptor(obj, 'a').set).to.eql(undefined);
385
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'a').get, 'function');
389
386
 
390
- expect(Object.isFrozen(obj)).toEqual(true);
387
+ expect(Object.isFrozen(obj)).to.eql(true);
391
388
  expect(function () {
392
389
  Object.defineProperty(obj, {
393
390
  x: {
394
391
  get: () => 9999,
395
392
  },
396
393
  });
397
- }).toThrowError();
394
+ }).to.throw();
398
395
  });
399
396
 
400
397
  it ('throws a type error when passed something else than the expected parameters', () => {
401
398
  expect(function() {
402
399
  defineFrozen(false);
403
- }).toThrowError(TypeError);
400
+ }).to.throw(TypeError);
404
401
 
405
402
  expect(function() {
406
403
  defineFrozen({}, false);
407
- }).toThrowError(TypeError);
404
+ }).to.throw(TypeError);
408
405
  });
409
406
  });
410
407
 
@@ -412,24 +409,24 @@ describe("Object - defineSealed", () => {
412
409
  it ('returns a sealed empty object when called without parameters', () => {
413
410
  const obj = defineSealed();
414
411
 
415
- expect(obj).toEqual({});
416
- expect(Object.isSealed(obj)).toEqual(true);
412
+ expect(obj).to.eql({});
413
+ expect(Object.isSealed(obj)).to.eql(true);
417
414
  expect(function() {
418
415
  obj.b = false;
419
- }).toThrowError();
416
+ }).to.throw();
420
417
  });
421
418
 
422
419
  it ('returns a sealed version of the same object when called with an empty properties object and an existing object', () => {
423
420
  const obj = defineSealed({}, {a: 1});
424
421
 
425
- expect(obj).toEqual({a: 1});
426
- expect(Object.isSealed(obj)).toEqual(true);
422
+ expect(obj).to.eql({a: 1});
423
+ expect(Object.isSealed(obj)).to.eql(true);
427
424
  expect(function() {
428
425
  obj.a = 9999;
429
- }).not.toThrowError();
426
+ }).not.to.throw();
430
427
  expect(function() {
431
428
  obj.b = 9999;
432
- }).toThrowError();
429
+ }).to.throw();
433
430
  });
434
431
 
435
432
  it ('defines properties that are passed without passing an existing object, and seals them', () => {
@@ -439,30 +436,95 @@ describe("Object - defineSealed", () => {
439
436
  },
440
437
  });
441
438
 
442
- expect(obj.a).toBeDefined();
443
- expect(Object.getOwnPropertyDescriptor(obj, 'a').set).toBe(undefined);
444
- expect(typeof Object.getOwnPropertyDescriptor(obj, 'a').get).toBe('function');
439
+ should.exist(obj.a);
440
+ expect(Object.getOwnPropertyDescriptor(obj, 'a').set).to.eql(undefined);
441
+ assert.typeOf(Object.getOwnPropertyDescriptor(obj, 'a').get, 'function');
445
442
 
446
- expect(Object.isSealed(obj)).toEqual(true);
443
+ expect(Object.isSealed(obj)).to.eql(true);
447
444
  expect(function () {
448
445
  obj.a = 9999;
449
- }).toThrowError();
446
+ }).to.throw();
450
447
  expect(function () {
451
448
  Object.defineProperty(obj, {
452
449
  x: {
453
450
  get: () => 9999,
454
451
  },
455
452
  });
456
- }).toThrowError();
453
+ }).to.throw();
457
454
  });
458
455
 
459
456
  it ('throws a type error when passed something else than the expected parameters', () => {
460
457
  expect(function() {
461
458
  defineSealed(false);
462
- }).toThrowError(TypeError);
459
+ }).to.throw(TypeError);
463
460
 
464
461
  expect(function() {
465
462
  defineSealed({}, false);
466
- }).toThrowError(TypeError);
463
+ }).to.throw(TypeError);
464
+ });
465
+ });
466
+
467
+ describe("Object - isNotEmptyObject", () => {
468
+ it ('not see a string as a not empty object', () => {
469
+ let vals = fnStringValues();
470
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
471
+ });
472
+
473
+ it ('not see a numeric value as a not empty object', () => {
474
+ let vals = fnNumericValues();
475
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
476
+ });
477
+
478
+ it ('not see a boolean as a not empty object', () => {
479
+ let vals = fnBooleanValues();
480
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
481
+ });
482
+
483
+ it ('not see a regex as a not empty object', () => {
484
+ let vals = fnRegexValues();
485
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
486
+ });
487
+
488
+ it ('see an object as an object', () => {
489
+ expect(isNotEmptyObject({bar:'foo'})).to.eql(true);
490
+
491
+ expect(isNotEmptyObject(Object.defineProperties(Object.create(null), {
492
+ 'hi': {
493
+ enumerable: true,
494
+ get: () => 'there',
495
+ }
496
+ }))).to.eql(true);
497
+ });
498
+
499
+ it ('see an empty object as an empty object', () => {
500
+ expect(isNotEmptyObject(Object.create(null))).to.eql(false);
501
+ expect(isNotEmptyObject(new Object())).to.eql(false);
502
+ expect(isNotEmptyObject(Object.create([]))).to.eql(false);
503
+ expect(isNotEmptyObject(Object.defineProperties(Object.create(null), {
504
+ 'hi': {
505
+ enumerable: false,
506
+ get: () => 'there',
507
+ }
508
+ }))).to.eql(false);
509
+ });
510
+
511
+ it ('not see a nullable as a not empty object', () => {
512
+ let vals = fnNullables();
513
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
514
+ });
515
+
516
+ it ('not see a date as a not empty object', () => {
517
+ let vals = fnDateValues();
518
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
519
+ });
520
+
521
+ it ('not see an array as a not empty object', () => {
522
+ let vals = fnArrayValues();
523
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
524
+ });
525
+
526
+ it ('not see a function as a not empty object', () => {
527
+ let vals = fnFunctionValues();
528
+ for (let el of vals) expect(isNotEmptyObject(el)).to.eql(false);
467
529
  });
468
530
  });