litus 1.2.1 → 1.4.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 (250) hide show
  1. package/README.md +27 -33
  2. package/dist/cjs/arr/chunk.js +3 -0
  3. package/dist/cjs/arr/chunk.js.map +1 -1
  4. package/dist/cjs/arr/find.d.ts +2 -1
  5. package/dist/cjs/arr/find.js +2 -6
  6. package/dist/cjs/arr/find.js.map +1 -1
  7. package/dist/cjs/arr/findAll.d.ts +2 -0
  8. package/dist/cjs/arr/findAll.js +9 -0
  9. package/dist/cjs/arr/findAll.js.map +1 -0
  10. package/dist/cjs/arr/findAllIdx.d.ts +2 -0
  11. package/dist/cjs/arr/findAllIdx.js +17 -0
  12. package/dist/cjs/arr/findAllIdx.js.map +1 -0
  13. package/dist/cjs/arr/findIdx.d.ts +2 -1
  14. package/dist/cjs/arr/findIdx.js.map +1 -1
  15. package/dist/cjs/arr/index.d.ts +5 -0
  16. package/dist/cjs/arr/index.js +5 -0
  17. package/dist/cjs/arr/index.js.map +1 -1
  18. package/dist/cjs/arr/max.d.ts +1 -0
  19. package/dist/cjs/arr/max.js +15 -0
  20. package/dist/cjs/arr/max.js.map +1 -0
  21. package/dist/cjs/arr/min.d.ts +1 -0
  22. package/dist/cjs/arr/min.js +9 -0
  23. package/dist/cjs/arr/min.js.map +1 -0
  24. package/dist/cjs/arr/range.js +3 -3
  25. package/dist/cjs/arr/range.js.map +1 -1
  26. package/dist/cjs/arr/sort.d.ts +1 -1
  27. package/dist/cjs/arr/sort.js.map +1 -1
  28. package/dist/cjs/arr/transpose.d.ts +2 -1
  29. package/dist/cjs/arr/transpose.js +5 -1
  30. package/dist/cjs/arr/transpose.js.map +1 -1
  31. package/dist/cjs/arr/types.d.ts +11 -0
  32. package/dist/cjs/arr/types.js +3 -0
  33. package/dist/cjs/arr/types.js.map +1 -0
  34. package/dist/cjs/arr/union.js.map +1 -1
  35. package/dist/cjs/arr/unique.js.map +1 -1
  36. package/dist/cjs/arr/zip.d.ts +1 -0
  37. package/dist/cjs/arr/zip.js +7 -0
  38. package/dist/cjs/arr/zip.js.map +1 -0
  39. package/dist/cjs/func/curry.js.map +1 -1
  40. package/dist/cjs/func/debounce.js.map +1 -1
  41. package/dist/cjs/func/index.d.ts +1 -0
  42. package/dist/cjs/func/index.js +1 -0
  43. package/dist/cjs/func/index.js.map +1 -1
  44. package/dist/cjs/func/memo.d.ts +1 -1
  45. package/dist/cjs/func/memo.js +10 -6
  46. package/dist/cjs/func/memo.js.map +1 -1
  47. package/dist/cjs/func/throttle.d.ts +1 -0
  48. package/dist/cjs/func/throttle.js +19 -0
  49. package/dist/cjs/func/throttle.js.map +1 -0
  50. package/dist/cjs/index.d.ts +7 -0
  51. package/dist/cjs/index.js +8 -1
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/cjs/math/add.d.ts +1 -1
  54. package/dist/cjs/math/add.js.map +1 -1
  55. package/dist/cjs/math/calc.d.ts +2 -1
  56. package/dist/cjs/math/calc.js +2 -7
  57. package/dist/cjs/math/calc.js.map +1 -1
  58. package/dist/cjs/math/divide.d.ts +1 -1
  59. package/dist/cjs/math/divide.js +2 -5
  60. package/dist/cjs/math/divide.js.map +1 -1
  61. package/dist/cjs/math/interp.js +1 -2
  62. package/dist/cjs/math/interp.js.map +1 -1
  63. package/dist/cjs/math/mod.d.ts +1 -1
  64. package/dist/cjs/math/mod.js +4 -3
  65. package/dist/cjs/math/mod.js.map +1 -1
  66. package/dist/cjs/math/multiply.d.ts +1 -1
  67. package/dist/cjs/math/multiply.js +1 -3
  68. package/dist/cjs/math/multiply.js.map +1 -1
  69. package/dist/cjs/math/percentile.js.map +1 -1
  70. package/dist/cjs/math/pow.d.ts +1 -1
  71. package/dist/cjs/math/pow.js +2 -4
  72. package/dist/cjs/math/pow.js.map +1 -1
  73. package/dist/cjs/math/round.d.ts +1 -1
  74. package/dist/cjs/math/round.js +7 -7
  75. package/dist/cjs/math/round.js.map +1 -1
  76. package/dist/cjs/math/subtract.d.ts +1 -1
  77. package/dist/cjs/math/subtract.js +2 -5
  78. package/dist/cjs/math/subtract.js.map +1 -1
  79. package/dist/cjs/math/types.d.ts +1 -1
  80. package/dist/cjs/obj/entries.js +1 -4
  81. package/dist/cjs/obj/entries.js.map +1 -1
  82. package/dist/cjs/obj/equal.js.map +1 -1
  83. package/dist/cjs/obj/get.d.ts +1 -0
  84. package/dist/cjs/obj/get.js +19 -0
  85. package/dist/cjs/obj/get.js.map +1 -0
  86. package/dist/cjs/obj/has.d.ts +1 -1
  87. package/dist/cjs/obj/has.js.map +1 -1
  88. package/dist/cjs/obj/index.d.ts +1 -0
  89. package/dist/cjs/obj/index.js +1 -0
  90. package/dist/cjs/obj/index.js.map +1 -1
  91. package/dist/cjs/obj/isObj.d.ts +1 -1
  92. package/dist/cjs/obj/isObj.js.map +1 -1
  93. package/dist/cjs/obj/keys.d.ts +1 -1
  94. package/dist/cjs/obj/keys.js +1 -4
  95. package/dist/cjs/obj/keys.js.map +1 -1
  96. package/dist/cjs/obj/vals.js +1 -4
  97. package/dist/cjs/obj/vals.js.map +1 -1
  98. package/dist/cjs/str/_words.d.ts +1 -0
  99. package/dist/cjs/str/_words.js +13 -0
  100. package/dist/cjs/str/_words.js.map +1 -0
  101. package/dist/cjs/str/camel.d.ts +1 -0
  102. package/dist/cjs/str/camel.js +15 -0
  103. package/dist/cjs/str/camel.js.map +1 -0
  104. package/dist/cjs/str/capitalize.d.ts +1 -0
  105. package/dist/cjs/str/capitalize.js +8 -0
  106. package/dist/cjs/str/capitalize.js.map +1 -0
  107. package/dist/cjs/str/index.d.ts +7 -0
  108. package/dist/cjs/str/index.js +24 -0
  109. package/dist/cjs/str/index.js.map +1 -0
  110. package/dist/cjs/str/kebab.d.ts +1 -0
  111. package/dist/cjs/str/kebab.js +11 -0
  112. package/dist/cjs/str/kebab.js.map +1 -0
  113. package/dist/cjs/str/pascal.d.ts +1 -0
  114. package/dist/cjs/str/pascal.js +10 -0
  115. package/dist/cjs/str/pascal.js.map +1 -0
  116. package/dist/cjs/str/snake.d.ts +1 -0
  117. package/dist/cjs/str/snake.js +11 -0
  118. package/dist/cjs/str/snake.js.map +1 -0
  119. package/dist/cjs/str/template.d.ts +1 -0
  120. package/dist/cjs/str/template.js +11 -0
  121. package/dist/cjs/str/template.js.map +1 -0
  122. package/dist/cjs/str/trim.d.ts +1 -0
  123. package/dist/cjs/str/trim.js +9 -0
  124. package/dist/cjs/str/trim.js.map +1 -0
  125. package/dist/cjs/time/index.js.map +1 -1
  126. package/dist/esm/arr/chunk.js +3 -0
  127. package/dist/esm/arr/chunk.js.map +1 -1
  128. package/dist/esm/arr/find.d.ts +2 -1
  129. package/dist/esm/arr/find.js +2 -6
  130. package/dist/esm/arr/find.js.map +1 -1
  131. package/dist/esm/arr/findAll.d.ts +2 -0
  132. package/dist/esm/arr/findAll.js +5 -0
  133. package/dist/esm/arr/findAll.js.map +1 -0
  134. package/dist/esm/arr/findAllIdx.d.ts +2 -0
  135. package/dist/esm/arr/findAllIdx.js +13 -0
  136. package/dist/esm/arr/findAllIdx.js.map +1 -0
  137. package/dist/esm/arr/findIdx.d.ts +2 -1
  138. package/dist/esm/arr/findIdx.js.map +1 -1
  139. package/dist/esm/arr/index.d.ts +5 -0
  140. package/dist/esm/arr/index.js +5 -0
  141. package/dist/esm/arr/index.js.map +1 -1
  142. package/dist/esm/arr/max.d.ts +1 -0
  143. package/dist/esm/arr/max.js +11 -0
  144. package/dist/esm/arr/max.js.map +1 -0
  145. package/dist/esm/arr/min.d.ts +1 -0
  146. package/dist/esm/arr/min.js +5 -0
  147. package/dist/esm/arr/min.js.map +1 -0
  148. package/dist/esm/arr/range.js +3 -3
  149. package/dist/esm/arr/range.js.map +1 -1
  150. package/dist/esm/arr/sort.d.ts +1 -1
  151. package/dist/esm/arr/sort.js.map +1 -1
  152. package/dist/esm/arr/transpose.d.ts +2 -1
  153. package/dist/esm/arr/transpose.js +5 -1
  154. package/dist/esm/arr/transpose.js.map +1 -1
  155. package/dist/esm/arr/types.d.ts +11 -0
  156. package/dist/esm/arr/types.js +2 -0
  157. package/dist/esm/arr/types.js.map +1 -0
  158. package/dist/esm/arr/union.js.map +1 -1
  159. package/dist/esm/arr/unique.js.map +1 -1
  160. package/dist/esm/arr/zip.d.ts +1 -0
  161. package/dist/esm/arr/zip.js +4 -0
  162. package/dist/esm/arr/zip.js.map +1 -0
  163. package/dist/esm/func/curry.js.map +1 -1
  164. package/dist/esm/func/debounce.js.map +1 -1
  165. package/dist/esm/func/index.d.ts +1 -0
  166. package/dist/esm/func/index.js +1 -0
  167. package/dist/esm/func/index.js.map +1 -1
  168. package/dist/esm/func/memo.d.ts +1 -1
  169. package/dist/esm/func/memo.js +10 -6
  170. package/dist/esm/func/memo.js.map +1 -1
  171. package/dist/esm/func/throttle.d.ts +1 -0
  172. package/dist/esm/func/throttle.js +15 -0
  173. package/dist/esm/func/throttle.js.map +1 -0
  174. package/dist/esm/index.d.ts +7 -0
  175. package/dist/esm/index.js +7 -0
  176. package/dist/esm/index.js.map +1 -1
  177. package/dist/esm/math/add.d.ts +1 -1
  178. package/dist/esm/math/add.js.map +1 -1
  179. package/dist/esm/math/calc.d.ts +2 -1
  180. package/dist/esm/math/calc.js +2 -7
  181. package/dist/esm/math/calc.js.map +1 -1
  182. package/dist/esm/math/divide.d.ts +1 -1
  183. package/dist/esm/math/divide.js +2 -4
  184. package/dist/esm/math/divide.js.map +1 -1
  185. package/dist/esm/math/interp.js +1 -2
  186. package/dist/esm/math/interp.js.map +1 -1
  187. package/dist/esm/math/mod.d.ts +1 -1
  188. package/dist/esm/math/mod.js +4 -2
  189. package/dist/esm/math/mod.js.map +1 -1
  190. package/dist/esm/math/multiply.d.ts +1 -1
  191. package/dist/esm/math/multiply.js +1 -3
  192. package/dist/esm/math/multiply.js.map +1 -1
  193. package/dist/esm/math/percentile.js.map +1 -1
  194. package/dist/esm/math/pow.d.ts +1 -1
  195. package/dist/esm/math/pow.js +2 -3
  196. package/dist/esm/math/pow.js.map +1 -1
  197. package/dist/esm/math/round.d.ts +1 -1
  198. package/dist/esm/math/round.js +7 -7
  199. package/dist/esm/math/round.js.map +1 -1
  200. package/dist/esm/math/subtract.d.ts +1 -1
  201. package/dist/esm/math/subtract.js +2 -4
  202. package/dist/esm/math/subtract.js.map +1 -1
  203. package/dist/esm/math/types.d.ts +1 -1
  204. package/dist/esm/obj/entries.js +1 -3
  205. package/dist/esm/obj/entries.js.map +1 -1
  206. package/dist/esm/obj/equal.js.map +1 -1
  207. package/dist/esm/obj/get.d.ts +1 -0
  208. package/dist/esm/obj/get.js +15 -0
  209. package/dist/esm/obj/get.js.map +1 -0
  210. package/dist/esm/obj/has.d.ts +1 -1
  211. package/dist/esm/obj/has.js.map +1 -1
  212. package/dist/esm/obj/index.d.ts +1 -0
  213. package/dist/esm/obj/index.js +1 -0
  214. package/dist/esm/obj/index.js.map +1 -1
  215. package/dist/esm/obj/isObj.d.ts +1 -1
  216. package/dist/esm/obj/isObj.js.map +1 -1
  217. package/dist/esm/obj/keys.d.ts +1 -1
  218. package/dist/esm/obj/keys.js +1 -3
  219. package/dist/esm/obj/keys.js.map +1 -1
  220. package/dist/esm/obj/vals.js +1 -3
  221. package/dist/esm/obj/vals.js.map +1 -1
  222. package/dist/esm/str/_words.d.ts +1 -0
  223. package/dist/esm/str/_words.js +9 -0
  224. package/dist/esm/str/_words.js.map +1 -0
  225. package/dist/esm/str/camel.d.ts +1 -0
  226. package/dist/esm/str/camel.js +11 -0
  227. package/dist/esm/str/camel.js.map +1 -0
  228. package/dist/esm/str/capitalize.d.ts +1 -0
  229. package/dist/esm/str/capitalize.js +4 -0
  230. package/dist/esm/str/capitalize.js.map +1 -0
  231. package/dist/esm/str/index.d.ts +7 -0
  232. package/dist/esm/str/index.js +8 -0
  233. package/dist/esm/str/index.js.map +1 -0
  234. package/dist/esm/str/kebab.d.ts +1 -0
  235. package/dist/esm/str/kebab.js +7 -0
  236. package/dist/esm/str/kebab.js.map +1 -0
  237. package/dist/esm/str/pascal.d.ts +1 -0
  238. package/dist/esm/str/pascal.js +6 -0
  239. package/dist/esm/str/pascal.js.map +1 -0
  240. package/dist/esm/str/snake.d.ts +1 -0
  241. package/dist/esm/str/snake.js +7 -0
  242. package/dist/esm/str/snake.js.map +1 -0
  243. package/dist/esm/str/template.d.ts +1 -0
  244. package/dist/esm/str/template.js +7 -0
  245. package/dist/esm/str/template.js.map +1 -0
  246. package/dist/esm/str/trim.d.ts +1 -0
  247. package/dist/esm/str/trim.js +5 -0
  248. package/dist/esm/str/trim.js.map +1 -0
  249. package/dist/esm/time/index.js.map +1 -1
  250. package/package.json +10 -4
