@tanstack/angular-pacer 0.20.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 (280) hide show
  1. package/README.md +165 -0
  2. package/dist/async-batcher/index.cjs +13 -0
  3. package/dist/async-batcher/index.d.cts +4 -0
  4. package/dist/async-batcher/index.d.ts +4 -0
  5. package/dist/async-batcher/index.js +6 -0
  6. package/dist/async-batcher/injectAsyncBatchedCallback.cjs +49 -0
  7. package/dist/async-batcher/injectAsyncBatchedCallback.cjs.map +1 -0
  8. package/dist/async-batcher/injectAsyncBatchedCallback.d.cts +45 -0
  9. package/dist/async-batcher/injectAsyncBatchedCallback.d.ts +45 -0
  10. package/dist/async-batcher/injectAsyncBatchedCallback.js +49 -0
  11. package/dist/async-batcher/injectAsyncBatchedCallback.js.map +1 -0
  12. package/dist/async-batcher/injectAsyncBatcher.cjs +61 -0
  13. package/dist/async-batcher/injectAsyncBatcher.cjs.map +1 -0
  14. package/dist/async-batcher/injectAsyncBatcher.d.cts +63 -0
  15. package/dist/async-batcher/injectAsyncBatcher.d.ts +63 -0
  16. package/dist/async-batcher/injectAsyncBatcher.js +61 -0
  17. package/dist/async-batcher/injectAsyncBatcher.js.map +1 -0
  18. package/dist/async-debouncer/index.cjs +13 -0
  19. package/dist/async-debouncer/index.d.cts +4 -0
  20. package/dist/async-debouncer/index.d.ts +4 -0
  21. package/dist/async-debouncer/index.js +6 -0
  22. package/dist/async-debouncer/injectAsyncDebouncedCallback.cjs +49 -0
  23. package/dist/async-debouncer/injectAsyncDebouncedCallback.cjs.map +1 -0
  24. package/dist/async-debouncer/injectAsyncDebouncedCallback.d.cts +43 -0
  25. package/dist/async-debouncer/injectAsyncDebouncedCallback.d.ts +43 -0
  26. package/dist/async-debouncer/injectAsyncDebouncedCallback.js +49 -0
  27. package/dist/async-debouncer/injectAsyncDebouncedCallback.js.map +1 -0
  28. package/dist/async-debouncer/injectAsyncDebouncer.cjs +83 -0
  29. package/dist/async-debouncer/injectAsyncDebouncer.cjs.map +1 -0
  30. package/dist/async-debouncer/injectAsyncDebouncer.d.cts +86 -0
  31. package/dist/async-debouncer/injectAsyncDebouncer.d.ts +86 -0
  32. package/dist/async-debouncer/injectAsyncDebouncer.js +83 -0
  33. package/dist/async-debouncer/injectAsyncDebouncer.js.map +1 -0
  34. package/dist/async-queuer/index.cjs +13 -0
  35. package/dist/async-queuer/index.d.cts +4 -0
  36. package/dist/async-queuer/index.d.ts +4 -0
  37. package/dist/async-queuer/index.js +6 -0
  38. package/dist/async-queuer/injectAsyncQueuedSignal.cjs +53 -0
  39. package/dist/async-queuer/injectAsyncQueuedSignal.cjs.map +1 -0
  40. package/dist/async-queuer/injectAsyncQueuedSignal.d.cts +55 -0
  41. package/dist/async-queuer/injectAsyncQueuedSignal.d.ts +55 -0
  42. package/dist/async-queuer/injectAsyncQueuedSignal.js +53 -0
  43. package/dist/async-queuer/injectAsyncQueuedSignal.js.map +1 -0
  44. package/dist/async-queuer/injectAsyncQueuer.cjs +61 -0
  45. package/dist/async-queuer/injectAsyncQueuer.cjs.map +1 -0
  46. package/dist/async-queuer/injectAsyncQueuer.d.cts +63 -0
  47. package/dist/async-queuer/injectAsyncQueuer.d.ts +63 -0
  48. package/dist/async-queuer/injectAsyncQueuer.js +61 -0
  49. package/dist/async-queuer/injectAsyncQueuer.js.map +1 -0
  50. package/dist/async-rate-limiter/index.cjs +13 -0
  51. package/dist/async-rate-limiter/index.d.cts +4 -0
  52. package/dist/async-rate-limiter/index.d.ts +4 -0
  53. package/dist/async-rate-limiter/index.js +6 -0
  54. package/dist/async-rate-limiter/injectAsyncRateLimitedCallback.cjs +52 -0
  55. package/dist/async-rate-limiter/injectAsyncRateLimitedCallback.cjs.map +1 -0
  56. package/dist/async-rate-limiter/injectAsyncRateLimitedCallback.d.cts +46 -0
  57. package/dist/async-rate-limiter/injectAsyncRateLimitedCallback.d.ts +46 -0
  58. package/dist/async-rate-limiter/injectAsyncRateLimitedCallback.js +52 -0
  59. package/dist/async-rate-limiter/injectAsyncRateLimitedCallback.js.map +1 -0
  60. package/dist/async-rate-limiter/injectAsyncRateLimiter.cjs +57 -0
  61. package/dist/async-rate-limiter/injectAsyncRateLimiter.cjs.map +1 -0
  62. package/dist/async-rate-limiter/injectAsyncRateLimiter.d.cts +60 -0
  63. package/dist/async-rate-limiter/injectAsyncRateLimiter.d.ts +60 -0
  64. package/dist/async-rate-limiter/injectAsyncRateLimiter.js +57 -0
  65. package/dist/async-rate-limiter/injectAsyncRateLimiter.js.map +1 -0
  66. package/dist/async-retryer/index.cjs +9 -0
  67. package/dist/async-retryer/index.d.cts +1 -0
  68. package/dist/async-retryer/index.d.ts +1 -0
  69. package/dist/async-retryer/index.js +3 -0
  70. package/dist/async-throttler/index.cjs +13 -0
  71. package/dist/async-throttler/index.d.cts +4 -0
  72. package/dist/async-throttler/index.d.ts +4 -0
  73. package/dist/async-throttler/index.js +6 -0
  74. package/dist/async-throttler/injectAsyncThrottledCallback.cjs +50 -0
  75. package/dist/async-throttler/injectAsyncThrottledCallback.cjs.map +1 -0
  76. package/dist/async-throttler/injectAsyncThrottledCallback.d.cts +44 -0
  77. package/dist/async-throttler/injectAsyncThrottledCallback.d.ts +44 -0
  78. package/dist/async-throttler/injectAsyncThrottledCallback.js +50 -0
  79. package/dist/async-throttler/injectAsyncThrottledCallback.js.map +1 -0
  80. package/dist/async-throttler/injectAsyncThrottler.cjs +62 -0
  81. package/dist/async-throttler/injectAsyncThrottler.cjs.map +1 -0
  82. package/dist/async-throttler/injectAsyncThrottler.d.cts +65 -0
  83. package/dist/async-throttler/injectAsyncThrottler.d.ts +65 -0
  84. package/dist/async-throttler/injectAsyncThrottler.js +62 -0
  85. package/dist/async-throttler/injectAsyncThrottler.js.map +1 -0
  86. package/dist/batcher/index.cjs +13 -0
  87. package/dist/batcher/index.d.cts +4 -0
  88. package/dist/batcher/index.d.ts +4 -0
  89. package/dist/batcher/index.js +6 -0
  90. package/dist/batcher/injectBatchedCallback.cjs +47 -0
  91. package/dist/batcher/injectBatchedCallback.cjs.map +1 -0
  92. package/dist/batcher/injectBatchedCallback.d.cts +43 -0
  93. package/dist/batcher/injectBatchedCallback.d.ts +43 -0
  94. package/dist/batcher/injectBatchedCallback.js +47 -0
  95. package/dist/batcher/injectBatchedCallback.js.map +1 -0
  96. package/dist/batcher/injectBatcher.cjs +56 -0
  97. package/dist/batcher/injectBatcher.cjs.map +1 -0
  98. package/dist/batcher/injectBatcher.d.cts +58 -0
  99. package/dist/batcher/injectBatcher.d.ts +58 -0
  100. package/dist/batcher/injectBatcher.js +56 -0
  101. package/dist/batcher/injectBatcher.js.map +1 -0
  102. package/dist/debouncer/index.cjs +17 -0
  103. package/dist/debouncer/index.d.cts +6 -0
  104. package/dist/debouncer/index.d.ts +6 -0
  105. package/dist/debouncer/index.js +8 -0
  106. package/dist/debouncer/injectDebouncedCallback.cjs +46 -0
  107. package/dist/debouncer/injectDebouncedCallback.cjs.map +1 -0
  108. package/dist/debouncer/injectDebouncedCallback.d.cts +43 -0
  109. package/dist/debouncer/injectDebouncedCallback.d.ts +43 -0
  110. package/dist/debouncer/injectDebouncedCallback.js +46 -0
  111. package/dist/debouncer/injectDebouncedCallback.js.map +1 -0
  112. package/dist/debouncer/injectDebouncedSignal.cjs +68 -0
  113. package/dist/debouncer/injectDebouncedSignal.cjs.map +1 -0
  114. package/dist/debouncer/injectDebouncedSignal.d.cts +65 -0
  115. package/dist/debouncer/injectDebouncedSignal.d.ts +65 -0
  116. package/dist/debouncer/injectDebouncedSignal.js +68 -0
  117. package/dist/debouncer/injectDebouncedSignal.js.map +1 -0
  118. package/dist/debouncer/injectDebouncedValue.cjs +17 -0
  119. package/dist/debouncer/injectDebouncedValue.cjs.map +1 -0
  120. package/dist/debouncer/injectDebouncedValue.d.cts +76 -0
  121. package/dist/debouncer/injectDebouncedValue.d.ts +76 -0
  122. package/dist/debouncer/injectDebouncedValue.js +17 -0
  123. package/dist/debouncer/injectDebouncedValue.js.map +1 -0
  124. package/dist/debouncer/injectDebouncer.cjs +76 -0
  125. package/dist/debouncer/injectDebouncer.cjs.map +1 -0
  126. package/dist/debouncer/injectDebouncer.d.cts +79 -0
  127. package/dist/debouncer/injectDebouncer.d.ts +79 -0
  128. package/dist/debouncer/injectDebouncer.js +76 -0
  129. package/dist/debouncer/injectDebouncer.js.map +1 -0
  130. package/dist/index.cjs +65 -0
  131. package/dist/index.d.cts +30 -0
  132. package/dist/index.d.ts +30 -0
  133. package/dist/index.js +32 -0
  134. package/dist/provider/index.cjs +7 -0
  135. package/dist/provider/index.d.cts +3 -0
  136. package/dist/provider/index.d.ts +3 -0
  137. package/dist/provider/index.js +4 -0
  138. package/dist/provider/pacer-context.cjs +20 -0
  139. package/dist/provider/pacer-context.cjs.map +1 -0
  140. package/dist/provider/pacer-context.d.cts +21 -0
  141. package/dist/provider/pacer-context.d.ts +21 -0
  142. package/dist/provider/pacer-context.js +19 -0
  143. package/dist/provider/pacer-context.js.map +1 -0
  144. package/dist/provider/pacer-provider.cjs +41 -0
  145. package/dist/provider/pacer-provider.cjs.map +1 -0
  146. package/dist/provider/pacer-provider.d.cts +36 -0
  147. package/dist/provider/pacer-provider.d.ts +36 -0
  148. package/dist/provider/pacer-provider.js +41 -0
  149. package/dist/provider/pacer-provider.js.map +1 -0
  150. package/dist/queuer/index.cjs +15 -0
  151. package/dist/queuer/index.d.cts +5 -0
  152. package/dist/queuer/index.d.ts +5 -0
  153. package/dist/queuer/index.js +7 -0
  154. package/dist/queuer/injectQueuedSignal.cjs +47 -0
  155. package/dist/queuer/injectQueuedSignal.cjs.map +1 -0
  156. package/dist/queuer/injectQueuedSignal.d.cts +49 -0
  157. package/dist/queuer/injectQueuedSignal.d.ts +49 -0
  158. package/dist/queuer/injectQueuedSignal.js +47 -0
  159. package/dist/queuer/injectQueuedSignal.js.map +1 -0
  160. package/dist/queuer/injectQueuedValue.cjs +23 -0
  161. package/dist/queuer/injectQueuedValue.cjs.map +1 -0
  162. package/dist/queuer/injectQueuedValue.d.cts +34 -0
  163. package/dist/queuer/injectQueuedValue.d.ts +34 -0
  164. package/dist/queuer/injectQueuedValue.js +23 -0
  165. package/dist/queuer/injectQueuedValue.js.map +1 -0
  166. package/dist/queuer/injectQueuer.cjs +61 -0
  167. package/dist/queuer/injectQueuer.cjs.map +1 -0
  168. package/dist/queuer/injectQueuer.d.cts +63 -0
  169. package/dist/queuer/injectQueuer.d.ts +63 -0
  170. package/dist/queuer/injectQueuer.js +61 -0
  171. package/dist/queuer/injectQueuer.js.map +1 -0
  172. package/dist/rate-limiter/index.cjs +17 -0
  173. package/dist/rate-limiter/index.d.cts +6 -0
  174. package/dist/rate-limiter/index.d.ts +6 -0
  175. package/dist/rate-limiter/index.js +8 -0
  176. package/dist/rate-limiter/injectRateLimitedCallback.cjs +45 -0
  177. package/dist/rate-limiter/injectRateLimitedCallback.cjs.map +1 -0
  178. package/dist/rate-limiter/injectRateLimitedCallback.d.cts +42 -0
  179. package/dist/rate-limiter/injectRateLimitedCallback.d.ts +42 -0
  180. package/dist/rate-limiter/injectRateLimitedCallback.js +45 -0
  181. package/dist/rate-limiter/injectRateLimitedCallback.js.map +1 -0
  182. package/dist/rate-limiter/injectRateLimitedSignal.cjs +62 -0
  183. package/dist/rate-limiter/injectRateLimitedSignal.cjs.map +1 -0
  184. package/dist/rate-limiter/injectRateLimitedSignal.d.cts +59 -0
  185. package/dist/rate-limiter/injectRateLimitedSignal.d.ts +59 -0
  186. package/dist/rate-limiter/injectRateLimitedSignal.js +62 -0
  187. package/dist/rate-limiter/injectRateLimitedSignal.js.map +1 -0
  188. package/dist/rate-limiter/injectRateLimitedValue.cjs +17 -0
  189. package/dist/rate-limiter/injectRateLimitedValue.cjs.map +1 -0
  190. package/dist/rate-limiter/injectRateLimitedValue.d.cts +49 -0
  191. package/dist/rate-limiter/injectRateLimitedValue.d.ts +49 -0
  192. package/dist/rate-limiter/injectRateLimitedValue.js +17 -0
  193. package/dist/rate-limiter/injectRateLimitedValue.js.map +1 -0
  194. package/dist/rate-limiter/injectRateLimiter.cjs +90 -0
  195. package/dist/rate-limiter/injectRateLimiter.cjs.map +1 -0
  196. package/dist/rate-limiter/injectRateLimiter.d.cts +93 -0
  197. package/dist/rate-limiter/injectRateLimiter.d.ts +93 -0
  198. package/dist/rate-limiter/injectRateLimiter.js +90 -0
  199. package/dist/rate-limiter/injectRateLimiter.js.map +1 -0
  200. package/dist/throttler/index.cjs +17 -0
  201. package/dist/throttler/index.d.cts +6 -0
  202. package/dist/throttler/index.d.ts +6 -0
  203. package/dist/throttler/index.js +8 -0
  204. package/dist/throttler/injectThrottledCallback.cjs +45 -0
  205. package/dist/throttler/injectThrottledCallback.cjs.map +1 -0
  206. package/dist/throttler/injectThrottledCallback.d.cts +42 -0
  207. package/dist/throttler/injectThrottledCallback.d.ts +42 -0
  208. package/dist/throttler/injectThrottledCallback.js +45 -0
  209. package/dist/throttler/injectThrottledCallback.js.map +1 -0
  210. package/dist/throttler/injectThrottledSignal.cjs +69 -0
  211. package/dist/throttler/injectThrottledSignal.cjs.map +1 -0
  212. package/dist/throttler/injectThrottledSignal.d.cts +66 -0
  213. package/dist/throttler/injectThrottledSignal.d.ts +66 -0
  214. package/dist/throttler/injectThrottledSignal.js +69 -0
  215. package/dist/throttler/injectThrottledSignal.js.map +1 -0
  216. package/dist/throttler/injectThrottledValue.cjs +17 -0
  217. package/dist/throttler/injectThrottledValue.cjs.map +1 -0
  218. package/dist/throttler/injectThrottledValue.d.cts +74 -0
  219. package/dist/throttler/injectThrottledValue.d.ts +74 -0
  220. package/dist/throttler/injectThrottledValue.js +17 -0
  221. package/dist/throttler/injectThrottledValue.js.map +1 -0
  222. package/dist/throttler/injectThrottler.cjs +76 -0
  223. package/dist/throttler/injectThrottler.cjs.map +1 -0
  224. package/dist/throttler/injectThrottler.d.cts +79 -0
  225. package/dist/throttler/injectThrottler.d.ts +79 -0
  226. package/dist/throttler/injectThrottler.js +76 -0
  227. package/dist/throttler/injectThrottler.js.map +1 -0
  228. package/dist/types/index.cjs +9 -0
  229. package/dist/types/index.d.cts +1 -0
  230. package/dist/types/index.d.ts +1 -0
  231. package/dist/types/index.js +3 -0
  232. package/dist/utils/index.cjs +9 -0
  233. package/dist/utils/index.d.cts +1 -0
  234. package/dist/utils/index.d.ts +1 -0
  235. package/dist/utils/index.js +3 -0
  236. package/package.json +121 -0
  237. package/src/async-batcher/index.ts +4 -0
  238. package/src/async-batcher/injectAsyncBatchedCallback.ts +48 -0
  239. package/src/async-batcher/injectAsyncBatcher.ts +87 -0
  240. package/src/async-debouncer/index.ts +4 -0
  241. package/src/async-debouncer/injectAsyncDebouncedCallback.ts +50 -0
  242. package/src/async-debouncer/injectAsyncDebouncer.ts +113 -0
  243. package/src/async-queuer/index.ts +4 -0
  244. package/src/async-queuer/injectAsyncQueuedSignal.ts +82 -0
  245. package/src/async-queuer/injectAsyncQueuer.ts +87 -0
  246. package/src/async-rate-limiter/index.ts +4 -0
  247. package/src/async-rate-limiter/injectAsyncRateLimitedCallback.ts +52 -0
  248. package/src/async-rate-limiter/injectAsyncRateLimiter.ts +87 -0
  249. package/src/async-retryer/index.ts +1 -0
  250. package/src/async-throttler/index.ts +4 -0
  251. package/src/async-throttler/injectAsyncThrottledCallback.ts +50 -0
  252. package/src/async-throttler/injectAsyncThrottler.ts +92 -0
  253. package/src/batcher/index.ts +4 -0
  254. package/src/batcher/injectBatchedCallback.ts +46 -0
  255. package/src/batcher/injectBatcher.ts +79 -0
  256. package/src/debouncer/index.ts +6 -0
  257. package/src/debouncer/injectDebouncedCallback.ts +46 -0
  258. package/src/debouncer/injectDebouncedSignal.ts +101 -0
  259. package/src/debouncer/injectDebouncedValue.ts +126 -0
  260. package/src/debouncer/injectDebouncer.ts +102 -0
  261. package/src/index.ts +40 -0
  262. package/src/provider/index.ts +2 -0
  263. package/src/provider/pacer-context.ts +46 -0
  264. package/src/provider/pacer-provider.ts +38 -0
  265. package/src/queuer/index.ts +5 -0
  266. package/src/queuer/injectQueuedSignal.ts +70 -0
  267. package/src/queuer/injectQueuedValue.ts +101 -0
  268. package/src/queuer/injectQueuer.ts +83 -0
  269. package/src/rate-limiter/index.ts +6 -0
  270. package/src/rate-limiter/injectRateLimitedCallback.ts +45 -0
  271. package/src/rate-limiter/injectRateLimitedSignal.ts +95 -0
  272. package/src/rate-limiter/injectRateLimitedValue.ts +99 -0
  273. package/src/rate-limiter/injectRateLimiter.ts +116 -0
  274. package/src/throttler/index.ts +6 -0
  275. package/src/throttler/injectThrottledCallback.ts +45 -0
  276. package/src/throttler/injectThrottledSignal.ts +102 -0
  277. package/src/throttler/injectThrottledValue.ts +124 -0
  278. package/src/throttler/injectThrottler.ts +102 -0
  279. package/src/types/index.ts +1 -0
  280. package/src/utils/index.ts +1 -0
