bytekit 1.0.31 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +58 -188
  2. package/dist/utils/core/ApiClient.d.ts +11 -10
  3. package/dist/utils/core/ApiClient.d.ts.map +1 -1
  4. package/dist/utils/core/ApiClient.js +17 -9
  5. package/dist/utils/core/ApiClient.js.map +1 -1
  6. package/dist/utils/core/SchemaAdapter.d.ts +35 -0
  7. package/dist/utils/core/SchemaAdapter.d.ts.map +1 -0
  8. package/dist/utils/core/SchemaAdapter.js +36 -0
  9. package/dist/utils/core/SchemaAdapter.js.map +1 -0
  10. package/dist/utils/core/index.d.ts +1 -1
  11. package/dist/utils/core/index.d.ts.map +1 -1
  12. package/dist/utils/core/index.js +1 -1
  13. package/dist/utils/core/index.js.map +1 -1
  14. package/dist/utils/helpers/QueryStringHelper.d.ts +11 -0
  15. package/dist/utils/helpers/QueryStringHelper.d.ts.map +1 -0
  16. package/dist/utils/helpers/QueryStringHelper.js +84 -0
  17. package/dist/utils/helpers/QueryStringHelper.js.map +1 -0
  18. package/dist/utils/helpers/UrlSlugHelper.d.ts +19 -0
  19. package/dist/utils/helpers/UrlSlugHelper.d.ts.map +1 -0
  20. package/dist/utils/helpers/UrlSlugHelper.js +27 -0
  21. package/dist/utils/helpers/UrlSlugHelper.js.map +1 -0
  22. package/dist/utils/helpers/index.d.ts +2 -13
  23. package/dist/utils/helpers/index.d.ts.map +1 -1
  24. package/dist/utils/helpers/index.js +2 -13
  25. package/dist/utils/helpers/index.js.map +1 -1
  26. package/dist/utils/index.d.ts +2 -8
  27. package/dist/utils/index.d.ts.map +1 -1
  28. package/dist/utils/index.js +2 -8
  29. package/dist/utils/index.js.map +1 -1
  30. package/package.json +13 -71
  31. package/dist/color-utils.d.ts +0 -2
  32. package/dist/color-utils.d.ts.map +0 -1
  33. package/dist/color-utils.js +0 -2
  34. package/dist/color-utils.js.map +0 -1
  35. package/dist/date-utils.d.ts +0 -2
  36. package/dist/date-utils.d.ts.map +0 -1
  37. package/dist/date-utils.js +0 -2
  38. package/dist/date-utils.js.map +0 -1
  39. package/dist/number-utils.d.ts +0 -2
  40. package/dist/number-utils.d.ts.map +0 -1
  41. package/dist/number-utils.js +0 -2
  42. package/dist/number-utils.js.map +0 -1
  43. package/dist/string-utils.d.ts +0 -2
  44. package/dist/string-utils.d.ts.map +0 -1
  45. package/dist/string-utils.js +0 -2
  46. package/dist/string-utils.js.map +0 -1
  47. package/dist/utils/core/BatchRequest.d.ts +0 -79
  48. package/dist/utils/core/BatchRequest.d.ts.map +0 -1
  49. package/dist/utils/core/BatchRequest.js +0 -152
  50. package/dist/utils/core/BatchRequest.js.map +0 -1
  51. package/dist/utils/core/QueryClient.d.ts +0 -145
  52. package/dist/utils/core/QueryClient.d.ts.map +0 -1
  53. package/dist/utils/core/QueryClient.js +0 -453
  54. package/dist/utils/core/QueryClient.js.map +0 -1
  55. package/dist/utils/core/QueryState.d.ts +0 -99
  56. package/dist/utils/core/QueryState.d.ts.map +0 -1
  57. package/dist/utils/core/QueryState.js +0 -65
  58. package/dist/utils/core/QueryState.js.map +0 -1
  59. package/dist/utils/helpers/ArrayUtils.d.ts +0 -134
  60. package/dist/utils/helpers/ArrayUtils.d.ts.map +0 -1
  61. package/dist/utils/helpers/ArrayUtils.js +0 -306
  62. package/dist/utils/helpers/ArrayUtils.js.map +0 -1
  63. package/dist/utils/helpers/ColorUtils.d.ts +0 -235
  64. package/dist/utils/helpers/ColorUtils.d.ts.map +0 -1
  65. package/dist/utils/helpers/ColorUtils.js +0 -598
  66. package/dist/utils/helpers/ColorUtils.js.map +0 -1
  67. package/dist/utils/helpers/DateUtils.d.ts +0 -36
  68. package/dist/utils/helpers/DateUtils.d.ts.map +0 -1
  69. package/dist/utils/helpers/DateUtils.js +0 -131
  70. package/dist/utils/helpers/DateUtils.js.map +0 -1
  71. package/dist/utils/helpers/FormUtils.d.ts +0 -176
  72. package/dist/utils/helpers/FormUtils.d.ts.map +0 -1
  73. package/dist/utils/helpers/FormUtils.js +0 -437
  74. package/dist/utils/helpers/FormUtils.js.map +0 -1
  75. package/dist/utils/helpers/HttpStatusHelper.d.ts +0 -82
  76. package/dist/utils/helpers/HttpStatusHelper.d.ts.map +0 -1
  77. package/dist/utils/helpers/HttpStatusHelper.js +0 -174
  78. package/dist/utils/helpers/HttpStatusHelper.js.map +0 -1
  79. package/dist/utils/helpers/NumberUtils.d.ts +0 -230
  80. package/dist/utils/helpers/NumberUtils.d.ts.map +0 -1
  81. package/dist/utils/helpers/NumberUtils.js +0 -564
  82. package/dist/utils/helpers/NumberUtils.js.map +0 -1
  83. package/dist/utils/helpers/ObjectUtils.d.ts +0 -102
  84. package/dist/utils/helpers/ObjectUtils.d.ts.map +0 -1
  85. package/dist/utils/helpers/ObjectUtils.js +0 -301
  86. package/dist/utils/helpers/ObjectUtils.js.map +0 -1
  87. package/dist/utils/helpers/PaginationHelper.d.ts +0 -127
  88. package/dist/utils/helpers/PaginationHelper.d.ts.map +0 -1
  89. package/dist/utils/helpers/PaginationHelper.js +0 -295
  90. package/dist/utils/helpers/PaginationHelper.js.map +0 -1
  91. package/dist/utils/helpers/Signal.d.ts +0 -92
  92. package/dist/utils/helpers/Signal.d.ts.map +0 -1
  93. package/dist/utils/helpers/Signal.js +0 -243
  94. package/dist/utils/helpers/Signal.js.map +0 -1
  95. package/dist/utils/helpers/StringUtils.d.ts +0 -46
  96. package/dist/utils/helpers/StringUtils.d.ts.map +0 -1
  97. package/dist/utils/helpers/StringUtils.js +0 -228
  98. package/dist/utils/helpers/StringUtils.js.map +0 -1
  99. package/dist/utils/helpers/TimeUtils.d.ts +0 -87
  100. package/dist/utils/helpers/TimeUtils.d.ts.map +0 -1
  101. package/dist/utils/helpers/TimeUtils.js +0 -234
  102. package/dist/utils/helpers/TimeUtils.js.map +0 -1
  103. package/dist/utils/helpers/UrlBuilder.d.ts +0 -79
  104. package/dist/utils/helpers/UrlBuilder.d.ts.map +0 -1
  105. package/dist/utils/helpers/UrlBuilder.js +0 -161
  106. package/dist/utils/helpers/UrlBuilder.js.map +0 -1
  107. package/dist/utils/helpers/Validator.d.ts +0 -31
  108. package/dist/utils/helpers/Validator.d.ts.map +0 -1
  109. package/dist/utils/helpers/Validator.js +0 -175
  110. package/dist/utils/helpers/Validator.js.map +0 -1
  111. package/dist/utils/helpers/useSignal.d.ts +0 -11
  112. package/dist/utils/helpers/useSignal.d.ts.map +0 -1
  113. package/dist/utils/helpers/useSignal.js +0 -11
  114. package/dist/utils/helpers/useSignal.js.map +0 -1
  115. package/dist/validator.d.ts +0 -2
  116. package/dist/validator.d.ts.map +0 -1
  117. package/dist/validator.js +0 -2
  118. package/dist/validator.js.map +0 -1
