@vinicunca/perkakas 0.3.1 → 0.3.3

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 (338) hide show
  1. package/dist/commonjs/array/all-pass.js +2 -2
  2. package/dist/commonjs/array/any-pass.js +2 -2
  3. package/dist/commonjs/array/chunk.js +3 -3
  4. package/dist/commonjs/array/concat.js +2 -2
  5. package/dist/commonjs/array/count-by.js +8 -6
  6. package/dist/commonjs/array/difference-with.js +5 -15
  7. package/dist/commonjs/array/difference.js +5 -15
  8. package/dist/commonjs/array/drop-first-by.js +1 -1
  9. package/dist/commonjs/array/drop-last-while.js +2 -2
  10. package/dist/commonjs/array/drop-last.js +3 -3
  11. package/dist/commonjs/array/drop-while.js +2 -2
  12. package/dist/commonjs/array/drop.js +5 -12
  13. package/dist/commonjs/array/filter.js +3 -16
  14. package/dist/commonjs/array/find-index.js +12 -25
  15. package/dist/commonjs/array/find-last-index.js +3 -3
  16. package/dist/commonjs/array/find-last.js +3 -3
  17. package/dist/commonjs/array/find.js +10 -22
  18. package/dist/commonjs/array/first.js +4 -10
  19. package/dist/commonjs/array/flat-map-to-obj.js +10 -9
  20. package/dist/commonjs/array/flat-map.js +5 -15
  21. package/dist/commonjs/array/flatten-deep.js +9 -19
  22. package/dist/commonjs/array/flatten.js +5 -17
  23. package/dist/commonjs/array/for-each.js +18 -22
  24. package/dist/commonjs/array/group-by.js +5 -5
  25. package/dist/commonjs/array/index-by.js +20 -7
  26. package/dist/commonjs/array/index.js +4 -0
  27. package/dist/commonjs/array/intersection-with.js +5 -15
  28. package/dist/commonjs/array/intersection.js +6 -16
  29. package/dist/commonjs/array/last.js +2 -2
  30. package/dist/commonjs/array/length.js +2 -2
  31. package/dist/commonjs/array/map-to-obj.js +8 -7
  32. package/dist/commonjs/array/map.js +11 -15
  33. package/dist/commonjs/array/max-by.js +6 -6
  34. package/dist/commonjs/array/mean-by.js +6 -6
  35. package/dist/commonjs/array/merge-all.js +5 -1
  36. package/dist/commonjs/array/min-by.js +6 -6
  37. package/dist/commonjs/array/only.js +3 -6
  38. package/dist/commonjs/array/partition.js +5 -5
  39. package/dist/commonjs/array/range.js +2 -2
  40. package/dist/commonjs/array/rank-by.js +1 -1
  41. package/dist/commonjs/array/reduce.js +3 -3
  42. package/dist/commonjs/array/reject.js +9 -22
  43. package/dist/commonjs/array/reverse.js +2 -2
  44. package/dist/commonjs/array/sample.js +1 -1
  45. package/dist/commonjs/array/shuffle.js +3 -3
  46. package/dist/commonjs/array/sort-by.js +5 -43
  47. package/dist/commonjs/array/sort.js +3 -3
  48. package/dist/commonjs/array/sorted-index-by.js +19 -0
  49. package/dist/commonjs/array/sorted-index-with.js +15 -0
  50. package/dist/commonjs/array/sorted-index.js +12 -0
  51. package/dist/commonjs/array/sorted-last-index-by.js +19 -0
  52. package/dist/commonjs/array/sorted-last-index.js +12 -0
  53. package/dist/commonjs/array/splice.js +3 -3
  54. package/dist/commonjs/array/split-at.js +3 -3
  55. package/dist/commonjs/array/split-when.js +6 -6
  56. package/dist/commonjs/array/sum-by.js +6 -6
  57. package/dist/commonjs/array/swap-indices.js +7 -7
  58. package/dist/commonjs/array/take-first-by.js +1 -1
  59. package/dist/commonjs/array/take-while.js +2 -2
  60. package/dist/commonjs/array/take.js +8 -21
  61. package/dist/commonjs/array/uniq-by.js +4 -11
  62. package/dist/commonjs/array/uniq-with.js +8 -18
  63. package/dist/commonjs/array/uniq.js +4 -11
  64. package/dist/commonjs/array/zip-obj.js +2 -2
  65. package/dist/commonjs/array/zip-with.js +4 -4
  66. package/dist/commonjs/array/zip.js +2 -2
  67. package/dist/commonjs/function/create-pipe.js +1 -1
  68. package/dist/commonjs/function/index.js +1 -0
  69. package/dist/commonjs/function/pipe.js +18 -24
  70. package/dist/commonjs/function/purry.js +8 -9
  71. package/dist/commonjs/function/times.js +18 -0
  72. package/dist/commonjs/guard/is-defined.js +1 -1
  73. package/dist/commonjs/guard/is-empty.js +4 -4
  74. package/dist/commonjs/guard/is-nil.js +1 -1
  75. package/dist/commonjs/guard/is-not.js +1 -3
  76. package/dist/commonjs/number/add.js +2 -2
  77. package/dist/commonjs/number/clamp.js +6 -6
  78. package/dist/commonjs/number/divide.js +2 -2
  79. package/dist/commonjs/number/multiply.js +2 -2
  80. package/dist/commonjs/number/subtract.js +2 -2
  81. package/dist/commonjs/object/add-prop.js +2 -2
  82. package/dist/commonjs/object/clone.js +5 -5
  83. package/dist/commonjs/object/equals.js +48 -52
  84. package/dist/commonjs/object/for-each-obj.js +9 -9
  85. package/dist/commonjs/object/from-pairs.js +6 -2
  86. package/dist/commonjs/object/invert.js +5 -3
  87. package/dist/commonjs/object/keys.js +3 -2
  88. package/dist/commonjs/object/map-keys.js +2 -2
  89. package/dist/commonjs/object/map-values.js +2 -2
  90. package/dist/commonjs/object/merge-deep.js +2 -2
  91. package/dist/commonjs/object/merge.js +2 -2
  92. package/dist/commonjs/object/omit-by.js +7 -6
  93. package/dist/commonjs/object/omit.js +2 -2
  94. package/dist/commonjs/object/path-or.js +6 -6
  95. package/dist/commonjs/object/pick-by.js +9 -8
  96. package/dist/commonjs/object/pick.js +7 -9
  97. package/dist/commonjs/object/set-path.js +14 -15
  98. package/dist/commonjs/object/set.js +2 -2
  99. package/dist/commonjs/object/swap-props.js +2 -2
  100. package/dist/commonjs/string/random-string.js +11 -5
  101. package/dist/commonjs/string/string-to-path.js +5 -5
  102. package/dist/commonjs/utils/binary-search-cutoff-index.js +19 -0
  103. package/dist/commonjs/utils/heap.js +1 -1
  104. package/dist/commonjs/utils/purry-order-rules.js +1 -1
  105. package/dist/commonjs/utils/quick-select.js +2 -2
  106. package/dist/commonjs/utils/reduce-lazy.js +9 -6
  107. package/dist/commonjs/utils/to-single.js +1 -2
  108. package/dist/es/array/all-pass.js +2 -2
  109. package/dist/es/array/any-pass.js +2 -2
  110. package/dist/es/array/chunk.js +3 -3
  111. package/dist/es/array/concat.js +2 -2
  112. package/dist/es/array/count-by.js +8 -6
  113. package/dist/es/array/difference-with.js +5 -15
  114. package/dist/es/array/difference.js +5 -15
  115. package/dist/es/array/drop-first-by.js +1 -1
  116. package/dist/es/array/drop-last-while.js +2 -2
  117. package/dist/es/array/drop-last.js +3 -3
  118. package/dist/es/array/drop-while.js +2 -2
  119. package/dist/es/array/drop.js +5 -12
  120. package/dist/es/array/filter.js +3 -16
  121. package/dist/es/array/find-index.js +12 -25
  122. package/dist/es/array/find-last-index.js +3 -3
  123. package/dist/es/array/find-last.js +3 -3
  124. package/dist/es/array/find.js +10 -22
  125. package/dist/es/array/first.js +4 -10
  126. package/dist/es/array/flat-map-to-obj.js +10 -9
  127. package/dist/es/array/flat-map.js +5 -15
  128. package/dist/es/array/flatten-deep.js +9 -19
  129. package/dist/es/array/flatten.js +5 -17
  130. package/dist/es/array/for-each.js +18 -22
  131. package/dist/es/array/group-by.js +5 -5
  132. package/dist/es/array/index-by.js +20 -7
  133. package/dist/es/array/index.js +4 -0
  134. package/dist/es/array/intersection-with.js +5 -15
  135. package/dist/es/array/intersection.js +6 -16
  136. package/dist/es/array/last.js +2 -2
  137. package/dist/es/array/length.js +2 -2
  138. package/dist/es/array/map-to-obj.js +8 -7
  139. package/dist/es/array/map.js +11 -15
  140. package/dist/es/array/max-by.js +6 -6
  141. package/dist/es/array/mean-by.js +6 -6
  142. package/dist/es/array/merge-all.js +5 -1
  143. package/dist/es/array/min-by.js +6 -6
  144. package/dist/es/array/only.js +3 -6
  145. package/dist/es/array/partition.js +5 -5
  146. package/dist/es/array/range.js +2 -2
  147. package/dist/es/array/rank-by.js +1 -1
  148. package/dist/es/array/reduce.js +3 -3
  149. package/dist/es/array/reject.js +9 -22
  150. package/dist/es/array/reverse.js +2 -2
  151. package/dist/es/array/sample.js +1 -1
  152. package/dist/es/array/shuffle.js +3 -3
  153. package/dist/es/array/sort-by.js +5 -43
  154. package/dist/es/array/sort.js +3 -3
  155. package/dist/es/array/sorted-index-by.js +15 -0
  156. package/dist/es/array/sorted-index-with.js +11 -0
  157. package/dist/es/array/sorted-index.js +8 -0
  158. package/dist/es/array/sorted-last-index-by.js +15 -0
  159. package/dist/es/array/sorted-last-index.js +8 -0
  160. package/dist/es/array/splice.js +3 -3
  161. package/dist/es/array/split-at.js +3 -3
  162. package/dist/es/array/split-when.js +6 -6
  163. package/dist/es/array/sum-by.js +6 -6
  164. package/dist/es/array/swap-indices.js +7 -7
  165. package/dist/es/array/take-first-by.js +1 -1
  166. package/dist/es/array/take-while.js +2 -2
  167. package/dist/es/array/take.js +8 -21
  168. package/dist/es/array/uniq-by.js +4 -11
  169. package/dist/es/array/uniq-with.js +8 -18
  170. package/dist/es/array/uniq.js +4 -11
  171. package/dist/es/array/zip-obj.js +2 -2
  172. package/dist/es/array/zip-with.js +4 -4
  173. package/dist/es/array/zip.js +2 -2
  174. package/dist/es/function/index.js +1 -0
  175. package/dist/es/function/pipe.js +18 -24
  176. package/dist/es/function/purry.js +8 -9
  177. package/dist/es/function/times.js +14 -0
  178. package/dist/es/guard/is-defined.js +1 -1
  179. package/dist/es/guard/is-empty.js +4 -4
  180. package/dist/es/guard/is-nil.js +1 -1
  181. package/dist/es/guard/is-not.js +1 -3
  182. package/dist/es/number/add.js +2 -2
  183. package/dist/es/number/clamp.js +6 -6
  184. package/dist/es/number/divide.js +2 -2
  185. package/dist/es/number/multiply.js +2 -2
  186. package/dist/es/number/subtract.js +2 -2
  187. package/dist/es/object/add-prop.js +2 -2
  188. package/dist/es/object/clone.js +5 -5
  189. package/dist/es/object/equals.js +48 -52
  190. package/dist/es/object/for-each-obj.js +9 -9
  191. package/dist/es/object/from-pairs.js +5 -1
  192. package/dist/es/object/invert.js +5 -3
  193. package/dist/es/object/keys.js +3 -2
  194. package/dist/es/object/map-keys.js +2 -2
  195. package/dist/es/object/map-values.js +2 -2
  196. package/dist/es/object/merge-deep.js +2 -2
  197. package/dist/es/object/merge.js +2 -2
  198. package/dist/es/object/omit-by.js +7 -6
  199. package/dist/es/object/omit.js +2 -2
  200. package/dist/es/object/path-or.js +6 -6
  201. package/dist/es/object/pick-by.js +9 -8
  202. package/dist/es/object/pick.js +7 -9
  203. package/dist/es/object/set-path.js +12 -13
  204. package/dist/es/object/set.js +2 -2
  205. package/dist/es/object/swap-props.js +2 -2
  206. package/dist/es/string/random-string.js +11 -5
  207. package/dist/es/string/string-to-path.js +5 -5
  208. package/dist/es/utils/binary-search-cutoff-index.js +15 -0
  209. package/dist/es/utils/heap.js +1 -1
  210. package/dist/es/utils/purry-order-rules.js +1 -1
  211. package/dist/es/utils/quick-select.js +2 -2
  212. package/dist/es/utils/reduce-lazy.js +9 -6
  213. package/dist/es/utils/to-single.js +1 -2
  214. package/dist/metadata.json +7915 -4373
  215. package/dist/types/array/count-by.d.ts.map +1 -1
  216. package/dist/types/array/difference-with.d.ts +2 -2
  217. package/dist/types/array/difference-with.d.ts.map +1 -1
  218. package/dist/types/array/difference.d.ts +2 -2
  219. package/dist/types/array/difference.d.ts.map +1 -1
  220. package/dist/types/array/drop.d.ts +2 -2
  221. package/dist/types/array/drop.d.ts.map +1 -1
  222. package/dist/types/array/filter.d.ts +5 -5
  223. package/dist/types/array/filter.d.ts.map +1 -1
  224. package/dist/types/array/find-index.d.ts +5 -20
  225. package/dist/types/array/find-index.d.ts.map +1 -1
  226. package/dist/types/array/find.d.ts +5 -12
  227. package/dist/types/array/find.d.ts.map +1 -1
  228. package/dist/types/array/first.d.ts +2 -5
  229. package/dist/types/array/first.d.ts.map +1 -1
  230. package/dist/types/array/flat-map-to-obj.d.ts +4 -4
  231. package/dist/types/array/flat-map-to-obj.d.ts.map +1 -1
  232. package/dist/types/array/flat-map.d.ts +2 -11
  233. package/dist/types/array/flat-map.d.ts.map +1 -1
  234. package/dist/types/array/flatten-deep.d.ts +15 -5
  235. package/dist/types/array/flatten-deep.d.ts.map +1 -1
  236. package/dist/types/array/flatten.d.ts +17 -2
  237. package/dist/types/array/flatten.d.ts.map +1 -1
  238. package/dist/types/array/for-each.d.ts +3 -3
  239. package/dist/types/array/for-each.d.ts.map +1 -1
  240. package/dist/types/array/group-by.d.ts.map +1 -1
  241. package/dist/types/array/index-by.d.ts +25 -6
  242. package/dist/types/array/index-by.d.ts.map +1 -1
  243. package/dist/types/array/index.d.ts +4 -0
  244. package/dist/types/array/index.d.ts.map +1 -1
  245. package/dist/types/array/intersection-with.d.ts +2 -2
  246. package/dist/types/array/intersection-with.d.ts.map +1 -1
  247. package/dist/types/array/intersection.d.ts +2 -2
  248. package/dist/types/array/intersection.d.ts.map +1 -1
  249. package/dist/types/array/last.d.ts +13 -4
  250. package/dist/types/array/last.d.ts.map +1 -1
  251. package/dist/types/array/map.d.ts +3 -3
  252. package/dist/types/array/map.d.ts.map +1 -1
  253. package/dist/types/array/max-by.d.ts.map +1 -1
  254. package/dist/types/array/mean-by.d.ts.map +1 -1
  255. package/dist/types/array/merge-all.d.ts +1 -1
  256. package/dist/types/array/merge-all.d.ts.map +1 -1
  257. package/dist/types/array/min-by.d.ts.map +1 -1
  258. package/dist/types/array/reduce.d.ts +2 -2
  259. package/dist/types/array/reduce.d.ts.map +1 -1
  260. package/dist/types/array/reject.d.ts +3 -3
  261. package/dist/types/array/reject.d.ts.map +1 -1
  262. package/dist/types/array/sort-by.d.ts +33 -33
  263. package/dist/types/array/sort-by.d.ts.map +1 -1
  264. package/dist/types/array/sort.d.ts.map +1 -1
  265. package/dist/types/array/sorted-index-by.d.ts +63 -0
  266. package/dist/types/array/sorted-index-by.d.ts.map +1 -0
  267. package/dist/types/array/sorted-index-with.d.ts +65 -0
  268. package/dist/types/array/sorted-index-with.d.ts.map +1 -0
  269. package/dist/types/array/sorted-index.d.ts +47 -0
  270. package/dist/types/array/sorted-index.d.ts.map +1 -0
  271. package/dist/types/array/sorted-last-index-by.d.ts +63 -0
  272. package/dist/types/array/sorted-last-index-by.d.ts.map +1 -0
  273. package/dist/types/array/sorted-last-index.d.ts +47 -0
  274. package/dist/types/array/sorted-last-index.d.ts.map +1 -0
  275. package/dist/types/array/sum-by.d.ts.map +1 -1
  276. package/dist/types/array/take.d.ts +2 -2
  277. package/dist/types/array/take.d.ts.map +1 -1
  278. package/dist/types/array/uniq-with.d.ts +3 -3
  279. package/dist/types/array/uniq-with.d.ts.map +1 -1
  280. package/dist/types/array/uniq.d.ts +15 -4
  281. package/dist/types/array/uniq.d.ts.map +1 -1
  282. package/dist/types/array/zip-obj.d.ts +2 -2
  283. package/dist/types/array/zip-obj.d.ts.map +1 -1
  284. package/dist/types/array/zip.d.ts.map +1 -1
  285. package/dist/types/function/conditional.d.ts.map +1 -1
  286. package/dist/types/function/index.d.ts +1 -0
  287. package/dist/types/function/index.d.ts.map +1 -1
  288. package/dist/types/function/noop.d.ts.map +1 -1
  289. package/dist/types/function/pipe.d.ts +21 -0
  290. package/dist/types/function/pipe.d.ts.map +1 -1
  291. package/dist/types/function/purry.d.ts +21 -6
  292. package/dist/types/function/purry.d.ts.map +1 -1
  293. package/dist/types/function/times.d.ts +29 -0
  294. package/dist/types/function/times.d.ts.map +1 -0
  295. package/dist/types/guard/is-empty.d.ts +15 -4
  296. package/dist/types/guard/is-empty.d.ts.map +1 -1
  297. package/dist/types/guard/is-not.d.ts +1 -1
  298. package/dist/types/guard/is-not.d.ts.map +1 -1
  299. package/dist/types/guard/is-object.d.ts +1 -1
  300. package/dist/types/guard/is-object.d.ts.map +1 -1
  301. package/dist/types/number/clamp.d.ts +7 -8
  302. package/dist/types/number/clamp.d.ts.map +1 -1
  303. package/dist/types/object/add-prop.d.ts +2 -2
  304. package/dist/types/object/add-prop.d.ts.map +1 -1
  305. package/dist/types/object/equals.d.ts +2 -2
  306. package/dist/types/object/equals.d.ts.map +1 -1
  307. package/dist/types/object/for-each-obj.d.ts +6 -6
  308. package/dist/types/object/for-each-obj.d.ts.map +1 -1
  309. package/dist/types/object/from-pairs.d.ts +9 -0
  310. package/dist/types/object/from-pairs.d.ts.map +1 -1
  311. package/dist/types/object/keys.d.ts +8 -4
  312. package/dist/types/object/keys.d.ts.map +1 -1
  313. package/dist/types/object/pick.d.ts +9 -9
  314. package/dist/types/object/pick.d.ts.map +1 -1
  315. package/dist/types/object/prop.d.ts.map +1 -1
  316. package/dist/types/object/set-path.d.ts +1 -1
  317. package/dist/types/object/set-path.d.ts.map +1 -1
  318. package/dist/types/object/to-pairs.d.ts +1 -1
  319. package/dist/types/object/to-pairs.d.ts.map +1 -1
  320. package/dist/types/string/random-string.d.ts +6 -2
  321. package/dist/types/string/random-string.d.ts.map +1 -1
  322. package/dist/types/string/string-to-path.d.ts.map +1 -1
  323. package/dist/types/type/type.d.ts.map +1 -1
  324. package/dist/types/utils/binary-search-cutoff-index.d.ts +2 -0
  325. package/dist/types/utils/binary-search-cutoff-index.d.ts.map +1 -0
  326. package/dist/types/utils/narrow.d.ts +1 -1
  327. package/dist/types/utils/narrow.d.ts.map +1 -1
  328. package/dist/types/utils/purry-on.d.ts +1 -1
  329. package/dist/types/utils/purry-on.d.ts.map +1 -1
  330. package/dist/types/utils/reduce-lazy.d.ts +2 -21
  331. package/dist/types/utils/reduce-lazy.d.ts.map +1 -1
  332. package/dist/types/utils/swap-in-place.d.ts.map +1 -1
  333. package/dist/types/utils/to-single.d.ts +4 -2
  334. package/dist/types/utils/to-single.d.ts.map +1 -1
  335. package/dist/types/utils/types.d.ts +2 -2
  336. package/dist/types/utils/types.d.ts.map +1 -1
  337. package/dist/types/utils/with-precision.d.ts.map +1 -1
  338. package/package.json +1 -1
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.randomString = void 0;
4
- const range_1 = require("../array/range");
5
- function randomString(length) {
6
- const characterSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
7
- const randomChar = () => characterSet[Math.floor(Math.random() * characterSet.length)];
8
- return (0, range_1.range)(0, length).reduce((text) => text + randomChar(), '');
4
+ const purry_1 = require("../function/purry");
5
+ const times_1 = require("../function/times");
6
+ const ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
7
+ function randomString(...args) {
8
+ return (0, purry_1.purry)(randomStringImplementation, args);
9
9
  }
10
10
  exports.randomString = randomString;
11
+ function randomStringImplementation(length) {
12
+ return (0, times_1.times)(length, randomChar).join('');
13
+ }
14
+ function randomChar() {
15
+ return ALPHABET[Math.floor(Math.random() * ALPHABET.length)];
16
+ }
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stringToPath = void 0;
4
4
  function stringToPath(path) {
5
- return _stringToPath(path);
5
+ return stringToPath_(path);
6
6
  }
7
7
  exports.stringToPath = stringToPath;
8
- function _stringToPath(path) {
8
+ function stringToPath_(path) {
9
9
  if (path.length === 0) {
10
10
  return [];
11
11
  }
12
- const match = path.match(/^\[(.+?)\](.*)$/) ?? path.match(/^\.?([^.[\]]+)(.*)$/);
13
- if (match) {
12
+ const match = /^\[(.+?)\](.*)$/u.exec(path) ?? /^\.?([^.[\]]+)(.*)$/u.exec(path);
13
+ if (match !== null) {
14
14
  const [, key, rest] = match;
15
- return [key, ..._stringToPath(rest)];
15
+ return [key, ...stringToPath_(rest)];
16
16
  }
17
17
  return [path];
18
18
  }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.binarySearchCutoffIndex = void 0;
4
+ function binarySearchCutoffIndex(array, predicate) {
5
+ let lowIndex = 0;
6
+ let highIndex = array.length;
7
+ while (lowIndex < highIndex) {
8
+ const pivotIndex = (lowIndex + highIndex) >>> 1;
9
+ const pivot = array[pivotIndex];
10
+ if (predicate(pivot, pivotIndex)) {
11
+ lowIndex = pivotIndex + 1;
12
+ }
13
+ else {
14
+ highIndex = pivotIndex;
15
+ }
16
+ }
17
+ return highIndex;
18
+ }
19
+ exports.binarySearchCutoffIndex = binarySearchCutoffIndex;
@@ -13,7 +13,7 @@ function heapMaybeInsert(heap, compareFn, item) {
13
13
  if (!(0, has_at_least_1.hasAtLeast)(heap, 1)) {
14
14
  return;
15
15
  }
16
- const head = heap[0];
16
+ const [head] = heap;
17
17
  if (compareFn(item, head) >= 0) {
18
18
  return;
19
19
  }
@@ -33,7 +33,7 @@ exports.purryOrderRulesWithArgument = purryOrderRulesWithArgument;
33
33
  function orderRuleComparer(primaryRule, secondaryRule, ...otherRules) {
34
34
  const projector = typeof primaryRule === 'function' ? primaryRule : primaryRule[0];
35
35
  const direction = typeof primaryRule === 'function' ? 'asc' : primaryRule[1];
36
- const comparator = COMPARATORS[direction];
36
+ const { [direction]: comparator } = COMPARATORS;
37
37
  const nextComparer = secondaryRule === undefined
38
38
  ? undefined
39
39
  : orderRuleComparer(secondaryRule, ...otherRules);
@@ -5,7 +5,7 @@ const swap_in_place_1 = require("./swap-in-place");
5
5
  function quickSelect(data, index, compareFn) {
6
6
  return index < 0 || index >= data.length
7
7
  ? undefined
8
- : quickSelectImplementation([...data], 0, data.length - 1, index, compareFn);
8
+ : quickSelectImplementation(data.slice(), 0, data.length - 1, index, compareFn);
9
9
  }
10
10
  exports.quickSelect = quickSelect;
11
11
  function quickSelectImplementation(data, left, right, index, compareFn) {
@@ -23,7 +23,7 @@ function partition(data, left, right, compareFn) {
23
23
  for (let j = left; j < right; j++) {
24
24
  if (compareFn(data[j], pivot) < 0) {
25
25
  (0, swap_in_place_1.swapInPlace)(data, i, j);
26
- i++;
26
+ i += 1;
27
27
  }
28
28
  }
29
29
  (0, swap_in_place_1.swapInPlace)(data, i, right);
@@ -1,18 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reduceLazy = void 0;
4
- function reduceLazy(array, lazy, indexed) {
5
- const newArray = [];
4
+ function reduceLazy(array, lazy, isIndexed = false) {
5
+ const out = [];
6
6
  for (let index = 0; index < array.length; index++) {
7
7
  const item = array[index];
8
- const result = indexed ? lazy(item, index, array) : lazy(item);
8
+ const result = isIndexed ? lazy(item, index, array) : lazy(item);
9
9
  if (result.hasMany === true) {
10
- newArray.push(...result.next);
10
+ out.push(...result.next);
11
11
  }
12
12
  else if (result.hasNext) {
13
- newArray.push(result.next);
13
+ out.push(result.next);
14
+ }
15
+ if (result.done) {
16
+ break;
14
17
  }
15
18
  }
16
- return newArray;
19
+ return out;
17
20
  }
18
21
  exports.reduceLazy = reduceLazy;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toSingle = void 0;
4
4
  function toSingle(fn) {
5
- fn.single = true;
6
- return fn;
5
+ return Object.assign(fn, { single: true });
7
6
  }
8
7
  exports.toSingle = toSingle;
@@ -1,7 +1,7 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function allPass(...args) {
3
- return purry(_allPass, args);
3
+ return purry(allPass_, args);
4
4
  }
5
- function _allPass(data, fns) {
5
+ function allPass_(data, fns) {
6
6
  return fns.every((fn) => fn(data));
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function anyPass(...args) {
3
- return purry(_anyPass, args);
3
+ return purry(anyPass_, args);
4
4
  }
5
- function _anyPass(data, fns) {
5
+ function anyPass_(data, fns) {
6
6
  return fns.some((fn) => fn(data));
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function chunk(...args) {
3
- return purry(_chunk, args);
3
+ return purry(chunk_, args);
4
4
  }
5
- function _chunk(array, size) {
5
+ function chunk_(array, size) {
6
6
  const ret = Array.from({
7
7
  length: Math.ceil(array.length / size),
8
8
  });
9
- for (let index = 0; index < ret.length; index += 1) {
9
+ for (let index = 0; index < ret.length; index++) {
10
10
  ret[index] = array.slice(index * size, (index + 1) * size);
11
11
  }
12
12
  return ret;
@@ -1,7 +1,7 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function concat(...args) {
3
- return purry(_concat, args);
3
+ return purry(concat_, args);
4
4
  }
5
- function _concat(arr1, arr2) {
5
+ function concat_(arr1, arr2) {
6
6
  return arr1.concat(arr2);
7
7
  }
@@ -1,18 +1,20 @@
1
1
  import { purry } from '../function/purry';
2
- function _countBy(indexed) {
2
+ function countBy_(indexed) {
3
3
  return (array, fn) => {
4
- return array.reduce((ret, item, index) => {
4
+ let out = 0;
5
+ for (const [index, item] of array.entries()) {
5
6
  const value = indexed ? fn(item, index, array) : fn(item);
6
- return ret + (value ? 1 : 0);
7
- }, 0);
7
+ out += value ? 1 : 0;
8
+ }
9
+ return out;
8
10
  };
9
11
  }
10
12
  export function countBy(...args) {
11
- return purry(_countBy(false), args);
13
+ return purry(countBy_(false), args);
12
14
  }
13
15
  (function (countBy) {
14
16
  function indexed(...args) {
15
- return purry(_countBy(true), args);
17
+ return purry(countBy_(true), args);
16
18
  }
17
19
  countBy.indexed = indexed;
18
20
  })(countBy || (countBy = {}));
@@ -1,27 +1,17 @@
1
1
  import { purry } from '../function/purry';
2
2
  import { reduceLazy } from '../utils/reduce-lazy';
3
3
  export function differenceWith(...args) {
4
- return purry(_differenceWith, args, differenceWith.lazy);
4
+ return purry(differenceWith_, args, differenceWith.lazy);
5
5
  }
6
- function _differenceWith(array, other, isEquals) {
6
+ function differenceWith_(array, other, isEquals) {
7
7
  const lazy = differenceWith.lazy(other, isEquals);
8
8
  return reduceLazy(array, lazy);
9
9
  }
10
10
  (function (differenceWith) {
11
11
  function lazy(other, isEquals) {
12
- return (value) => {
13
- if (other.every((otherValue) => !isEquals(value, otherValue))) {
14
- return {
15
- done: false,
16
- hasNext: true,
17
- next: value,
18
- };
19
- }
20
- return {
21
- done: false,
22
- hasNext: false,
23
- };
24
- };
12
+ return (value) => other.every((otherValue) => !isEquals(value, otherValue))
13
+ ? { done: false, hasNext: true, next: value }
14
+ : { done: false, hasNext: false };
25
15
  }
26
16
  differenceWith.lazy = lazy;
27
17
  })(differenceWith || (differenceWith = {}));
@@ -1,28 +1,18 @@
1
1
  import { purry } from '../function/purry';
2
2
  import { reduceLazy } from '../utils/reduce-lazy';
3
3
  export function difference(...args) {
4
- return purry(_difference, args, difference.lazy);
4
+ return purry(difference_, args, difference.lazy);
5
5
  }
6
- function _difference(array, other) {
6
+ function difference_(array, other) {
7
7
  const lazy = difference.lazy(other);
8
8
  return reduceLazy(array, lazy);
9
9
  }
10
10
  (function (difference) {
11
11
  function lazy(other) {
12
12
  const set = new Set(other);
13
- return (value) => {
14
- if (!set.has(value)) {
15
- return {
16
- done: false,
17
- hasNext: true,
18
- next: value,
19
- };
20
- }
21
- return {
22
- done: false,
23
- hasNext: false,
24
- };
25
- };
13
+ return (value) => set.has(value)
14
+ ? { done: false, hasNext: false }
15
+ : { done: false, hasNext: true, next: value };
26
16
  }
27
17
  difference.lazy = lazy;
28
18
  })(difference || (difference = {}));
@@ -8,7 +8,7 @@ function dropFirstByImplementation(data, compareFn, n) {
8
8
  return [];
9
9
  }
10
10
  if (n <= 0) {
11
- return [...data];
11
+ return data.slice();
12
12
  }
13
13
  const heap = data.slice(0, n);
14
14
  heapify(heap, compareFn);
@@ -1,8 +1,8 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function dropLastWhile(...args) {
3
- return purry(_dropLastWhile, args);
3
+ return purry(dropLastWhile_, args);
4
4
  }
5
- function _dropLastWhile(data, predicate) {
5
+ function dropLastWhile_(data, predicate) {
6
6
  for (let i = data.length - 1; i >= 0; i--) {
7
7
  if (!predicate(data[i])) {
8
8
  return data.slice(0, i + 1);
@@ -1,9 +1,9 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function dropLast(...args) {
3
- return purry(_dropLast, args);
3
+ return purry(dropLast_, args);
4
4
  }
5
- function _dropLast(array, n) {
6
- const copy = [...array];
5
+ function dropLast_(array, n) {
6
+ const copy = array.slice();
7
7
  if (n > 0) {
8
8
  copy.splice(-n);
9
9
  }
@@ -1,8 +1,8 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function dropWhile(...args) {
3
- return purry(_dropWhile, args);
3
+ return purry(dropWhile_, args);
4
4
  }
5
- function _dropWhile(data, predicate) {
5
+ function dropWhile_(data, predicate) {
6
6
  for (let i = 0; i < data.length; i++) {
7
7
  if (!predicate(data[i])) {
8
8
  return data.slice(i);
@@ -1,9 +1,9 @@
1
1
  import { purry } from '../function/purry';
2
2
  import { reduceLazy } from '../utils/reduce-lazy';
3
3
  export function drop(...args) {
4
- return purry(_drop, args, drop.lazy);
4
+ return purry(drop_, args, drop.lazy);
5
5
  }
6
- function _drop(array, n) {
6
+ function drop_(array, n) {
7
7
  return reduceLazy(array, drop.lazy(n));
8
8
  }
9
9
  (function (drop) {
@@ -11,17 +11,10 @@ function _drop(array, n) {
11
11
  let left = n;
12
12
  return (value) => {
13
13
  if (left > 0) {
14
- left--;
15
- return {
16
- done: false,
17
- hasNext: false,
18
- };
14
+ left -= 1;
15
+ return { done: false, hasNext: false };
19
16
  }
20
- return {
21
- done: false,
22
- hasNext: true,
23
- next: value,
24
- };
17
+ return { done: false, hasNext: true, next: value };
25
18
  };
26
19
  }
27
20
  drop.lazy = lazy;
@@ -10,22 +10,9 @@ function filter_(indexed) {
10
10
  };
11
11
  }
12
12
  function lazy_(indexed) {
13
- return (fn) => {
14
- return (value, index, array) => {
15
- const valid = indexed ? fn(value, index, array) : fn(value);
16
- if (valid) {
17
- return {
18
- done: false,
19
- hasNext: true,
20
- next: value,
21
- };
22
- }
23
- return {
24
- done: false,
25
- hasNext: false,
26
- };
27
- };
28
- };
13
+ return (fn) => (value, index, array) => (indexed ? fn(value, index, array) : fn(value))
14
+ ? { done: false, hasNext: true, next: value }
15
+ : { done: false, hasNext: false };
29
16
  }
30
17
  (function (filter) {
31
18
  function indexed(...args) {
@@ -2,41 +2,28 @@ import { purry } from '../function/purry';
2
2
  import { toLazyIndexed } from '../utils/to-lazy-indexed';
3
3
  import { toSingle } from '../utils/to-single';
4
4
  export function findIndex(...args) {
5
- return purry(_findIndex(false), args, findIndex.lazy);
5
+ return purry(findIndex_(false), args, findIndex.lazy);
6
6
  }
7
- function _findIndex(indexed) {
8
- return (array, fn) => {
9
- if (indexed) {
10
- return array.findIndex(fn);
11
- }
12
- return array.findIndex((x) => fn(x));
13
- };
7
+ function findIndex_(indexed) {
8
+ return (array, fn) => array.findIndex((item, index, input) => indexed ? fn(item, index, input) : fn(item));
14
9
  }
15
- function _lazy(indexed) {
10
+ function lazy_(indexed) {
16
11
  return (fn) => {
17
- let i = 0;
12
+ let actualIndex = 0;
18
13
  return (value, index, array) => {
19
- const valid = indexed ? fn(value, index, array) : fn(value);
20
- if (valid) {
21
- return {
22
- done: true,
23
- hasNext: true,
24
- next: i,
25
- };
14
+ if (indexed ? fn(value, index, array) : fn(value)) {
15
+ return { done: true, hasNext: true, next: actualIndex };
26
16
  }
27
- i++;
28
- return {
29
- done: false,
30
- hasNext: false,
31
- };
17
+ actualIndex += 1;
18
+ return { done: false, hasNext: false };
32
19
  };
33
20
  };
34
21
  }
35
22
  (function (findIndex) {
36
23
  function indexed(...args) {
37
- return purry(_findIndex(true), args, findIndex.lazyIndexed);
24
+ return purry(findIndex_(true), args, findIndex.lazyIndexed);
38
25
  }
39
26
  findIndex.indexed = indexed;
40
- findIndex.lazy = toSingle(_lazy(false));
41
- findIndex.lazyIndexed = toSingle(toLazyIndexed(_lazy(true)));
27
+ findIndex.lazy = toSingle(lazy_(false));
28
+ findIndex.lazyIndexed = toSingle(toLazyIndexed(lazy_(true)));
42
29
  })(findIndex || (findIndex = {}));
@@ -1,8 +1,8 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function findLastIndex(...args) {
3
- return purry(_findLastIndex(false), args);
3
+ return purry(findLastIndex_(false), args);
4
4
  }
5
- function _findLastIndex(indexed) {
5
+ function findLastIndex_(indexed) {
6
6
  return (array, fn) => {
7
7
  for (let i = array.length - 1; i >= 0; i--) {
8
8
  if (indexed ? fn(array[i], i, array) : fn(array[i])) {
@@ -14,7 +14,7 @@ function _findLastIndex(indexed) {
14
14
  }
15
15
  (function (findLastIndex) {
16
16
  function indexed(...args) {
17
- return purry(_findLastIndex(true), args);
17
+ return purry(findLastIndex_(true), args);
18
18
  }
19
19
  findLastIndex.indexed = indexed;
20
20
  })(findLastIndex || (findLastIndex = {}));
@@ -1,8 +1,8 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function findLast(...args) {
3
- return purry(_findLast(false), args);
3
+ return purry(findLast_(false), args);
4
4
  }
5
- function _findLast(indexed) {
5
+ function findLast_(indexed) {
6
6
  return (array, fn) => {
7
7
  for (let i = array.length - 1; i >= 0; i--) {
8
8
  if (indexed ? fn(array[i], i, array) : fn(array[i])) {
@@ -14,7 +14,7 @@ function _findLast(indexed) {
14
14
  }
15
15
  (function (findLast) {
16
16
  function indexed(...args) {
17
- return purry(_findLast(true), args);
17
+ return purry(findLast_(true), args);
18
18
  }
19
19
  findLast.indexed = indexed;
20
20
  })(findLast || (findLast = {}));
@@ -2,33 +2,21 @@ import { purry } from '../function/purry';
2
2
  import { toLazyIndexed } from '../utils/to-lazy-indexed';
3
3
  import { toSingle } from '../utils/to-single';
4
4
  export function find(...args) {
5
- return purry(_find(false), args, find.lazy);
5
+ return purry(find_(false), args, find.lazy);
6
6
  }
7
- function _find(indexed) {
8
- return (array, fn) => {
9
- if (indexed) {
10
- return array.find(fn);
11
- }
12
- return array.find((x) => fn(x));
13
- };
7
+ function find_(indexed) {
8
+ return (array, fn) => array.find((item, index, input) => indexed ? fn(item, index, input) : fn(item));
14
9
  }
15
- function _lazy(indexed) {
16
- return (fn) => {
17
- return (value, index, array) => {
18
- const valid = indexed ? fn(value, index, array) : fn(value);
19
- return {
20
- done: valid,
21
- hasNext: valid,
22
- next: value,
23
- };
24
- };
25
- };
10
+ function lazy_(indexed) {
11
+ return (fn) => (value, index, array) => (indexed ? fn(value, index, array) : fn(value))
12
+ ? { done: true, hasNext: true, next: value }
13
+ : { done: false, hasNext: false };
26
14
  }
27
15
  (function (find) {
28
16
  function indexed(...args) {
29
- return purry(_find(true), args, find.lazyIndexed);
17
+ return purry(find_(true), args, find.lazyIndexed);
30
18
  }
31
19
  find.indexed = indexed;
32
- find.lazy = toSingle(_lazy(false));
33
- find.lazyIndexed = toSingle(toLazyIndexed(_lazy(true)));
20
+ find.lazy = toSingle(lazy_(false));
21
+ find.lazyIndexed = toSingle(toLazyIndexed(lazy_(true)));
34
22
  })(find || (find = {}));
@@ -1,19 +1,13 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function first(...args) {
3
- return purry(_first, args, first.lazy);
3
+ return purry(first_, args, first.lazy);
4
4
  }
5
- function _first([first]) {
6
- return first;
5
+ function first_([item]) {
6
+ return item;
7
7
  }
8
8
  (function (first) {
9
9
  function lazy() {
10
- return (value) => {
11
- return {
12
- done: true,
13
- hasNext: true,
14
- next: value,
15
- };
16
- };
10
+ return (value) => ({ done: true, hasNext: true, next: value });
17
11
  }
18
12
  first.lazy = lazy;
19
13
  (function (lazy) {
@@ -1,21 +1,22 @@
1
1
  import { purry } from '../function/purry';
2
2
  export function flatMapToObj(...args) {
3
- return purry(_flatMapToObj(false), args);
3
+ return purry(flatMapToObj_(false), args);
4
4
  }
5
- function _flatMapToObj(indexed) {
5
+ function flatMapToObj_(indexed) {
6
6
  return (array, fn) => {
7
- return array.reduce((result, element, index) => {
7
+ const out = {};
8
+ for (const [index, element] of array.entries()) {
8
9
  const items = indexed ? fn(element, index, array) : fn(element);
9
- items.forEach(([key, value]) => {
10
- result[key] = value;
11
- });
12
- return result;
13
- }, {});
10
+ for (const [key, value] of items) {
11
+ out[key] = value;
12
+ }
13
+ }
14
+ return out;
14
15
  };
15
16
  }
16
17
  (function (flatMapToObj) {
17
18
  function indexed(...args) {
18
- return purry(_flatMapToObj(true), args);
19
+ return purry(flatMapToObj_(true), args);
19
20
  }
20
21
  flatMapToObj.indexed = indexed;
21
22
  })(flatMapToObj || (flatMapToObj = {}));
@@ -1,28 +1,18 @@
1
1
  import { purry } from '../function/purry';
2
2
  import { flatten } from './flatten';
3
3
  export function flatMap(...args) {
4
- return purry(_flatMap, args, flatMap.lazy);
4
+ return purry(flatMap_, args, flatMap.lazy);
5
5
  }
6
- function _flatMap(array, fn) {
6
+ function flatMap_(array, fn) {
7
7
  return flatten(array.map((item) => fn(item)));
8
8
  }
9
9
  (function (flatMap) {
10
10
  function lazy(fn) {
11
11
  return (value) => {
12
12
  const next = fn(value);
13
- if (Array.isArray(next)) {
14
- return {
15
- done: false,
16
- hasMany: true,
17
- hasNext: true,
18
- next,
19
- };
20
- }
21
- return {
22
- done: false,
23
- hasNext: true,
24
- next,
25
- };
13
+ return Array.isArray(next)
14
+ ? { done: false, hasMany: true, hasNext: true, next }
15
+ : { done: false, hasNext: true, next };
26
16
  };
27
17
  }
28
18
  flatMap.lazy = lazy;