@@ -0,0 +1,76 @@
1
+ import { injectPacerOptions } from "../provider/pacer-context.js";
2
+ import { injectStore } from "@tanstack/angular-store";
3
+ import { Debouncer } from "@tanstack/pacer/debouncer";
4
+
5
+ //#region src/debouncer/injectDebouncer.ts
6
+ /**
7
+ * An Angular function that creates and manages a Debouncer instance.
8
+ *
9
+ * This is a lower-level function that provides direct access to the Debouncer's functionality.
10
+ * This allows you to integrate it with any state management solution you prefer.
11
+ *
12
+ * This function provides debouncing functionality to limit how often a function can be called,
13
+ * waiting for a specified delay before executing the latest call. This is useful for handling
14
+ * frequent events like window resizing, scroll events, or real-time search inputs.
15
+ *
16
+ * The debouncer will only execute the function after the specified wait time has elapsed
17
+ * since the last call. If the function is called again before the wait time expires, the
18
+ * timer resets and starts waiting again.
19
+ *
20
+ * ## State Management and Selector
21
+ *
22
+ * The function uses TanStack Store for state management and wraps it with Angular signals.
23
+ * The `selector` parameter allows you to specify which state changes will trigger signal updates,
24
+ * optimizing performance by preventing unnecessary updates when irrelevant state changes occur.
25
+ *
26
+ * **By default, there will be no reactive state subscriptions** and you must opt-in to state
27
+ * tracking by providing a selector function. This prevents unnecessary updates and gives you
28
+ * full control over when your component tracks state changes.
29
+ *
30
+ * Available state properties:
31
+ * - `canLeadingExecute`: Whether the debouncer can execute on the leading edge
32
+ * - `executionCount`: Number of function executions that have been completed
33
+ * - `isPending`: Whether the debouncer is waiting for the timeout to trigger execution
34
+ * - `lastArgs`: The arguments from the most recent call to maybeExecute
35
+ * - `status`: Current execution status ('disabled' | 'idle' | 'pending')
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * // Default behavior - no reactive state subscriptions
40
+ * const debouncer = injectDebouncer(
41
+ * (query: string) => fetchSearchResults(query),
42
+ * { wait: 500 }
43
+ * );
44
+ *
45
+ * // Opt-in to track isPending changes (optimized for loading states)
46
+ * const debouncer = injectDebouncer(
47
+ * (query: string) => fetchSearchResults(query),
48
+ * { wait: 500 },
49
+ * (state) => ({ isPending: state.isPending })
50
+ * );
51
+ *
52
+ * // In an event handler
53
+ * const handleChange = (e: Event) => {
54
+ * const target = e.target as HTMLInputElement
55
+ * debouncer.maybeExecute(target.value);
56
+ * };
57
+ *
58
+ * // Access the selected state (will be empty object {} unless selector provided)
59
+ * const { isPending } = debouncer.state();
60
+ * ```
61
+ */
62
+ function injectDebouncer(fn, options, selector = () => ({})) {
63
+ const debouncer = new Debouncer(fn, {
64
+ ...injectPacerOptions().debouncer,
65
+ ...options
66
+ });
67
+ const state = injectStore(debouncer.store, selector);
68
+ return {
69
+ ...debouncer,
70
+ state
71
+ };
72
+ }
73
+
74
+ //#endregion
75
+ export { injectDebouncer };
76
+ //# sourceMappingURL=injectDebouncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectDebouncer.js","names":[],"sources":["../../src/debouncer/injectDebouncer.ts"],"sourcesContent":["import { injectStore } from '@tanstack/angular-store'\nimport { Debouncer } from '@tanstack/pacer/debouncer'\nimport { injectPacerOptions } from '../provider/pacer-context'\nimport type { Signal } from '@angular/core'\nimport type { Store } from '@tanstack/store'\nimport type { AnyFunction } from '@tanstack/pacer/types'\nimport type {\n DebouncerOptions,\n DebouncerState,\n} from '@tanstack/pacer/debouncer'\n\nexport interface AngularDebouncer<\n TFn extends AnyFunction,\n TSelected = {},\n> extends Omit<Debouncer<TFn>, 'store'> {\n /**\n * Reactive state signal that will be updated when the debouncer state changes\n *\n * Use this instead of `debouncer.store.state`\n */\n readonly state: Signal<Readonly<TSelected>>\n /**\n * @deprecated Use `debouncer.state` instead of `debouncer.store.state` if you want to read reactive state.\n * The state on the store object is not reactive in Angular signals.\n */\n readonly store: Store<Readonly<DebouncerState<TFn>>>\n}\n\n/**\n * An Angular function that creates and manages a Debouncer instance.\n *\n * This is a lower-level function that provides direct access to the Debouncer's functionality.\n * This allows you to integrate it with any state management solution you prefer.\n *\n * This function provides debouncing functionality to limit how often a function can be called,\n * waiting for a specified delay before executing the latest call. This is useful for handling\n * frequent events like window resizing, scroll events, or real-time search inputs.\n *\n * The debouncer will only execute the function after the specified wait time has elapsed\n * since the last call. If the function is called again before the wait time expires, the\n * timer resets and starts waiting again.\n *\n * ## State Management and Selector\n *\n * The function uses TanStack Store for state management and wraps it with Angular signals.\n * The `selector` parameter allows you to specify which state changes will trigger signal updates,\n * optimizing performance by preventing unnecessary updates when irrelevant state changes occur.\n *\n * **By default, there will be no reactive state subscriptions** and you must opt-in to state\n * tracking by providing a selector function. This prevents unnecessary updates and gives you\n * full control over when your component tracks state changes.\n *\n * Available state properties:\n * - `canLeadingExecute`: Whether the debouncer can execute on the leading edge\n * - `executionCount`: Number of function executions that have been completed\n * - `isPending`: Whether the debouncer is waiting for the timeout to trigger execution\n * - `lastArgs`: The arguments from the most recent call to maybeExecute\n * - `status`: Current execution status ('disabled' | 'idle' | 'pending')\n *\n * @example\n * ```ts\n * // Default behavior - no reactive state subscriptions\n * const debouncer = injectDebouncer(\n * (query: string) => fetchSearchResults(query),\n * { wait: 500 }\n * );\n *\n * // Opt-in to track isPending changes (optimized for loading states)\n * const debouncer = injectDebouncer(\n * (query: string) => fetchSearchResults(query),\n * { wait: 500 },\n * (state) => ({ isPending: state.isPending })\n * );\n *\n * // In an event handler\n * const handleChange = (e: Event) => {\n * const target = e.target as HTMLInputElement\n * debouncer.maybeExecute(target.value);\n * };\n *\n * // Access the selected state (will be empty object {} unless selector provided)\n * const { isPending } = debouncer.state();\n * ```\n */\nexport function injectDebouncer<TFn extends AnyFunction, TSelected = {}>(\n fn: TFn,\n options: DebouncerOptions<TFn>,\n selector: (state: DebouncerState<TFn>) => TSelected = () => ({}) as TSelected,\n): AngularDebouncer<TFn, TSelected> {\n const mergedOptions = {\n ...injectPacerOptions().debouncer,\n ...options,\n } as DebouncerOptions<TFn>\n\n const debouncer = new Debouncer<TFn>(fn, mergedOptions)\n const state = injectStore(debouncer.store, selector)\n\n return {\n ...debouncer,\n state,\n } as AngularDebouncer<TFn, TSelected>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,SAAgB,gBACd,IACA,SACA,kBAA6D,EAAE,GAC7B;CAMlC,MAAM,YAAY,IAAI,UAAe,IALf;EACpB,GAAG,oBAAoB,CAAC;EACxB,GAAG;EACJ,CAEsD;CACvD,MAAM,QAAQ,YAAY,UAAU,OAAO,SAAS;AAEpD,QAAO;EACL,GAAG;EACH;EACD"}
package/dist/index.cjs ADDED
@@ -0,0 +1,65 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_pacer_provider = require('./provider/pacer-provider.cjs');
3
+ const require_injectAsyncBatcher = require('./async-batcher/injectAsyncBatcher.cjs');
4
+ const require_injectAsyncBatchedCallback = require('./async-batcher/injectAsyncBatchedCallback.cjs');
5
+ const require_injectAsyncDebouncer = require('./async-debouncer/injectAsyncDebouncer.cjs');
6
+ const require_injectAsyncDebouncedCallback = require('./async-debouncer/injectAsyncDebouncedCallback.cjs');
7
+ const require_injectAsyncQueuer = require('./async-queuer/injectAsyncQueuer.cjs');
8
+ const require_injectAsyncQueuedSignal = require('./async-queuer/injectAsyncQueuedSignal.cjs');
9
+ const require_injectAsyncRateLimiter = require('./async-rate-limiter/injectAsyncRateLimiter.cjs');
10
+ const require_injectAsyncRateLimitedCallback = require('./async-rate-limiter/injectAsyncRateLimitedCallback.cjs');
11
+ const require_injectAsyncThrottler = require('./async-throttler/injectAsyncThrottler.cjs');
12
+ const require_injectAsyncThrottledCallback = require('./async-throttler/injectAsyncThrottledCallback.cjs');
13
+ const require_injectBatcher = require('./batcher/injectBatcher.cjs');
14
+ const require_injectBatchedCallback = require('./batcher/injectBatchedCallback.cjs');
15
+ const require_injectDebouncer = require('./debouncer/injectDebouncer.cjs');
16
+ const require_injectDebouncedCallback = require('./debouncer/injectDebouncedCallback.cjs');
17
+ const require_injectDebouncedSignal = require('./debouncer/injectDebouncedSignal.cjs');
18
+ const require_injectDebouncedValue = require('./debouncer/injectDebouncedValue.cjs');
19
+ const require_injectQueuer = require('./queuer/injectQueuer.cjs');
20
+ const require_injectQueuedSignal = require('./queuer/injectQueuedSignal.cjs');
21
+ const require_injectQueuedValue = require('./queuer/injectQueuedValue.cjs');
22
+ const require_injectRateLimiter = require('./rate-limiter/injectRateLimiter.cjs');
23
+ const require_injectRateLimitedCallback = require('./rate-limiter/injectRateLimitedCallback.cjs');
24
+ const require_injectRateLimitedSignal = require('./rate-limiter/injectRateLimitedSignal.cjs');
25
+ const require_injectRateLimitedValue = require('./rate-limiter/injectRateLimitedValue.cjs');
26
+ const require_injectThrottler = require('./throttler/injectThrottler.cjs');
27
+ const require_injectThrottledCallback = require('./throttler/injectThrottledCallback.cjs');
28
+ const require_injectThrottledSignal = require('./throttler/injectThrottledSignal.cjs');
29
+ const require_injectThrottledValue = require('./throttler/injectThrottledValue.cjs');
30
+
31
+ exports.injectAsyncBatchedCallback = require_injectAsyncBatchedCallback.injectAsyncBatchedCallback;
32
+ exports.injectAsyncBatcher = require_injectAsyncBatcher.injectAsyncBatcher;
33
+ exports.injectAsyncDebouncedCallback = require_injectAsyncDebouncedCallback.injectAsyncDebouncedCallback;
34
+ exports.injectAsyncDebouncer = require_injectAsyncDebouncer.injectAsyncDebouncer;
35
+ exports.injectAsyncQueuedSignal = require_injectAsyncQueuedSignal.injectAsyncQueuedSignal;
36
+ exports.injectAsyncQueuer = require_injectAsyncQueuer.injectAsyncQueuer;
37
+ exports.injectAsyncRateLimitedCallback = require_injectAsyncRateLimitedCallback.injectAsyncRateLimitedCallback;
38
+ exports.injectAsyncRateLimiter = require_injectAsyncRateLimiter.injectAsyncRateLimiter;
39
+ exports.injectAsyncThrottledCallback = require_injectAsyncThrottledCallback.injectAsyncThrottledCallback;
40
+ exports.injectAsyncThrottler = require_injectAsyncThrottler.injectAsyncThrottler;
41
+ exports.injectBatchedCallback = require_injectBatchedCallback.injectBatchedCallback;
42
+ exports.injectBatcher = require_injectBatcher.injectBatcher;
43
+ exports.injectDebouncedCallback = require_injectDebouncedCallback.injectDebouncedCallback;
44
+ exports.injectDebouncedSignal = require_injectDebouncedSignal.injectDebouncedSignal;
45
+ exports.injectDebouncedValue = require_injectDebouncedValue.injectDebouncedValue;
46
+ exports.injectDebouncer = require_injectDebouncer.injectDebouncer;
47
+ exports.injectQueuedSignal = require_injectQueuedSignal.injectQueuedSignal;
48
+ exports.injectQueuedValue = require_injectQueuedValue.injectQueuedValue;
49
+ exports.injectQueuer = require_injectQueuer.injectQueuer;
50
+ exports.injectRateLimitedCallback = require_injectRateLimitedCallback.injectRateLimitedCallback;
51
+ exports.injectRateLimitedSignal = require_injectRateLimitedSignal.injectRateLimitedSignal;
52
+ exports.injectRateLimitedValue = require_injectRateLimitedValue.injectRateLimitedValue;
53
+ exports.injectRateLimiter = require_injectRateLimiter.injectRateLimiter;
54
+ exports.injectThrottledCallback = require_injectThrottledCallback.injectThrottledCallback;
55
+ exports.injectThrottledSignal = require_injectThrottledSignal.injectThrottledSignal;
56
+ exports.injectThrottledValue = require_injectThrottledValue.injectThrottledValue;
57
+ exports.injectThrottler = require_injectThrottler.injectThrottler;
58
+ exports.providePacerOptions = require_pacer_provider.providePacerOptions;
59
+ var _tanstack_pacer = require("@tanstack/pacer");
60
+ Object.keys(_tanstack_pacer).forEach(function (k) {
61
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
62
+ enumerable: true,
63
+ get: function () { return _tanstack_pacer[k]; }
64
+ });
65
+ });
@@ -0,0 +1,30 @@
1
+ import { injectAsyncBatchedCallback } from "./async-batcher/injectAsyncBatchedCallback.cjs";
2
+ import { AngularAsyncBatcher, injectAsyncBatcher } from "./async-batcher/injectAsyncBatcher.cjs";
3
+ import { injectAsyncDebouncedCallback } from "./async-debouncer/injectAsyncDebouncedCallback.cjs";
4
+ import { AngularAsyncDebouncer, injectAsyncDebouncer } from "./async-debouncer/injectAsyncDebouncer.cjs";
5
+ import { AngularAsyncQueuer, injectAsyncQueuer } from "./async-queuer/injectAsyncQueuer.cjs";
6
+ import { AsyncQueuedSignal, injectAsyncQueuedSignal } from "./async-queuer/injectAsyncQueuedSignal.cjs";
7
+ import { injectAsyncRateLimitedCallback } from "./async-rate-limiter/injectAsyncRateLimitedCallback.cjs";
8
+ import { AngularAsyncRateLimiter, injectAsyncRateLimiter } from "./async-rate-limiter/injectAsyncRateLimiter.cjs";
9
+ import { injectAsyncThrottledCallback } from "./async-throttler/injectAsyncThrottledCallback.cjs";
10
+ import { AngularAsyncThrottler, injectAsyncThrottler } from "./async-throttler/injectAsyncThrottler.cjs";
11
+ import { injectBatchedCallback } from "./batcher/injectBatchedCallback.cjs";
12
+ import { AngularBatcher, injectBatcher } from "./batcher/injectBatcher.cjs";
13
+ import { injectDebouncedCallback } from "./debouncer/injectDebouncedCallback.cjs";
14
+ import { AngularDebouncer, injectDebouncer } from "./debouncer/injectDebouncer.cjs";
15
+ import { DebouncedSignal, injectDebouncedSignal } from "./debouncer/injectDebouncedSignal.cjs";
16
+ import { injectDebouncedValue } from "./debouncer/injectDebouncedValue.cjs";
17
+ import { providePacerOptions } from "./provider/pacer-provider.cjs";
18
+ import { AngularQueuer, injectQueuer } from "./queuer/injectQueuer.cjs";
19
+ import { QueuedSignal, injectQueuedSignal } from "./queuer/injectQueuedSignal.cjs";
20
+ import { injectQueuedValue } from "./queuer/injectQueuedValue.cjs";
21
+ import { injectRateLimitedCallback } from "./rate-limiter/injectRateLimitedCallback.cjs";
22
+ import { AngularRateLimiter, injectRateLimiter } from "./rate-limiter/injectRateLimiter.cjs";
23
+ import { RateLimitedSignal, injectRateLimitedSignal } from "./rate-limiter/injectRateLimitedSignal.cjs";
24
+ import { injectRateLimitedValue } from "./rate-limiter/injectRateLimitedValue.cjs";
25
+ import { injectThrottledCallback } from "./throttler/injectThrottledCallback.cjs";
26
+ import { AngularThrottler, injectThrottler } from "./throttler/injectThrottler.cjs";
27
+ import { ThrottledSignal, injectThrottledSignal } from "./throttler/injectThrottledSignal.cjs";
28
+ import { injectThrottledValue } from "./throttler/injectThrottledValue.cjs";
29
+ export * from "@tanstack/pacer";
30
+ export { AngularAsyncBatcher, AngularAsyncDebouncer, AngularAsyncQueuer, AngularAsyncRateLimiter, AngularAsyncThrottler, AngularBatcher, AngularDebouncer, AngularQueuer, AngularRateLimiter, AngularThrottler, AsyncQueuedSignal, DebouncedSignal, QueuedSignal, RateLimitedSignal, ThrottledSignal, injectAsyncBatchedCallback, injectAsyncBatcher, injectAsyncDebouncedCallback, injectAsyncDebouncer, injectAsyncQueuedSignal, injectAsyncQueuer, injectAsyncRateLimitedCallback, injectAsyncRateLimiter, injectAsyncThrottledCallback, injectAsyncThrottler, injectBatchedCallback, injectBatcher, injectDebouncedCallback, injectDebouncedSignal, injectDebouncedValue, injectDebouncer, injectQueuedSignal, injectQueuedValue, injectQueuer, injectRateLimitedCallback, injectRateLimitedSignal, injectRateLimitedValue, injectRateLimiter, injectThrottledCallback, injectThrottledSignal, injectThrottledValue, injectThrottler, providePacerOptions };
@@ -0,0 +1,30 @@
1
+ import { injectAsyncBatchedCallback } from "./async-batcher/injectAsyncBatchedCallback.js";
2
+ import { AngularAsyncBatcher, injectAsyncBatcher } from "./async-batcher/injectAsyncBatcher.js";
3
+ import { injectAsyncDebouncedCallback } from "./async-debouncer/injectAsyncDebouncedCallback.js";
4
+ import { AngularAsyncDebouncer, injectAsyncDebouncer } from "./async-debouncer/injectAsyncDebouncer.js";
5
+ import { AngularAsyncQueuer, injectAsyncQueuer } from "./async-queuer/injectAsyncQueuer.js";
6
+ import { AsyncQueuedSignal, injectAsyncQueuedSignal } from "./async-queuer/injectAsyncQueuedSignal.js";
7
+ import { injectAsyncRateLimitedCallback } from "./async-rate-limiter/injectAsyncRateLimitedCallback.js";
8
+ import { AngularAsyncRateLimiter, injectAsyncRateLimiter } from "./async-rate-limiter/injectAsyncRateLimiter.js";
9
+ import { injectAsyncThrottledCallback } from "./async-throttler/injectAsyncThrottledCallback.js";
10
+ import { AngularAsyncThrottler, injectAsyncThrottler } from "./async-throttler/injectAsyncThrottler.js";
11
+ import { injectBatchedCallback } from "./batcher/injectBatchedCallback.js";
12
+ import { AngularBatcher, injectBatcher } from "./batcher/injectBatcher.js";
13
+ import { injectDebouncedCallback } from "./debouncer/injectDebouncedCallback.js";
14
+ import { AngularDebouncer, injectDebouncer } from "./debouncer/injectDebouncer.js";
15
+ import { DebouncedSignal, injectDebouncedSignal } from "./debouncer/injectDebouncedSignal.js";
16
+ import { injectDebouncedValue } from "./debouncer/injectDebouncedValue.js";
17
+ import { providePacerOptions } from "./provider/pacer-provider.js";
18
+ import { AngularQueuer, injectQueuer } from "./queuer/injectQueuer.js";
19
+ import { QueuedSignal, injectQueuedSignal } from "./queuer/injectQueuedSignal.js";
20
+ import { injectQueuedValue } from "./queuer/injectQueuedValue.js";
21
+ import { injectRateLimitedCallback } from "./rate-limiter/injectRateLimitedCallback.js";
22
+ import { AngularRateLimiter, injectRateLimiter } from "./rate-limiter/injectRateLimiter.js";
23
+ import { RateLimitedSignal, injectRateLimitedSignal } from "./rate-limiter/injectRateLimitedSignal.js";
24
+ import { injectRateLimitedValue } from "./rate-limiter/injectRateLimitedValue.js";
25
+ import { injectThrottledCallback } from "./throttler/injectThrottledCallback.js";
26
+ import { AngularThrottler, injectThrottler } from "./throttler/injectThrottler.js";
27
+ import { ThrottledSignal, injectThrottledSignal } from "./throttler/injectThrottledSignal.js";
28
+ import { injectThrottledValue } from "./throttler/injectThrottledValue.js";
29
+ export * from "@tanstack/pacer";
30
+ export { AngularAsyncBatcher, AngularAsyncDebouncer, AngularAsyncQueuer, AngularAsyncRateLimiter, AngularAsyncThrottler, AngularBatcher, AngularDebouncer, AngularQueuer, AngularRateLimiter, AngularThrottler, AsyncQueuedSignal, DebouncedSignal, QueuedSignal, RateLimitedSignal, ThrottledSignal, injectAsyncBatchedCallback, injectAsyncBatcher, injectAsyncDebouncedCallback, injectAsyncDebouncer, injectAsyncQueuedSignal, injectAsyncQueuer, injectAsyncRateLimitedCallback, injectAsyncRateLimiter, injectAsyncThrottledCallback, injectAsyncThrottler, injectBatchedCallback, injectBatcher, injectDebouncedCallback, injectDebouncedSignal, injectDebouncedValue, injectDebouncer, injectQueuedSignal, injectQueuedValue, injectQueuer, injectRateLimitedCallback, injectRateLimitedSignal, injectRateLimitedValue, injectRateLimiter, injectThrottledCallback, injectThrottledSignal, injectThrottledValue, injectThrottler, providePacerOptions };
package/dist/index.js ADDED
@@ -0,0 +1,32 @@
1
+ import { providePacerOptions } from "./provider/pacer-provider.js";
2
+ import { injectAsyncBatcher } from "./async-batcher/injectAsyncBatcher.js";
3
+ import { injectAsyncBatchedCallback } from "./async-batcher/injectAsyncBatchedCallback.js";
4
+ import { injectAsyncDebouncer } from "./async-debouncer/injectAsyncDebouncer.js";
5
+ import { injectAsyncDebouncedCallback } from "./async-debouncer/injectAsyncDebouncedCallback.js";
6
+ import { injectAsyncQueuer } from "./async-queuer/injectAsyncQueuer.js";
7
+ import { injectAsyncQueuedSignal } from "./async-queuer/injectAsyncQueuedSignal.js";
8
+ import { injectAsyncRateLimiter } from "./async-rate-limiter/injectAsyncRateLimiter.js";
9
+ import { injectAsyncRateLimitedCallback } from "./async-rate-limiter/injectAsyncRateLimitedCallback.js";
10
+ import { injectAsyncThrottler } from "./async-throttler/injectAsyncThrottler.js";
11
+ import { injectAsyncThrottledCallback } from "./async-throttler/injectAsyncThrottledCallback.js";
12
+ import { injectBatcher } from "./batcher/injectBatcher.js";
13
+ import { injectBatchedCallback } from "./batcher/injectBatchedCallback.js";
14
+ import { injectDebouncer } from "./debouncer/injectDebouncer.js";
15
+ import { injectDebouncedCallback } from "./debouncer/injectDebouncedCallback.js";
16
+ import { injectDebouncedSignal } from "./debouncer/injectDebouncedSignal.js";
17
+ import { injectDebouncedValue } from "./debouncer/injectDebouncedValue.js";
18
+ import { injectQueuer } from "./queuer/injectQueuer.js";
19
+ import { injectQueuedSignal } from "./queuer/injectQueuedSignal.js";
20
+ import { injectQueuedValue } from "./queuer/injectQueuedValue.js";
21
+ import { injectRateLimiter } from "./rate-limiter/injectRateLimiter.js";
22
+ import { injectRateLimitedCallback } from "./rate-limiter/injectRateLimitedCallback.js";
23
+ import { injectRateLimitedSignal } from "./rate-limiter/injectRateLimitedSignal.js";
24
+ import { injectRateLimitedValue } from "./rate-limiter/injectRateLimitedValue.js";
25
+ import { injectThrottler } from "./throttler/injectThrottler.js";
26
+ import { injectThrottledCallback } from "./throttler/injectThrottledCallback.js";
27
+ import { injectThrottledSignal } from "./throttler/injectThrottledSignal.js";
28
+ import { injectThrottledValue } from "./throttler/injectThrottledValue.js";
29
+
30
+ export * from "@tanstack/pacer"
31
+
32
+ export { injectAsyncBatchedCallback, injectAsyncBatcher, injectAsyncDebouncedCallback, injectAsyncDebouncer, injectAsyncQueuedSignal, injectAsyncQueuer, injectAsyncRateLimitedCallback, injectAsyncRateLimiter, injectAsyncThrottledCallback, injectAsyncThrottler, injectBatchedCallback, injectBatcher, injectDebouncedCallback, injectDebouncedSignal, injectDebouncedValue, injectDebouncer, injectQueuedSignal, injectQueuedValue, injectQueuer, injectRateLimitedCallback, injectRateLimitedSignal, injectRateLimitedValue, injectRateLimiter, injectThrottledCallback, injectThrottledSignal, injectThrottledValue, injectThrottler, providePacerOptions };
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_pacer_context = require('./pacer-context.cjs');
3
+ const require_pacer_provider = require('./pacer-provider.cjs');
4
+
5
+ exports.PACER_OPTIONS = require_pacer_context.PACER_OPTIONS;
6
+ exports.injectPacerOptions = require_pacer_context.injectPacerOptions;
7
+ exports.providePacerOptions = require_pacer_provider.providePacerOptions;
@@ -0,0 +1,3 @@
1
+ import { PACER_OPTIONS, PacerProviderOptions, injectPacerOptions } from "./pacer-context.cjs";
2
+ import { providePacerOptions } from "./pacer-provider.cjs";
3
+ export { PACER_OPTIONS, PacerProviderOptions, injectPacerOptions, providePacerOptions };
@@ -0,0 +1,3 @@
1
+ import { PACER_OPTIONS, PacerProviderOptions, injectPacerOptions } from "./pacer-context.js";
2
+ import { providePacerOptions } from "./pacer-provider.js";
3
+ export { PACER_OPTIONS, PacerProviderOptions, injectPacerOptions, providePacerOptions };
@@ -0,0 +1,4 @@
1
+ import { PACER_OPTIONS, injectPacerOptions } from "./pacer-context.js";
2
+ import { providePacerOptions } from "./pacer-provider.js";
3
+
4
+ export { PACER_OPTIONS, injectPacerOptions, providePacerOptions };
@@ -0,0 +1,20 @@
1
+ let _angular_core = require("@angular/core");
2
+
3
+ //#region src/provider/pacer-context.ts
4
+ const DEFAULT_OPTIONS = {};
5
+ const PACER_OPTIONS = new _angular_core.InjectionToken("PACER_OPTIONS", {
6
+ providedIn: "root",
7
+ factory: () => DEFAULT_OPTIONS
8
+ });
9
+ function injectPacerOptions() {
10
+ try {
11
+ return (0, _angular_core.inject)(PACER_OPTIONS, { optional: true }) ?? DEFAULT_OPTIONS;
12
+ } catch {
13
+ return DEFAULT_OPTIONS;
14
+ }
15
+ }
16
+
17
+ //#endregion
18
+ exports.PACER_OPTIONS = PACER_OPTIONS;
19
+ exports.injectPacerOptions = injectPacerOptions;
20
+ //# sourceMappingURL=pacer-context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacer-context.cjs","names":["InjectionToken"],"sources":["../../src/provider/pacer-context.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core'\nimport type {\n AnyAsyncFunction,\n AnyFunction,\n AsyncBatcherOptions,\n AsyncDebouncerOptions,\n AsyncQueuerOptions,\n AsyncRateLimiterOptions,\n AsyncThrottlerOptions,\n BatcherOptions,\n DebouncerOptions,\n QueuerOptions,\n RateLimiterOptions,\n ThrottlerOptions,\n} from '@tanstack/pacer'\n\nexport interface PacerProviderOptions {\n asyncBatcher?: Partial<AsyncBatcherOptions<any>>\n asyncDebouncer?: Partial<AsyncDebouncerOptions<AnyAsyncFunction>>\n asyncQueuer?: Partial<AsyncQueuerOptions<any>>\n asyncRateLimiter?: Partial<AsyncRateLimiterOptions<AnyAsyncFunction>>\n asyncThrottler?: Partial<AsyncThrottlerOptions<AnyAsyncFunction>>\n batcher?: Partial<BatcherOptions<any>>\n debouncer?: Partial<DebouncerOptions<AnyFunction>>\n queuer?: Partial<QueuerOptions<any>>\n rateLimiter?: Partial<RateLimiterOptions<AnyFunction>>\n throttler?: Partial<ThrottlerOptions<AnyFunction>>\n}\n\nconst DEFAULT_OPTIONS: PacerProviderOptions = {}\n\nexport const PACER_OPTIONS = new InjectionToken<PacerProviderOptions>(\n 'PACER_OPTIONS',\n {\n providedIn: 'root',\n factory: () => DEFAULT_OPTIONS,\n },\n)\n\nexport function injectPacerOptions(): PacerProviderOptions {\n try {\n return inject(PACER_OPTIONS, { optional: true }) ?? DEFAULT_OPTIONS\n } catch {\n return DEFAULT_OPTIONS\n }\n}\n"],"mappings":";;;AA6BA,MAAM,kBAAwC,EAAE;AAEhD,MAAa,gBAAgB,IAAIA,6BAC/B,iBACA;CACE,YAAY;CACZ,eAAe;CAChB,CACF;AAED,SAAgB,qBAA2C;AACzD,KAAI;AACF,mCAAc,eAAe,EAAE,UAAU,MAAM,CAAC,IAAI;SAC9C;AACN,SAAO"}
@@ -0,0 +1,21 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ import { AnyAsyncFunction, AnyFunction, AsyncBatcherOptions, AsyncDebouncerOptions, AsyncQueuerOptions, AsyncRateLimiterOptions, AsyncThrottlerOptions, BatcherOptions, DebouncerOptions, QueuerOptions, RateLimiterOptions, ThrottlerOptions } from "@tanstack/pacer";
3
+
4
+ //#region src/provider/pacer-context.d.ts
5
+ interface PacerProviderOptions {
6
+ asyncBatcher?: Partial<AsyncBatcherOptions<any>>;
7
+ asyncDebouncer?: Partial<AsyncDebouncerOptions<AnyAsyncFunction>>;
8
+ asyncQueuer?: Partial<AsyncQueuerOptions<any>>;
9
+ asyncRateLimiter?: Partial<AsyncRateLimiterOptions<AnyAsyncFunction>>;
10
+ asyncThrottler?: Partial<AsyncThrottlerOptions<AnyAsyncFunction>>;
11
+ batcher?: Partial<BatcherOptions<any>>;
12
+ debouncer?: Partial<DebouncerOptions<AnyFunction>>;
13
+ queuer?: Partial<QueuerOptions<any>>;
14
+ rateLimiter?: Partial<RateLimiterOptions<AnyFunction>>;
15
+ throttler?: Partial<ThrottlerOptions<AnyFunction>>;
16
+ }
17
+ declare const PACER_OPTIONS: InjectionToken<PacerProviderOptions>;
18
+ declare function injectPacerOptions(): PacerProviderOptions;
19
+ //#endregion
20
+ export { PACER_OPTIONS, PacerProviderOptions, injectPacerOptions };
21
+ //# sourceMappingURL=pacer-context.d.cts.map
@@ -0,0 +1,21 @@
1
+ import { AnyAsyncFunction, AnyFunction, AsyncBatcherOptions, AsyncDebouncerOptions, AsyncQueuerOptions, AsyncRateLimiterOptions, AsyncThrottlerOptions, BatcherOptions, DebouncerOptions, QueuerOptions, RateLimiterOptions, ThrottlerOptions } from "@tanstack/pacer";
2
+ import { InjectionToken } from "@angular/core";
3
+
4
+ //#region src/provider/pacer-context.d.ts
5
+ interface PacerProviderOptions {
6
+ asyncBatcher?: Partial<AsyncBatcherOptions<any>>;
7
+ asyncDebouncer?: Partial<AsyncDebouncerOptions<AnyAsyncFunction>>;
8
+ asyncQueuer?: Partial<AsyncQueuerOptions<any>>;
9
+ asyncRateLimiter?: Partial<AsyncRateLimiterOptions<AnyAsyncFunction>>;
10
+ asyncThrottler?: Partial<AsyncThrottlerOptions<AnyAsyncFunction>>;
11
+ batcher?: Partial<BatcherOptions<any>>;
12
+ debouncer?: Partial<DebouncerOptions<AnyFunction>>;
13
+ queuer?: Partial<QueuerOptions<any>>;
14
+ rateLimiter?: Partial<RateLimiterOptions<AnyFunction>>;
15
+ throttler?: Partial<ThrottlerOptions<AnyFunction>>;
16
+ }
17
+ declare const PACER_OPTIONS: InjectionToken<PacerProviderOptions>;
18
+ declare function injectPacerOptions(): PacerProviderOptions;
19
+ //#endregion
20
+ export { PACER_OPTIONS, PacerProviderOptions, injectPacerOptions };
21
+ //# sourceMappingURL=pacer-context.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { InjectionToken, inject } from "@angular/core";
2
+
3
+ //#region src/provider/pacer-context.ts
4
+ const DEFAULT_OPTIONS = {};
5
+ const PACER_OPTIONS = new InjectionToken("PACER_OPTIONS", {
6
+ providedIn: "root",
7
+ factory: () => DEFAULT_OPTIONS
8
+ });
9
+ function injectPacerOptions() {
10
+ try {
11
+ return inject(PACER_OPTIONS, { optional: true }) ?? DEFAULT_OPTIONS;
12
+ } catch {
13
+ return DEFAULT_OPTIONS;
14
+ }
15
+ }
16
+
17
+ //#endregion
18
+ export { PACER_OPTIONS, injectPacerOptions };
19
+ //# sourceMappingURL=pacer-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacer-context.js","names":[],"sources":["../../src/provider/pacer-context.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core'\nimport type {\n AnyAsyncFunction,\n AnyFunction,\n AsyncBatcherOptions,\n AsyncDebouncerOptions,\n AsyncQueuerOptions,\n AsyncRateLimiterOptions,\n AsyncThrottlerOptions,\n BatcherOptions,\n DebouncerOptions,\n QueuerOptions,\n RateLimiterOptions,\n ThrottlerOptions,\n} from '@tanstack/pacer'\n\nexport interface PacerProviderOptions {\n asyncBatcher?: Partial<AsyncBatcherOptions<any>>\n asyncDebouncer?: Partial<AsyncDebouncerOptions<AnyAsyncFunction>>\n asyncQueuer?: Partial<AsyncQueuerOptions<any>>\n asyncRateLimiter?: Partial<AsyncRateLimiterOptions<AnyAsyncFunction>>\n asyncThrottler?: Partial<AsyncThrottlerOptions<AnyAsyncFunction>>\n batcher?: Partial<BatcherOptions<any>>\n debouncer?: Partial<DebouncerOptions<AnyFunction>>\n queuer?: Partial<QueuerOptions<any>>\n rateLimiter?: Partial<RateLimiterOptions<AnyFunction>>\n throttler?: Partial<ThrottlerOptions<AnyFunction>>\n}\n\nconst DEFAULT_OPTIONS: PacerProviderOptions = {}\n\nexport const PACER_OPTIONS = new InjectionToken<PacerProviderOptions>(\n 'PACER_OPTIONS',\n {\n providedIn: 'root',\n factory: () => DEFAULT_OPTIONS,\n },\n)\n\nexport function injectPacerOptions(): PacerProviderOptions {\n try {\n return inject(PACER_OPTIONS, { optional: true }) ?? DEFAULT_OPTIONS\n } catch {\n return DEFAULT_OPTIONS\n }\n}\n"],"mappings":";;;AA6BA,MAAM,kBAAwC,EAAE;AAEhD,MAAa,gBAAgB,IAAI,eAC/B,iBACA;CACE,YAAY;CACZ,eAAe;CAChB,CACF;AAED,SAAgB,qBAA2C;AACzD,KAAI;AACF,SAAO,OAAO,eAAe,EAAE,UAAU,MAAM,CAAC,IAAI;SAC9C;AACN,SAAO"}
@@ -0,0 +1,41 @@
1
+ const require_pacer_context = require('./pacer-context.cjs');
2
+
3
+ //#region src/provider/pacer-provider.ts
4
+ /**
5
+ * Provides default options for all Pacer utilities in the Angular application.
6
+ * Use this function when configuring your Angular application to set default options
7
+ * that will be used by all Pacer utilities throughout your app.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // In your app.config.ts (standalone)
12
+ * export const appConfig: ApplicationConfig = {
13
+ * providers: [
14
+ * providePacerOptions({
15
+ * debouncer: { wait: 300 },
16
+ * throttler: { wait: 100 },
17
+ * }),
18
+ * ],
19
+ * };
20
+ *
21
+ * // Or in NgModule (module-based)
22
+ * @NgModule({
23
+ * providers: [
24
+ * providePacerOptions({
25
+ * debouncer: { wait: 300 },
26
+ * }),
27
+ * ],
28
+ * })
29
+ * export class AppModule {}
30
+ * ```
31
+ */
32
+ function providePacerOptions(options) {
33
+ return {
34
+ provide: require_pacer_context.PACER_OPTIONS,
35
+ useValue: options
36
+ };
37
+ }
38
+
39
+ //#endregion
40
+ exports.providePacerOptions = providePacerOptions;
41
+ //# sourceMappingURL=pacer-provider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacer-provider.cjs","names":["PACER_OPTIONS"],"sources":["../../src/provider/pacer-provider.ts"],"sourcesContent":["import { PACER_OPTIONS } from './pacer-context'\nimport type { Provider } from '@angular/core'\nimport type { PacerProviderOptions } from './pacer-context'\n\n/**\n * Provides default options for all Pacer utilities in the Angular application.\n * Use this function when configuring your Angular application to set default options\n * that will be used by all Pacer utilities throughout your app.\n *\n * @example\n * ```ts\n * // In your app.config.ts (standalone)\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * providePacerOptions({\n * debouncer: { wait: 300 },\n * throttler: { wait: 100 },\n * }),\n * ],\n * };\n *\n * // Or in NgModule (module-based)\n * @NgModule({\n * providers: [\n * providePacerOptions({\n * debouncer: { wait: 300 },\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function providePacerOptions(options: PacerProviderOptions): Provider {\n return {\n provide: PACER_OPTIONS,\n useValue: options,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAAgB,oBAAoB,SAAyC;AAC3E,QAAO;EACL,SAASA;EACT,UAAU;EACX"}
@@ -0,0 +1,36 @@
1
+ import { PacerProviderOptions } from "./pacer-context.cjs";
2
+ import { Provider } from "@angular/core";
3
+
4
+ //#region src/provider/pacer-provider.d.ts
5
+ /**
6
+ * Provides default options for all Pacer utilities in the Angular application.
7
+ * Use this function when configuring your Angular application to set default options
8
+ * that will be used by all Pacer utilities throughout your app.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // In your app.config.ts (standalone)
13
+ * export const appConfig: ApplicationConfig = {
14
+ * providers: [
15
+ * providePacerOptions({
16
+ * debouncer: { wait: 300 },
17
+ * throttler: { wait: 100 },
18
+ * }),
19
+ * ],
20
+ * };
21
+ *
22
+ * // Or in NgModule (module-based)
23
+ * @NgModule({
24
+ * providers: [
25
+ * providePacerOptions({
26
+ * debouncer: { wait: 300 },
27
+ * }),
28
+ * ],
29
+ * })
30
+ * export class AppModule {}
31
+ * ```
32
+ */
33
+ declare function providePacerOptions(options: PacerProviderOptions): Provider;
34
+ //#endregion
35
+ export { providePacerOptions };
36
+ //# sourceMappingURL=pacer-provider.d.cts.map
@@ -0,0 +1,36 @@
1
+ import { PacerProviderOptions } from "./pacer-context.js";
2
+ import { Provider } from "@angular/core";
3
+
4
+ //#region src/provider/pacer-provider.d.ts
5
+ /**
6
+ * Provides default options for all Pacer utilities in the Angular application.
7
+ * Use this function when configuring your Angular application to set default options
8
+ * that will be used by all Pacer utilities throughout your app.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // In your app.config.ts (standalone)
13
+ * export const appConfig: ApplicationConfig = {
14
+ * providers: [
15
+ * providePacerOptions({
16
+ * debouncer: { wait: 300 },
17
+ * throttler: { wait: 100 },
18
+ * }),
19
+ * ],
20
+ * };
21
+ *
22
+ * // Or in NgModule (module-based)
23
+ * @NgModule({
24
+ * providers: [
25
+ * providePacerOptions({
26
+ * debouncer: { wait: 300 },
27
+ * }),
28
+ * ],
29
+ * })
30
+ * export class AppModule {}
31
+ * ```
32
+ */
33
+ declare function providePacerOptions(options: PacerProviderOptions): Provider;
34
+ //#endregion
35
+ export { providePacerOptions };
36
+ //# sourceMappingURL=pacer-provider.d.ts.map
@@ -0,0 +1,41 @@
1
+ import { PACER_OPTIONS } from "./pacer-context.js";
2
+
3
+ //#region src/provider/pacer-provider.ts
4
+ /**
5
+ * Provides default options for all Pacer utilities in the Angular application.
6
+ * Use this function when configuring your Angular application to set default options
7
+ * that will be used by all Pacer utilities throughout your app.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // In your app.config.ts (standalone)
12
+ * export const appConfig: ApplicationConfig = {
13
+ * providers: [
14
+ * providePacerOptions({
15
+ * debouncer: { wait: 300 },
16
+ * throttler: { wait: 100 },
17
+ * }),
18
+ * ],
19
+ * };
20
+ *
21
+ * // Or in NgModule (module-based)
22
+ * @NgModule({
23
+ * providers: [
24
+ * providePacerOptions({
25
+ * debouncer: { wait: 300 },
26
+ * }),
27
+ * ],
28
+ * })
29
+ * export class AppModule {}
30
+ * ```
31
+ */
32
+ function providePacerOptions(options) {
33
+ return {
34
+ provide: PACER_OPTIONS,
35
+ useValue: options
36
+ };
37
+ }
38
+
39
+ //#endregion
40
+ export { providePacerOptions };
41
+ //# sourceMappingURL=pacer-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacer-provider.js","names":[],"sources":["../../src/provider/pacer-provider.ts"],"sourcesContent":["import { PACER_OPTIONS } from './pacer-context'\nimport type { Provider } from '@angular/core'\nimport type { PacerProviderOptions } from './pacer-context'\n\n/**\n * Provides default options for all Pacer utilities in the Angular application.\n * Use this function when configuring your Angular application to set default options\n * that will be used by all Pacer utilities throughout your app.\n *\n * @example\n * ```ts\n * // In your app.config.ts (standalone)\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * providePacerOptions({\n * debouncer: { wait: 300 },\n * throttler: { wait: 100 },\n * }),\n * ],\n * };\n *\n * // Or in NgModule (module-based)\n * @NgModule({\n * providers: [\n * providePacerOptions({\n * debouncer: { wait: 300 },\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function providePacerOptions(options: PacerProviderOptions): Provider {\n return {\n provide: PACER_OPTIONS,\n useValue: options,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAAgB,oBAAoB,SAAyC;AAC3E,QAAO;EACL,SAAS;EACT,UAAU;EACX"}
@@ -0,0 +1,15 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_injectQueuer = require('./injectQueuer.cjs');
3
+ const require_injectQueuedSignal = require('./injectQueuedSignal.cjs');
4
+ const require_injectQueuedValue = require('./injectQueuedValue.cjs');
5
+
6
+ exports.injectQueuedSignal = require_injectQueuedSignal.injectQueuedSignal;
7
+ exports.injectQueuedValue = require_injectQueuedValue.injectQueuedValue;
8
+ exports.injectQueuer = require_injectQueuer.injectQueuer;
9
+ var _tanstack_pacer_queuer = require("@tanstack/pacer/queuer");
10
+ Object.keys(_tanstack_pacer_queuer).forEach(function (k) {
11
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
12
+ enumerable: true,
13
+ get: function () { return _tanstack_pacer_queuer[k]; }
14
+ });
15
+ });
@@ -0,0 +1,5 @@
1
+ import { AngularQueuer, injectQueuer } from "./injectQueuer.cjs";
2
+ import { QueuedSignal, injectQueuedSignal } from "./injectQueuedSignal.cjs";
3
+ import { injectQueuedValue } from "./injectQueuedValue.cjs";
4
+ export * from "@tanstack/pacer/queuer";
5
+ export { AngularQueuer, QueuedSignal, injectQueuedSignal, injectQueuedValue, injectQueuer };
@@ -0,0 +1,5 @@
1
+ import { AngularQueuer, injectQueuer } from "./injectQueuer.js";
2
+ import { QueuedSignal, injectQueuedSignal } from "./injectQueuedSignal.js";
3
+ import { injectQueuedValue } from "./injectQueuedValue.js";
4
+ export * from "@tanstack/pacer/queuer";
5
+ export { AngularQueuer, QueuedSignal, injectQueuedSignal, injectQueuedValue, injectQueuer };
@@ -0,0 +1,7 @@
1
+ import { injectQueuer } from "./injectQueuer.js";
2
+ import { injectQueuedSignal } from "./injectQueuedSignal.js";
3
+ import { injectQueuedValue } from "./injectQueuedValue.js";
4
+
5
+ export * from "@tanstack/pacer/queuer"
6
+
7
+ export { injectQueuedSignal, injectQueuedValue, injectQueuer };