@@ -1,295 +0,0 @@
1
- /**
2
- * Pagination helper for managing paginated data
3
- * Supports offset-limit and cursor-based pagination
4
- */
5
- /**
6
- * Pagination helper for managing paginated data
7
- */
8
- export class PaginationHelper {
9
- constructor(items, options = {}) {
10
- Object.defineProperty(this, "items", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: void 0
15
- });
16
- Object.defineProperty(this, "pageSize", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- Object.defineProperty(this, "mode", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: void 0
27
- });
28
- Object.defineProperty(this, "currentPage", {
29
- enumerable: true,
30
- configurable: true,
31
- writable: true,
32
- value: 1
33
- });
34
- Object.defineProperty(this, "currentCursor", {
35
- enumerable: true,
36
- configurable: true,
37
- writable: true,
38
- value: void 0
39
- });
40
- Object.defineProperty(this, "cursorMap", {
41
- enumerable: true,
42
- configurable: true,
43
- writable: true,
44
- value: new Map()
45
- });
46
- this.items = items;
47
- this.pageSize = options.pageSize ?? 10;
48
- this.mode = options.mode ?? "offset";
49
- }
50
- /**
51
- * Get current page (offset mode)
52
- */
53
- getCurrentPage() {
54
- if (this.mode === "cursor") {
55
- throw new Error("Use getCurrentPageByCursor() in cursor mode");
56
- }
57
- const start = (this.currentPage - 1) * this.pageSize;
58
- const end = start + this.pageSize;
59
- return this.items.slice(start, end);
60
- }
61
- /**
62
- * Get current page by cursor (cursor mode)
63
- */
64
- getCurrentPageByCursor() {
65
- if (this.mode === "offset") {
66
- throw new Error("Use getCurrentPage() in offset mode");
67
- }
68
- const cursorIndex = this.currentCursor
69
- ? (this.cursorMap.get(this.currentCursor) ?? 0)
70
- : 0;
71
- const start = cursorIndex;
72
- const end = start + this.pageSize;
73
- return this.items.slice(start, end);
74
- }
75
- /**
76
- * Go to next page (offset mode)
77
- */
78
- next() {
79
- if (this.mode === "cursor") {
80
- throw new Error("Use nextByCursor() in cursor mode");
81
- }
82
- if (this.hasNextPage()) {
83
- this.currentPage++;
84
- }
85
- return this.getCurrentPage();
86
- }
87
- /**
88
- * Go to next page by cursor (cursor mode)
89
- */
90
- nextByCursor() {
91
- if (this.mode === "offset") {
92
- throw new Error("Use next() in offset mode");
93
- }
94
- const currentIndex = this.currentCursor
95
- ? (this.cursorMap.get(this.currentCursor) ?? 0)
96
- : 0;
97
- const nextIndex = currentIndex + this.pageSize;
98
- if (nextIndex < this.items.length) {
99
- this.currentCursor = this.generateCursor(nextIndex);
100
- this.cursorMap.set(this.currentCursor, nextIndex);
101
- }
102
- return this.getCurrentPageByCursor();
103
- }
104
- /**
105
- * Go to previous page (offset mode)
106
- */
107
- previous() {
108
- if (this.mode === "cursor") {
109
- throw new Error("Use previousByCursor() in cursor mode");
110
- }
111
- if (this.hasPreviousPage()) {
112
- this.currentPage--;
113
- }
114
- return this.getCurrentPage();
115
- }
116
- /**
117
- * Go to previous page by cursor (cursor mode)
118
- */
119
- previousByCursor() {
120
- if (this.mode === "offset") {
121
- throw new Error("Use previous() in offset mode");
122
- }
123
- const currentIndex = this.currentCursor
124
- ? (this.cursorMap.get(this.currentCursor) ?? 0)
125
- : 0;
126
- const previousIndex = Math.max(0, currentIndex - this.pageSize);
127
- if (previousIndex >= 0) {
128
- this.currentCursor = this.generateCursor(previousIndex);
129
- this.cursorMap.set(this.currentCursor, previousIndex);
130
- }
131
- return this.getCurrentPageByCursor();
132
- }
133
- /**
134
- * Go to specific page (offset mode)
135
- */
136
- goToPage(page) {
137
- if (this.mode === "cursor") {
138
- throw new Error("Use goToCursor() in cursor mode");
139
- }
140
- if (page < 1)
141
- page = 1;
142
- if (page > this.getTotalPages())
143
- page = this.getTotalPages();
144
- this.currentPage = page;
145
- return this.getCurrentPage();
146
- }
147
- /**
148
- * Go to specific cursor (cursor mode)
149
- */
150
- goToCursor(cursor) {
151
- if (this.mode === "offset") {
152
- throw new Error("Use goToPage() in offset mode");
153
- }
154
- if (!this.cursorMap.has(cursor)) {
155
- const index = this.decodeCursor(cursor);
156
- if (index >= 0 && index < this.items.length) {
157
- this.cursorMap.set(cursor, index);
158
- }
159
- }
160
- if (this.cursorMap.has(cursor)) {
161
- this.currentCursor = cursor;
162
- }
163
- return this.getCurrentPageByCursor();
164
- }
165
- /**
166
- * Check if has next page
167
- */
168
- hasNextPage() {
169
- if (this.mode === "offset") {
170
- return this.currentPage < this.getTotalPages();
171
- }
172
- const currentIndex = this.currentCursor
173
- ? (this.cursorMap.get(this.currentCursor) ?? 0)
174
- : 0;
175
- return currentIndex + this.pageSize < this.items.length;
176
- }
177
- /**
178
- * Check if has previous page
179
- */
180
- hasPreviousPage() {
181
- if (this.mode === "offset") {
182
- return this.currentPage > 1;
183
- }
184
- const currentIndex = this.currentCursor
185
- ? (this.cursorMap.get(this.currentCursor) ?? 0)
186
- : 0;
187
- return currentIndex > 0;
188
- }
189
- /**
190
- * Get total pages (offset mode)
191
- */
192
- getTotalPages() {
193
- return Math.ceil(this.items.length / this.pageSize);
194
- }
195
- /**
196
- * Get total items
197
- */
198
- getTotalItems() {
199
- return this.items.length;
200
- }
201
- /**
202
- * Get current page number (offset mode)
203
- */
204
- getCurrentPageNumber() {
205
- return this.currentPage;
206
- }
207
- /**
208
- * Get pagination state (offset mode)
209
- */
210
- getState() {
211
- return {
212
- currentPage: this.currentPage,
213
- pageSize: this.pageSize,
214
- total: this.items.length,
215
- totalPages: this.getTotalPages(),
216
- hasNextPage: this.hasNextPage(),
217
- hasPreviousPage: this.hasPreviousPage(),
218
- };
219
- }
220
- /**
221
- * Get cursor pagination state (cursor mode)
222
- */
223
- getCursorState() {
224
- const currentIndex = this.currentCursor
225
- ? (this.cursorMap.get(this.currentCursor) ?? 0)
226
- : 0;
227
- const nextIndex = currentIndex + this.pageSize;
228
- const previousIndex = Math.max(0, currentIndex - this.pageSize);
229
- return {
230
- cursor: this.currentCursor,
231
- nextCursor: nextIndex < this.items.length
232
- ? this.generateCursor(nextIndex)
233
- : undefined,
234
- previousCursor: currentIndex > 0
235
- ? this.generateCursor(previousIndex)
236
- : undefined,
237
- hasNextPage: nextIndex < this.items.length,
238
- hasPreviousPage: currentIndex > 0,
239
- };
240
- }
241
- /**
242
- * Reset to first page
243
- */
244
- reset() {
245
- this.currentPage = 1;
246
- this.currentCursor = undefined;
247
- this.cursorMap.clear();
248
- }
249
- /**
250
- * Set page size
251
- */
252
- setPageSize(size) {
253
- if (size <= 0)
254
- throw new Error("Page size must be greater than 0");
255
- this.pageSize = size;
256
- this.reset();
257
- }
258
- /**
259
- * Generate cursor from index
260
- */
261
- generateCursor(index) {
262
- return Buffer.from(index.toString()).toString("base64");
263
- }
264
- /**
265
- * Decode cursor to index
266
- */
267
- decodeCursor(cursor) {
268
- try {
269
- return parseInt(Buffer.from(cursor, "base64").toString(), 10);
270
- }
271
- catch {
272
- return 0;
273
- }
274
- }
275
- /**
276
- * Get all items
277
- */
278
- getAllItems() {
279
- return [...this.items];
280
- }
281
- /**
282
- * Update items
283
- */
284
- setItems(items) {
285
- this.items = items;
286
- this.reset();
287
- }
288
- }
289
- /**
290
- * Factory function for creating paginators
291
- */
292
- export function createPaginator(items, options) {
293
- return new PaginationHelper(items, options);
294
- }
295
- //# sourceMappingURL=PaginationHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaginationHelper.js","sourceRoot":"","sources":["../../../src/utils/helpers/PaginationHelper.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Signal-based reactive state management
3
- * Provides fine-grained reactivity without full component re-renders
4
- * Similar to Preact Signals
5
- */
6
- /**
7
- * Core Signal class
8
- * Holds a reactive value that notifies subscribers on changes
9
- */
10
- export declare class Signal<T> {
11
- protected _value: T;
12
- protected subscribers: Set<() => void>;
13
- constructor(initialValue: T);
14
- /**
15
- * Get the current value
16
- * Automatically subscribes the current computation if any
17
- */
18
- get value(): T;
19
- /**
20
- * Set a new value
21
- * Notifies all subscribers if the value changed
22
- */
23
- set value(newValue: T);
24
- /**
25
- * Get value without subscribing
26
- */
27
- peek(): T;
28
- /**
29
- * Subscribe to changes
30
- * @returns Unsubscribe function
31
- */
32
- subscribe(callback: () => void): () => void;
33
- /**
34
- * Notify all subscribers
35
- */
36
- protected notify(): void;
37
- /**
38
- * Get number of subscribers (for debugging)
39
- */
40
- get subscriberCount(): number;
41
- }
42
- /**
43
- * Computed signal (derived state)
44
- * Automatically updates when dependencies change
45
- */
46
- export declare class Computed<T> extends Signal<T> {
47
- private compute;
48
- private dirty;
49
- private dependencies;
50
- constructor(compute: () => T);
51
- /**
52
- * Get computed value
53
- * Re-computes if dirty, otherwise returns cached value
54
- */
55
- get value(): T;
56
- /**
57
- * Computed signals are read-only
58
- */
59
- set value(_: T);
60
- /**
61
- * Recompute the value
62
- */
63
- private recompute;
64
- /**
65
- * Force recomputation
66
- */
67
- refresh(): void;
68
- }
69
- /**
70
- * Effect - runs side effects when dependencies change
71
- * @param callback Effect callback, can return cleanup function
72
- * @returns Cleanup function
73
- */
74
- export declare function effect(callback: () => void | (() => void)): () => void;
75
- /**
76
- * Batch multiple signal updates
77
- * Defers notifications until batch completes
78
- */
79
- export declare function batch(callback: () => void): void;
80
- /**
81
- * Create a signal
82
- */
83
- export declare function signal<T>(initialValue: T): Signal<T>;
84
- /**
85
- * Create a computed signal
86
- */
87
- export declare function computed<T>(compute: () => T): Computed<T>;
88
- /**
89
- * Untracked - access signals without subscribing
90
- */
91
- export declare function untracked<T>(callback: () => T): T;
92
- //# sourceMappingURL=Signal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Signal.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/Signal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;;GAGG;AACH,qBAAa,MAAM,CAAC,CAAC;IACjB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACpB,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAa;gBAEvC,YAAY,EAAE,CAAC;IAI3B;;;OAGG;IACH,IAAI,KAAK,IAAI,CAAC,CAMb;IAED;;;OAGG;IACH,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,EAKpB;IAED;;OAEG;IACH,IAAI,IAAI,CAAC;IAIT;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C;;OAEG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAUxB;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;CACJ;AAED;;;GAGG;AACH,qBAAa,QAAQ,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAA8B;gBAEtC,OAAO,EAAE,MAAM,CAAC;IAK5B;;;OAGG;IACH,IAAI,KAAK,IAAI,CAAC,CAWb;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAEb;IAED;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,OAAO,IAAI,IAAI;CAIlB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,CAiCtE;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAahD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAEpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEzD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAQjD"}
@@ -1,243 +0,0 @@
1
- /**
2
- * Signal-based reactive state management
3
- * Provides fine-grained reactivity without full component re-renders
4
- * Similar to Preact Signals
5
- */
6
- // Global context for dependency tracking
7
- let currentComputation = null;
8
- let batchDepth = 0;
9
- const batchedUpdates = new Set();
10
- /**
11
- * Core Signal class
12
- * Holds a reactive value that notifies subscribers on changes
13
- */
14
- export class Signal {
15
- constructor(initialValue) {
16
- Object.defineProperty(this, "_value", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- Object.defineProperty(this, "subscribers", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: new Set()
27
- });
28
- this._value = initialValue;
29
- }
30
- /**
31
- * Get the current value
32
- * Automatically subscribes the current computation if any
33
- */
34
- get value() {
35
- // Auto-subscribe if there's an active computation
36
- if (currentComputation) {
37
- this.subscribers.add(currentComputation);
38
- }
39
- return this._value;
40
- }
41
- /**
42
- * Set a new value
43
- * Notifies all subscribers if the value changed
44
- */
45
- set value(newValue) {
46
- if (!Object.is(this._value, newValue)) {
47
- this._value = newValue;
48
- this.notify();
49
- }
50
- }
51
- /**
52
- * Get value without subscribing
53
- */
54
- peek() {
55
- return this._value;
56
- }
57
- /**
58
- * Subscribe to changes
59
- * @returns Unsubscribe function
60
- */
61
- subscribe(callback) {
62
- this.subscribers.add(callback);
63
- return () => {
64
- this.subscribers.delete(callback);
65
- };
66
- }
67
- /**
68
- * Notify all subscribers
69
- */
70
- notify() {
71
- if (batchDepth > 0) {
72
- // Defer notifications during batch
73
- this.subscribers.forEach((sub) => batchedUpdates.add(sub));
74
- }
75
- else {
76
- // Immediate notification
77
- this.subscribers.forEach((sub) => sub());
78
- }
79
- }
80
- /**
81
- * Get number of subscribers (for debugging)
82
- */
83
- get subscriberCount() {
84
- return this.subscribers.size;
85
- }
86
- }
87
- /**
88
- * Computed signal (derived state)
89
- * Automatically updates when dependencies change
90
- */
91
- export class Computed extends Signal {
92
- constructor(compute) {
93
- super(undefined);
94
- Object.defineProperty(this, "compute", {
95
- enumerable: true,
96
- configurable: true,
97
- writable: true,
98
- value: void 0
99
- });
100
- Object.defineProperty(this, "dirty", {
101
- enumerable: true,
102
- configurable: true,
103
- writable: true,
104
- value: true
105
- });
106
- Object.defineProperty(this, "dependencies", {
107
- enumerable: true,
108
- configurable: true,
109
- writable: true,
110
- value: new Set()
111
- });
112
- this.compute = compute;
113
- }
114
- /**
115
- * Get computed value
116
- * Re-computes if dirty, otherwise returns cached value
117
- */
118
- get value() {
119
- if (this.dirty) {
120
- this.recompute();
121
- }
122
- // Subscribe caller to this computed
123
- if (currentComputation) {
124
- this.subscribers.add(currentComputation);
125
- }
126
- return this._value;
127
- }
128
- /**
129
- * Computed signals are read-only
130
- */
131
- set value(_) {
132
- throw new Error("Cannot set value of computed signal");
133
- }
134
- /**
135
- * Recompute the value
136
- */
137
- recompute() {
138
- // Clear old dependencies
139
- this.dependencies.clear();
140
- // Track new dependencies
141
- const prevComputation = currentComputation;
142
- currentComputation = () => {
143
- this.dirty = true;
144
- this.notify();
145
- };
146
- // Store cleanup for dependencies
147
- this.dependencies.add(currentComputation);
148
- try {
149
- this._value = this.compute();
150
- this.dirty = false;
151
- }
152
- finally {
153
- currentComputation = prevComputation;
154
- }
155
- }
156
- /**
157
- * Force recomputation
158
- */
159
- refresh() {
160
- this.dirty = true;
161
- this.recompute();
162
- }
163
- }
164
- /**
165
- * Effect - runs side effects when dependencies change
166
- * @param callback Effect callback, can return cleanup function
167
- * @returns Cleanup function
168
- */
169
- export function effect(callback) {
170
- let cleanup;
171
- let isDisposed = false;
172
- const execute = () => {
173
- if (isDisposed)
174
- return;
175
- // Run cleanup from previous execution
176
- if (cleanup) {
177
- cleanup();
178
- }
179
- // Execute effect
180
- const prevComputation = currentComputation;
181
- currentComputation = execute;
182
- try {
183
- cleanup = callback();
184
- }
185
- finally {
186
- currentComputation = prevComputation;
187
- }
188
- };
189
- // Initial execution
190
- execute();
191
- // Return dispose function
192
- return () => {
193
- isDisposed = true;
194
- if (cleanup) {
195
- cleanup();
196
- }
197
- };
198
- }
199
- /**
200
- * Batch multiple signal updates
201
- * Defers notifications until batch completes
202
- */
203
- export function batch(callback) {
204
- batchDepth++;
205
- try {
206
- callback();
207
- }
208
- finally {
209
- batchDepth--;
210
- if (batchDepth === 0) {
211
- // Execute all batched updates
212
- const updates = Array.from(batchedUpdates);
213
- batchedUpdates.clear();
214
- updates.forEach((update) => update());
215
- }
216
- }
217
- }
218
- /**
219
- * Create a signal
220
- */
221
- export function signal(initialValue) {
222
- return new Signal(initialValue);
223
- }
224
- /**
225
- * Create a computed signal
226
- */
227
- export function computed(compute) {
228
- return new Computed(compute);
229
- }
230
- /**
231
- * Untracked - access signals without subscribing
232
- */
233
- export function untracked(callback) {
234
- const prevComputation = currentComputation;
235
- currentComputation = null;
236
- try {
237
- return callback();
238
- }
239
- finally {
240
- currentComputation = prevComputation;
241
- }
242
- }
243
- //# sourceMappingURL=Signal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Signal.js","sourceRoot":"","sources":["../../../src/utils/helpers/Signal.ts"],"names":[],"mappings":"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"}