package/README.md CHANGED
@@ -1,75 +1,69 @@
1
- <!-- HEADER -->
2
-
3
1
  <div align="center">
4
2
  <img src="https://raw.githubusercontent.com/estidlore/litus/main/Logo.svg" alt="Logo" width="80" height="80">
5
3
 
6
- <h2 align="center">Litus</h2>
4
+ <h2>Litus</h2>
7
5
 
8
- <p align="center">
9
- Commonly used utilities for JS and TS
10
- <br />
11
- <a href="https://github.com/estidlore/litus/issues">Report Bug</a>
12
- </p>
6
+ <p>Lightweight and powerful utils for Typescript with smart type inference</p>
7
+ <a href="https://github.com/estidlore/litus/blob/main/docs/docs.md">Docs</a>
13
8
  </div>
14
9
 
15
10
  Litus provides strongly-typed utils for:
16
11
 
17
- - **Arrays:** chunk, from, group, ... (12 total)
18
- - **Functions:** apply, curry, unapply, ... (5 total)
19
- - **Math:** aprox, multiply, percentile, mod, ... (16 total)
20
- - **Object:** copy, entries, merge, ... (10 total)
21
- - **Time:** convert, format, setDayTime, ...
12
+ - Arrays
13
+ - Functions
14
+ - Math
15
+ - Objects
16
+ - Strings
22
17
 
23
- <!-- Installation -->
18
+ ## Why Litus?
24
19
 
25
- ## Installation
20
+ - Powerful unique utils (i.e. `math.calc`)
21
+ - Tree-shakeable (import only what you need)
22
+ - Smart type inference
23
+ - Lightweight (no dependencies)
24
+ - 100% test coverage
26
25
 
27
- Using npm
26
+ ## Installation
28
27
 
29
- ```
28
+ ```sh
30
29
  npm i litus
31
30
  ```
32
31
 
33
- Using yarn
34
-
35
- ```
32
+ ```sh
36
33
  yarn add litus
37
34
  ```
38
35
 
39
- <!-- Usage -->
40
-
41
36
  ## Usage
42
37
 
43
38
  **Import all utils**
44
39
 
45
40
  For ES6+ or Typescript
46
41
 
47
- ```
48
- import * as ls from "litus";
42
+ ```ts
43
+ import * as _ from "litus";
49
44
  ```
50
45
 
51
46
  For CommonJS
52
47
 
53
- ```
54
- var ls = require("litus");
48
+ ```js
49
+ var _ = require("litus");
55
50
  ```
56
51
 
57
- **Import what you need only**
52
+ **Import only what you need**
58
53
 
59
- ```
60
- import type { Literal, TimeFormat } from "litus";
61
- import { arr, math, obj, Time } from "litus";
54
+ ```ts
55
+ import { arr, func, math, obj, str } from "litus";
62
56
  ```
63
57
 
64
- <!-- CONTRIBUTING -->
58
+ ```ts
59
+ import { aprox, copy, group, memo, template } from "litus";
60
+ ```
65
61
 
66
62
  ## Contributing
67
63
 
68
64
  Feel free to open an [issue](https://github.com/estidlore/litus/issues) or fork this repo and create a pull request.
69
65
  Don't forget to give the project a star!
70
66
 
71
- <!-- LICENSE -->
72
-
73
67
  ## License
74
68
 
75
69
  This package released under the [MIT License](https://github.com/estidlore/litus/blob/main/LICENSE).
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.chunk = void 0;
4
4
  const range_1 = require("./range");
5
5
  const chunk = (arr, size) => {
6
+ if (!Number.isInteger(size)) {
7
+ throw new Error("Chunk size must be an integer");
8
+ }
6
9
  return (0, range_1.range)(0, arr.length, size).map((i) => arr.slice(i, i + size));
7
10
  };
8
11
  exports.chunk = chunk;
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../../src/arr/chunk.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEzB,MAAM,KAAK,GAAG,CAAI,GAAQ,EAAE,IAAY,EAAS,EAAE;IACxD,OAAO,IAAA,aAAK,EAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB"}
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../../src/arr/chunk.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEzB,MAAM,KAAK,GAAG,CAAI,GAAQ,EAAE,IAAY,EAAS,EAAE;IACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IACD,OAAO,IAAA,aAAK,EAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}
@@ -1 +1,2 @@
1
- export declare const find: <T>(arr: T[], predicate: (val: T, idx: number, obj: T[]) => boolean, from?: number, to?: number) => T | undefined;
1
+ import type { Predicate } from "./types";
2
+ export declare const find: <T>(arr: T[], predicate: Predicate<T, boolean>, from?: number, to?: number) => T | undefined;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.find = void 0;
4
+ const findIdx_1 = require("./findIdx");
4
5
  const find = (arr, predicate, from = 0, to = arr.length) => {
5
- for (let i = from; i < to; i++) {
6
- if (predicate(arr[i], i, arr)) {
7
- return arr[i];
8
- }
9
- }
10
- return undefined;
6
+ return arr[(0, findIdx_1.findIdx)(arr, predicate, from, to)];
11
7
  };
12
8
  exports.find = find;
13
9
  //# sourceMappingURL=find.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/arr/find.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,CAClB,GAAQ,EACR,SAAqD,EACrD,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,GAAG,CAAC,MAAM,EACA,EAAE;IACjB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;YAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;SACf;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAZW,QAAA,IAAI,QAYf"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/arr/find.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAG7B,MAAM,IAAI,GAAG,CAClB,GAAQ,EACR,SAAuB,EACvB,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,GAAG,CAAC,MAAM,EACA,EAAE;IACjB,OAAO,GAAG,CAAC,IAAA,iBAAO,EAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAPW,QAAA,IAAI,QAOf"}
@@ -0,0 +1,2 @@
1
+ import type { Predicate } from "./types";
2
+ export declare const findAll: <T>(arr: T[], predicate: Predicate<T, boolean>, from?: number, to?: number, limit?: number) => T[];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findAll = void 0;
4
+ const findAllIdx_1 = require("./findAllIdx");
5
+ const findAll = (arr, predicate, from = 0, to = arr.length, limit = arr.length) => {
6
+ return (0, findAllIdx_1.findAllIdx)(arr, predicate, from, to, limit).map((i) => arr[i]);
7
+ };
8
+ exports.findAll = findAll;
9
+ //# sourceMappingURL=findAll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findAll.js","sourceRoot":"","sources":["../../../src/arr/findAll.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAGnC,MAAM,OAAO,GAAG,CACrB,GAAQ,EACR,SAAuB,EACvB,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,GAAG,CAAC,MAAM,EACf,KAAK,GAAG,GAAG,CAAC,MAAM,EACb,EAAE;IACP,OAAO,IAAA,uBAAU,EAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AARW,QAAA,OAAO,WAQlB"}
@@ -0,0 +1,2 @@
1
+ import type { Predicate } from "./types";
2
+ export declare const findAllIdx: <T>(arr: T[], predicate: Predicate<T, boolean>, from?: number, to?: number, limit?: number) => number[];
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findAllIdx = void 0;
4
+ const findAllIdx = (arr, predicate, from = 0, to = arr.length, limit = arr.length) => {
5
+ const res = [];
6
+ for (let i = from; i < to; i++) {
7
+ if (predicate(arr[i], i, arr)) {
8
+ res.push(i);
9
+ if (res.length >= limit) {
10
+ break;
11
+ }
12
+ }
13
+ }
14
+ return res;
15
+ };
16
+ exports.findAllIdx = findAllIdx;
17
+ //# sourceMappingURL=findAllIdx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findAllIdx.js","sourceRoot":"","sources":["../../../src/arr/findAllIdx.ts"],"names":[],"mappings":";;;AAEO,MAAM,UAAU,GAAG,CACxB,GAAQ,EACR,SAAuB,EACvB,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,GAAG,CAAC,MAAM,EACf,KAAK,GAAG,GAAG,CAAC,MAAM,EACR,EAAE;IACZ,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE;gBACvB,MAAM;aACP;SACF;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAjBW,QAAA,UAAU,cAiBrB"}
@@ -1 +1,2 @@
1
- export declare const findIdx: <T>(arr: T[], predicate: (val: T, idx: number, obj: T[]) => boolean, from?: number, to?: number) => number;
1
+ import type { Predicate } from "./types";
2
+ export declare const findIdx: <T>(arr: T[], predicate: Predicate<T, boolean>, from?: number, to?: number) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"findIdx.js","sourceRoot":"","sources":["../../../src/arr/findIdx.ts"],"names":[],"mappings":";;;AAAO,MAAM,OAAO,GAAG,CACrB,GAAQ,EACR,SAAqD,EACrD,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,GAAG,CAAC,MAAM,EACP,EAAE;IACV,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;YAC7B,OAAO,CAAC,CAAC;SACV;KACF;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAZW,QAAA,OAAO,WAYlB"}
1
+ {"version":3,"file":"findIdx.js","sourceRoot":"","sources":["../../../src/arr/findIdx.ts"],"names":[],"mappings":";;;AAEO,MAAM,OAAO,GAAG,CACrB,GAAQ,EACR,SAAuB,EACvB,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,GAAG,CAAC,MAAM,EACP,EAAE;IACV,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;YAC7B,OAAO,CAAC,CAAC;SACV;KACF;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAZW,QAAA,OAAO,WAYlB"}
@@ -2,11 +2,16 @@ export * from "./chunk";
2
2
  export * from "./fill";
3
3
  export * from "./find";
4
4
  export * from "./findIdx";
5
+ export * from "./findAll";
6
+ export * from "./findAllIdx";
5
7
  export * from "./from";
6
8
  export * from "./group";
7
9
  export * from "./groupBy";
10
+ export * from "./max";
11
+ export * from "./min";
8
12
  export * from "./range";
9
13
  export * from "./sort";
10
14
  export * from "./transpose";
11
15
  export * from "./union";
12
16
  export * from "./unique";
17
+ export * from "./zip";
@@ -18,12 +18,17 @@ __exportStar(require("./chunk"), exports);
18
18
  __exportStar(require("./fill"), exports);
19
19
  __exportStar(require("./find"), exports);
20
20
  __exportStar(require("./findIdx"), exports);
21
+ __exportStar(require("./findAll"), exports);
22
+ __exportStar(require("./findAllIdx"), exports);
21
23
  __exportStar(require("./from"), exports);
22
24
  __exportStar(require("./group"), exports);
23
25
  __exportStar(require("./groupBy"), exports);
26
+ __exportStar(require("./max"), exports);
27
+ __exportStar(require("./min"), exports);
24
28
  __exportStar(require("./range"), exports);
25
29
  __exportStar(require("./sort"), exports);
26
30
  __exportStar(require("./transpose"), exports);
27
31
  __exportStar(require("./union"), exports);
28
32
  __exportStar(require("./unique"), exports);
33
+ __exportStar(require("./zip"), exports);
29
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/arr/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,yCAAuB;AACvB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,yCAAuB;AACvB,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/arr/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,4CAA0B;AAC1B,+CAA6B;AAC7B,yCAAuB;AACvB,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;AACtB,wCAAsB;AACtB,0CAAwB;AACxB,yCAAuB;AACvB,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB"}
@@ -0,0 +1 @@
1
+ export declare const max: <T>(arr: T[], fn: (val: T) => number) => T;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.max = void 0;
4
+ const max = (arr, fn) => {
5
+ const scores = arr.map(fn);
6
+ let maxIdx = 0;
7
+ for (let i = 1; i < scores.length; i++) {
8
+ if (scores[i] > scores[maxIdx]) {
9
+ maxIdx = i;
10
+ }
11
+ }
12
+ return arr[maxIdx];
13
+ };
14
+ exports.max = max;
15
+ //# sourceMappingURL=max.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/arr/max.ts"],"names":[],"mappings":";;;AAAO,MAAM,GAAG,GAAG,CAAI,GAAQ,EAAE,EAAsB,EAAK,EAAE;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,GAAG,CAAC,CAAC;SACZ;KACF;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC,CAAC;AATW,QAAA,GAAG,OASd"}
@@ -0,0 +1 @@
1
+ export declare const min: <T>(arr: T[], fn: (val: T) => number) => T;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.min = void 0;
4
+ const max_1 = require("./max");
5
+ const min = (arr, fn) => {
6
+ return (0, max_1.max)(arr, (val) => -fn(val));
7
+ };
8
+ exports.min = min;
9
+ //# sourceMappingURL=min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min.js","sourceRoot":"","sources":["../../../src/arr/min.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAErB,MAAM,GAAG,GAAG,CAAI,GAAQ,EAAE,EAAsB,EAAK,EAAE;IAC5D,OAAO,IAAA,SAAG,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,GAAG,OAEd"}
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.range = void 0;
4
4
  const from_1 = require("./from");
5
5
  const range = (a, b, step = 1) => {
6
- const n = Math.ceil((b - a) / step);
7
- if (n <= 0) {
8
- throw Error("Invalid range");
6
+ if (step === 0) {
7
+ throw new Error("Step cannot be 0");
9
8
  }
9
+ const n = Math.ceil((b - a) / step);
10
10
  return (0, from_1.from)(n, (i) => a + step * i);
11
11
  };
12
12
  exports.range = range;
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/arr/range.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAEvB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,IAAI,GAAG,CAAC,EAAY,EAAE;IAChE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,KAAK,CAAC,eAAe,CAAC,CAAC;KAC9B;IACD,OAAO,IAAA,WAAI,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB"}
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/arr/range.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAEvB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,IAAI,GAAG,CAAC,EAAY,EAAE;IAChE,IAAI,IAAI,KAAK,CAAC,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpC,OAAO,IAAA,WAAI,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB"}
@@ -1 +1 @@
1
- export declare const sort: <T>(arr: T[], mapFn: ((el: T) => number) | ((el: T) => string)) => T[];
1
+ export declare const sort: <T>(arr: T[], mapFn: (el: T) => number | string) => T[];
@@ -1 +1 @@
1
- {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../src/arr/sort.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,CAClB,GAAQ,EACR,KAAgD,EAC3C,EAAE;IACP,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAU,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,OAAO,CAAC,CAAC,CAAC;SACX;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,OAAO,CAAC,CAAC;SACV;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAlBW,QAAA,IAAI,QAkBf"}
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../src/arr/sort.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,CAAI,GAAQ,EAAE,KAAiC,EAAO,EAAE;IAC1E,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAU,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,OAAO,CAAC,CAAC,CAAC;SACX;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,OAAO,CAAC,CAAC;SACV;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAfW,QAAA,IAAI,QAef"}
@@ -1 +1,2 @@
1
- export declare const transpose: <T>(matrix: T[][]) => T[][];
1
+ import type { Transpose } from "./types";
2
+ export declare const transpose: <T extends unknown[][]>(matrix: T) => Transpose<T>;
@@ -5,7 +5,11 @@ const from_1 = require("./from");
5
5
  const transpose = (matrix) => {
6
6
  const rows = matrix.length;
7
7
  const cols = matrix[0].length;
8
- return (0, from_1.from)(cols, (i) => (0, from_1.from)(rows, (j) => matrix[j][i]));
8
+ if (matrix.some((row) => row.length !== cols)) {
9
+ throw new Error("Invalid matrix. Rows have different size");
10
+ }
11
+ const res = (0, from_1.from)(cols, (i) => (0, from_1.from)(rows, (j) => matrix[j][i]));
12
+ return res;
9
13
  };
10
14
  exports.transpose = transpose;
11
15
  //# sourceMappingURL=transpose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transpose.js","sourceRoot":"","sources":["../../../src/arr/transpose.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAEvB,MAAM,SAAS,GAAG,CAAI,MAAa,EAAS,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB"}
1
+ {"version":3,"file":"transpose.js","sourceRoot":"","sources":["../../../src/arr/transpose.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAGvB,MAAM,SAAS,GAAG,CAAwB,MAAS,EAAgB,EAAE;IAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IACD,MAAM,GAAG,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,GAA8B,CAAC;AACxC,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB"}
@@ -0,0 +1,11 @@
1
+ type Predicate<T, R = boolean> = (val: T, idx: number, arr: T[]) => R;
2
+ type Transpose<T extends unknown[][]> = T[number] extends infer U ? {
3
+ [K in keyof U]: {
4
+ [J in keyof T]: T[J][K & keyof T[J]];
5
+ };
6
+ } : never;
7
+ type Tuple<T, N extends number, R extends T[] = []> = R["length"] extends N ? R : Tuple<T, N, [...R, T]>;
8
+ type ConvertTuple<T extends unknown[], ToType> = {
9
+ [K in keyof T]: ToType;
10
+ };
11
+ export type { ConvertTuple, Predicate, Transpose, Tuple };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/arr/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"union.js","sourceRoot":"","sources":["../../../src/arr/union.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AAE1B,QAAA,KAAK,GAAG,IAAA,iBAAO,EAAC,CAAI,IAAW,EAAU,EAAE;IACtD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../../src/arr/union.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAE3B,QAAA,KAAK,GAAG,IAAA,iBAAO,EAAC,CAAI,IAAW,EAAU,EAAE;IACtD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unique.js","sourceRoot":"","sources":["../../../src/arr/unique.ts"],"names":[],"mappings":";;;AACA,iCAA8B;AAEvB,MAAM,MAAM,GAAG,CAAsB,GAAQ,EAAO,EAAE;IAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,IAAA,WAAI,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAHW,QAAA,MAAM,UAGjB"}
1
+ {"version":3,"file":"unique.js","sourceRoot":"","sources":["../../../src/arr/unique.ts"],"names":[],"mappings":";;;AAEA,iCAA8B;AAEvB,MAAM,MAAM,GAAG,CAAsB,GAAQ,EAAO,EAAE;IAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,IAAA,WAAI,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAHW,QAAA,MAAM,UAGjB"}
@@ -0,0 +1 @@
1
+ export declare const zip: <T extends unknown[][]>(...args: T) => import("./types").Transpose<T>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zip = void 0;
4
+ const unapply_1 = require("../func/unapply");
5
+ const transpose_1 = require("./transpose");
6
+ exports.zip = (0, unapply_1.unapply)(transpose_1.transpose);
7
+ //# sourceMappingURL=zip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/arr/zip.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,2CAAwC;AAE3B,QAAA,GAAG,GAAG,IAAA,iBAAO,EAAC,qBAAS,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"curry.js","sourceRoot":"","sources":["../../../src/func/curry.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAE7B,MAAM,KAAK,GAAG,CACnB,EAAqB,EACrB,KAAK,GAAG,EAAE,CAAC,MAAM,EACF,EAAE;IACjB,OAAO,IAAA,iBAAO,EAAC,CAAyB,IAAO,EAAuB,EAAE;QACtE,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,OAAO,IAAI,CAAC,EAAE;YAChB,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAoB,CAAwB,CAAC;SACpE;QACD,OAAO,IAAA,aAAK,EACV,IAAA,iBAAO,EAAC,CAA+B,KAAW,EAAK,EAAE;YACvD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC,EACF,OAAO,CACe,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,KAAK,SAgBhB"}
1
+ {"version":3,"file":"curry.js","sourceRoot":"","sources":["../../../src/func/curry.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAE7B,MAAM,KAAK,GAAG,CACnB,EAAqB,EACrB,KAAK,GAAG,EAAE,CAAC,MAAM,EACF,EAAE;IACjB,OAAO,IAAA,iBAAO,EAAC,CAAyB,IAAO,EAAuB,EAAE;QACtE,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,OAAO,IAAI,CAAC,EAAE;YAChB,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAoB,CAAwB,CAAC;SACpE;QACD,OAAO,IAAA,aAAK,EACV,IAAA,iBAAO,EAAC,CAA+B,KAAW,EAAK,EAAE;YACvD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAG,IAAkB,CAAC,MAAM,CAAC,KAAK,CAAM,CAAC,CAAC;QAChE,CAAC,CAAC,EACF,OAAO,CACe,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,KAAK,SAgBhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../../src/func/debounce.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAE7B,MAAM,QAAQ,GAAG,CACtB,EAAwB,EACxB,KAAK,GAAG,GAAG,EACX,EAAE;IACF,IAAI,KAAiC,CAAC;IACtC,OAAO,IAAA,iBAAO,EAAC,CAAC,IAAO,EAAQ,EAAE;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,QAAQ,YAWnB"}
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../../src/func/debounce.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAE7B,MAAM,QAAQ,GAAG,CACtB,EAAwB,EACxB,KAAK,GAAG,GAAG,EACa,EAAE;IAC1B,IAAI,KAAiC,CAAC;IACtC,OAAO,IAAA,iBAAO,EAAC,CAAC,IAAO,EAAQ,EAAE;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,QAAQ,YAWnB"}
@@ -2,4 +2,5 @@ export * from "./apply";
2
2
  export * from "./curry";
3
3
  export * from "./debounce";
4
4
  export * from "./memo";
5
+ export * from "./throttle";
5
6
  export * from "./unapply";
@@ -18,5 +18,6 @@ __exportStar(require("./apply"), exports);
18
18
  __exportStar(require("./curry"), exports);
19
19
  __exportStar(require("./debounce"), exports);
20
20
  __exportStar(require("./memo"), exports);
21
+ __exportStar(require("./throttle"), exports);
21
22
  __exportStar(require("./unapply"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/func/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,yCAAuB;AACvB,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/func/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,yCAAuB;AACvB,6CAA2B;AAC3B,4CAA0B"}
@@ -1,2 +1,2 @@
1
1
  import type { Primitive } from "../types";
2
- export declare const memo: <T extends unknown[], R>(fn: (...args: T) => R, idFn?: (arg: T) => Primitive) => (...args: T) => R;
2
+ export declare const memo: <T extends unknown[], R>(fn: (...args: T) => R, idFn?: (arg: T) => Primitive, ttl?: number) => (...args: T) => R;
@@ -2,16 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.memo = void 0;
4
4
  const unapply_1 = require("./unapply");
5
- const memo = (fn, idFn = JSON.stringify) => {
5
+ const memo = (fn, idFn = JSON.stringify, ttl = 0) => {
6
6
  const cache = new Map();
7
7
  return (0, unapply_1.unapply)((args) => {
8
8
  const key = idFn(args);
9
- if (cache.has(key)) {
10
- return cache.get(key);
9
+ const cached = cache.get(key);
10
+ if (cached !== undefined) {
11
+ if (cached.exp === undefined || Date.now() < cached.exp) {
12
+ return cached.val;
13
+ }
11
14
  }
12
- const result = fn.apply(this, args);
13
- cache.set(key, result);
14
- return result;
15
+ const val = fn.apply(this, args);
16
+ const exp = ttl <= 0 ? undefined : Date.now() + ttl;
17
+ cache.set(key, { exp, val });
18
+ return val;
15
19
  });
16
20
  };
17
21
  exports.memo = memo;
@@ -1 +1 @@
1
- {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../../src/func/memo.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAE7B,MAAM,IAAI,GAAG,CAClB,EAAqB,EACrB,OAA8B,IAAI,CAAC,SAAS,EACvB,EAAE;IACvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IACtC,OAAO,IAAA,iBAAO,EAAC,CAAC,IAAO,EAAK,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;SAC5B;QACD,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAdW,QAAA,IAAI,QAcf"}
1
+ {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../../src/func/memo.ts"],"names":[],"mappings":";;;AAEA,uCAAoC;AAE7B,MAAM,IAAI,GAAG,CAClB,EAAqB,EACrB,OAA8B,IAAI,CAAC,SAAS,EAC5C,GAAG,GAAG,CAAC,EACc,EAAE;IACvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC7D,OAAO,IAAA,iBAAO,EAAC,CAAC,IAAO,EAAK,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE;gBACvD,OAAO,MAAM,CAAC,GAAG,CAAC;aACnB;SACF;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;QACpD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,IAAI,QAmBf"}
@@ -0,0 +1 @@
1
+ export declare const throttle: <A extends unknown[]>(fn: (...args: A) => void, interval?: number) => (...args: A) => void;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.throttle = void 0;
4
+ const unapply_1 = require("./unapply");
5
+ const throttle = (fn, interval = 100) => {
6
+ let wait = false;
7
+ return (0, unapply_1.unapply)((args) => {
8
+ if (wait) {
9
+ return;
10
+ }
11
+ wait = true;
12
+ fn.apply(this, args);
13
+ setTimeout(() => {
14
+ wait = false;
15
+ }, interval);
16
+ });
17
+ };
18
+ exports.throttle = throttle;
19
+ //# sourceMappingURL=throttle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../../src/func/throttle.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAE7B,MAAM,QAAQ,GAAG,CACtB,EAAwB,EACxB,QAAQ,GAAG,GAAG,EACU,EAAE;IAC1B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,IAAA,iBAAO,EAAC,CAAC,IAAI,EAAE,EAAE;QACtB,IAAI,IAAI,EAAE;YACR,OAAO;SACR;QACD,IAAI,GAAG,IAAI,CAAC;QACZ,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,GAAG,KAAK,CAAC;QACf,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,QAAQ,YAenB"}
@@ -2,6 +2,13 @@ export * as arr from "./arr";
2
2
  export * as func from "./func";
3
3
  export * as math from "./math";
4
4
  export * as obj from "./obj";
5
+ export * as str from "./str";
6
+ export * from "./arr";
7
+ export * from "./func";
8
+ export * from "./math";
9
+ export * from "./obj";
10
+ export * from "./str";
11
+ export * from "./arr/types";
5
12
  export * from "./obj/types";
6
13
  export * from "./time";
7
14
  export * from "./time/types";
package/dist/cjs/index.js CHANGED
@@ -26,11 +26,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.obj = exports.math = exports.func = exports.arr = void 0;
29
+ exports.str = exports.obj = exports.math = exports.func = exports.arr = void 0;
30
30
  exports.arr = __importStar(require("./arr"));
31
31
  exports.func = __importStar(require("./func"));
32
32
  exports.math = __importStar(require("./math"));
33
33
  exports.obj = __importStar(require("./obj"));
34
+ exports.str = __importStar(require("./str"));
35
+ __exportStar(require("./arr"), exports);
36
+ __exportStar(require("./func"), exports);
37
+ __exportStar(require("./math"), exports);
38
+ __exportStar(require("./obj"), exports);
39
+ __exportStar(require("./str"), exports);
40
+ __exportStar(require("./arr/types"), exports);
34
41
  __exportStar(require("./obj/types"), exports);
35
42
  __exportStar(require("./time"), exports);
36
43
  __exportStar(require("./time/types"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA2B;AAC3B,6CAA6B;AAC7B,6CAA6B;AAC7B,2CAA2B;AAC3B,4CAA0B;AAC1B,uCAAqB;AACrB,6CAA2B;AAC3B,wCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA6B;AAC7B,+CAA+B;AAC/B,+CAA+B;AAC/B,6CAA6B;AAC7B,6CAA6B;AAC7B,wCAAsB;AACtB,yCAAuB;AACvB,yCAAuB;AACvB,wCAAsB;AACtB,wCAAsB;AACtB,8CAA4B;AAC5B,8CAA4B;AAC5B,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB"}
@@ -1 +1 @@
1
- export declare const add: <A extends import("./types").Quantity[]>(...args: A) => import("./types").Calc<A>;
1
+ export declare const add: <A extends import("./types").Quantity[]>(...q: A) => import("./types").Calc<A>;
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/math/add.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AAEvC,iCAA8B;AAC9B,+BAA4B;AAEf,QAAA,GAAG,GAAG,IAAA,WAAI,EAAC,IAAA,iBAAO,EAAC,SAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/math/add.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,iCAA8B;AAC9B,+BAA4B;AAEf,QAAA,GAAG,GAAG,IAAA,WAAI,EAAC,IAAA,iBAAO,EAAC,SAAG,CAAC,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
+ import type { ConvertTuple } from "../arr/types";
1
2
  import type { Calc, Quantity } from "./types";
2
- export declare const calc: (opFn: (...a: number[]) => number) => <A extends Quantity[]>(...args: A) => Calc<A>;
3
+ export declare const calc: <T extends number[]>(opFn: (...nums: T) => number) => <A extends ConvertTuple<T, Quantity>>(...q: A) => Calc<A>;
@@ -5,21 +5,16 @@ const from_1 = require("../arr/from");
5
5
  const unapply_1 = require("../func/unapply");
6
6
  const calc = (opFn) => {
7
7
  return (0, unapply_1.unapply)((arr) => {
8
- if (arr.length < opFn.length) {
9
- throw Error("Input array and operation function must have same length");
10
- }
11
8
  const vectors = arr.filter((el) => typeof el !== "number");
12
9
  if (vectors.length === 0) {
13
10
  return opFn.apply(undefined, arr);
14
11
  }
15
12
  const size = vectors[0].length;
16
13
  if (vectors.some((v) => v.length !== size)) {
17
- throw Error("All vectors must have same length");
14
+ throw new Error("All vectors must have same length");
18
15
  }
19
16
  return (0, from_1.from)(size, (i) => {
20
- const input = arr.map((el) => {
21
- return typeof el === "number" ? el : el[i];
22
- });
17
+ const input = arr.map((el) => (typeof el === "number" ? el : el[i]));
23
18
  return opFn.apply(undefined, input);
24
19
  });
25
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"calc.js","sourceRoot":"","sources":["../../../src/math/calc.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,0CAAuC;AAIhC,MAAM,IAAI,GAAG,CAClB,IAAgC,EACiB,EAAE;IACnD,OAAO,IAAA,iBAAO,EAAC,CAAuB,GAAM,EAAE,EAAE;QAC9C,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;YAC5B,MAAM,KAAK,CAAC,0DAA0D,CAAC,CAAC;SACzE;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAe,CAAC;QACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAe,CAAY,CAAC;SAC1D;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE;YAC1C,MAAM,KAAK,CAAC,mCAAmC,CAAC,CAAC;SAClD;QACD,OAAO,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACtB,MAAM,KAAK,GAAa,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACrC,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC,CAAY,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAtBW,QAAA,IAAI,QAsBf"}
1
+ {"version":3,"file":"calc.js","sourceRoot":"","sources":["../../../src/math/calc.ts"],"names":[],"mappings":";;;AAAA,oCAAiC;AAEjC,2CAAwC;AAIjC,MAAM,IAAI,GAAG,CAClB,IAA4B,EACiC,EAAE;IAC/D,OAAO,IAAA,iBAAO,EAAC,CAAsC,GAAM,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAe,CAAC;QACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAmB,CAAY,CAAC;SAC9D;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,OAAO,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAU,CAAC,CAAC;QAC3C,CAAC,CAAY,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,IAAI,QAiBf"}
@@ -1 +1 @@
1
- export declare const divide: (arr: number[], n: number) => number[];
1
+ export declare const divide: <A extends [a: import("./types").Quantity, b: import("./types").Quantity]>(...q: A) => import("./types").Calc<A>;