@develia/commons 0.4.12 → 0.4.14

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 (256) hide show
  1. package/dist/cjs/array.js +4 -5
  2. package/dist/cjs/array.js.map +1 -1
  3. package/dist/cjs/async-pool-executor.js +0 -0
  4. package/dist/cjs/async-pool-executor.js.map +0 -0
  5. package/dist/cjs/browser/form-utilities.js +12 -12
  6. package/dist/cjs/browser/form-utilities.js.map +1 -1
  7. package/dist/cjs/browser/geo-location.js +1 -1
  8. package/dist/cjs/browser/geo-location.js.map +1 -1
  9. package/dist/cjs/browser/index.js +30 -2
  10. package/dist/cjs/browser/index.js.map +1 -1
  11. package/dist/cjs/browser/native-bridge.js +0 -0
  12. package/dist/cjs/browser/native-bridge.js.map +0 -0
  13. package/dist/cjs/cancellable-promise.js +0 -0
  14. package/dist/cjs/cancellable-promise.js.map +0 -0
  15. package/dist/cjs/clean-url-search-params.js +0 -0
  16. package/dist/cjs/clean-url-search-params.js.map +0 -0
  17. package/dist/cjs/collections/cache-dictionary.js +0 -0
  18. package/dist/cjs/collections/cache-dictionary.js.map +0 -0
  19. package/dist/cjs/collections/default-map.js +0 -0
  20. package/dist/cjs/collections/default-map.js.map +0 -0
  21. package/dist/cjs/collections/default-weak-map.js +0 -0
  22. package/dist/cjs/collections/default-weak-map.js.map +0 -0
  23. package/dist/cjs/collections/index.js +0 -0
  24. package/dist/cjs/collections/index.js.map +0 -0
  25. package/dist/cjs/draft.js +153 -0
  26. package/dist/cjs/draft.js.map +1 -0
  27. package/dist/cjs/event-bus.js +0 -0
  28. package/dist/cjs/event-bus.js.map +0 -0
  29. package/dist/cjs/from.js +1 -1
  30. package/dist/cjs/from.js.map +1 -1
  31. package/dist/cjs/index.js +3 -1
  32. package/dist/cjs/index.js.map +1 -1
  33. package/dist/cjs/key-value-pair.js +0 -0
  34. package/dist/cjs/key-value-pair.js.map +0 -0
  35. package/dist/cjs/lazy.js +0 -0
  36. package/dist/cjs/lazy.js.map +0 -0
  37. package/dist/cjs/math.js +2 -3
  38. package/dist/cjs/math.js.map +1 -1
  39. package/dist/cjs/order.js +0 -0
  40. package/dist/cjs/order.js.map +0 -0
  41. package/dist/cjs/parse.js +3 -4
  42. package/dist/cjs/parse.js.map +1 -1
  43. package/dist/cjs/patch.js +2 -3
  44. package/dist/cjs/patch.js.map +1 -1
  45. package/dist/cjs/stopwatch.js +0 -0
  46. package/dist/cjs/stopwatch.js.map +0 -0
  47. package/dist/cjs/string.js +8 -9
  48. package/dist/cjs/string.js.map +1 -1
  49. package/dist/cjs/timer.js +0 -0
  50. package/dist/cjs/timer.js.map +0 -0
  51. package/dist/cjs/timespan.js +0 -0
  52. package/dist/cjs/timespan.js.map +0 -0
  53. package/dist/cjs/type-code.js +0 -0
  54. package/dist/cjs/type-code.js.map +0 -0
  55. package/dist/cjs/type.js +0 -0
  56. package/dist/cjs/type.js.map +0 -0
  57. package/dist/cjs/types.js +0 -0
  58. package/dist/cjs/types.js.map +0 -0
  59. package/dist/cjs/utilities.js +106 -57
  60. package/dist/cjs/utilities.js.map +1 -1
  61. package/dist/esm/array.js +0 -0
  62. package/dist/esm/array.js.map +0 -0
  63. package/dist/esm/async-pool-executor.js +0 -0
  64. package/dist/esm/async-pool-executor.js.map +0 -0
  65. package/dist/esm/browser/form-utilities.js +7 -6
  66. package/dist/esm/browser/form-utilities.js.map +1 -1
  67. package/dist/esm/browser/geo-location.js +0 -0
  68. package/dist/esm/browser/geo-location.js.map +0 -0
  69. package/dist/esm/browser/index.js +27 -0
  70. package/dist/esm/browser/index.js.map +1 -1
  71. package/dist/esm/browser/native-bridge.js +0 -0
  72. package/dist/esm/browser/native-bridge.js.map +0 -0
  73. package/dist/esm/cancellable-promise.js +0 -0
  74. package/dist/esm/cancellable-promise.js.map +0 -0
  75. package/dist/esm/clean-url-search-params.js +0 -0
  76. package/dist/esm/clean-url-search-params.js.map +0 -0
  77. package/dist/esm/collections/cache-dictionary.js +0 -0
  78. package/dist/esm/collections/cache-dictionary.js.map +0 -0
  79. package/dist/esm/collections/default-map.js +0 -0
  80. package/dist/esm/collections/default-map.js.map +0 -0
  81. package/dist/esm/collections/default-weak-map.js +0 -0
  82. package/dist/esm/collections/default-weak-map.js.map +0 -0
  83. package/dist/esm/collections/index.js +0 -0
  84. package/dist/esm/collections/index.js.map +0 -0
  85. package/dist/esm/draft.js +150 -0
  86. package/dist/esm/draft.js.map +1 -0
  87. package/dist/esm/event-bus.js +0 -0
  88. package/dist/esm/event-bus.js.map +0 -0
  89. package/dist/esm/from.js +0 -0
  90. package/dist/esm/from.js.map +0 -0
  91. package/dist/esm/index.js +1 -0
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/key-value-pair.js +0 -0
  94. package/dist/esm/key-value-pair.js.map +0 -0
  95. package/dist/esm/lazy.js +0 -0
  96. package/dist/esm/lazy.js.map +0 -0
  97. package/dist/esm/math.js +0 -0
  98. package/dist/esm/math.js.map +0 -0
  99. package/dist/esm/order.js +0 -0
  100. package/dist/esm/order.js.map +0 -0
  101. package/dist/esm/parse.js +0 -0
  102. package/dist/esm/parse.js.map +0 -0
  103. package/dist/esm/patch.js +0 -0
  104. package/dist/esm/patch.js.map +0 -0
  105. package/dist/esm/stopwatch.js +0 -0
  106. package/dist/esm/stopwatch.js.map +0 -0
  107. package/dist/esm/string.js +0 -0
  108. package/dist/esm/string.js.map +0 -0
  109. package/dist/esm/timer.js +0 -0
  110. package/dist/esm/timer.js.map +0 -0
  111. package/dist/esm/timespan.js +0 -0
  112. package/dist/esm/timespan.js.map +0 -0
  113. package/dist/esm/type-code.js +0 -0
  114. package/dist/esm/type-code.js.map +0 -0
  115. package/dist/esm/type.js +0 -0
  116. package/dist/esm/type.js.map +0 -0
  117. package/dist/esm/types.js +0 -0
  118. package/dist/esm/types.js.map +0 -0
  119. package/dist/esm/utilities.js +81 -32
  120. package/dist/esm/utilities.js.map +1 -1
  121. package/dist/types/array.d.ts +0 -0
  122. package/dist/types/array.d.ts.map +0 -0
  123. package/dist/types/async-pool-executor.d.ts +0 -0
  124. package/dist/types/async-pool-executor.d.ts.map +0 -0
  125. package/dist/types/browser/form-utilities.d.ts +0 -0
  126. package/dist/types/browser/form-utilities.d.ts.map +1 -1
  127. package/dist/types/browser/geo-location.d.ts +0 -0
  128. package/dist/types/browser/geo-location.d.ts.map +0 -0
  129. package/dist/types/browser/index.d.ts +3 -0
  130. package/dist/types/browser/index.d.ts.map +1 -1
  131. package/dist/types/browser/native-bridge.d.ts +0 -0
  132. package/dist/types/browser/native-bridge.d.ts.map +0 -0
  133. package/dist/types/cancellable-promise.d.ts +0 -0
  134. package/dist/types/cancellable-promise.d.ts.map +0 -0
  135. package/dist/types/clean-url-search-params.d.ts +0 -0
  136. package/dist/types/clean-url-search-params.d.ts.map +0 -0
  137. package/dist/types/collections/cache-dictionary.d.ts +0 -0
  138. package/dist/types/collections/cache-dictionary.d.ts.map +0 -0
  139. package/dist/types/collections/default-map.d.ts +0 -0
  140. package/dist/types/collections/default-map.d.ts.map +0 -0
  141. package/dist/types/collections/default-weak-map.d.ts +0 -0
  142. package/dist/types/collections/default-weak-map.d.ts.map +0 -0
  143. package/dist/types/collections/index.d.ts +0 -0
  144. package/dist/types/collections/index.d.ts.map +0 -0
  145. package/dist/types/draft.d.ts +17 -0
  146. package/dist/types/draft.d.ts.map +1 -0
  147. package/dist/types/event-bus.d.ts +0 -0
  148. package/dist/types/event-bus.d.ts.map +0 -0
  149. package/dist/types/from.d.ts +0 -0
  150. package/dist/types/from.d.ts.map +0 -0
  151. package/dist/types/index.d.ts +1 -0
  152. package/dist/types/index.d.ts.map +1 -1
  153. package/dist/types/key-value-pair.d.ts +0 -0
  154. package/dist/types/key-value-pair.d.ts.map +0 -0
  155. package/dist/types/lazy.d.ts +0 -0
  156. package/dist/types/lazy.d.ts.map +0 -0
  157. package/dist/types/math.d.ts +0 -0
  158. package/dist/types/math.d.ts.map +0 -0
  159. package/dist/types/order.d.ts +0 -0
  160. package/dist/types/order.d.ts.map +0 -0
  161. package/dist/types/parse.d.ts +0 -0
  162. package/dist/types/parse.d.ts.map +0 -0
  163. package/dist/types/patch.d.ts +0 -0
  164. package/dist/types/patch.d.ts.map +0 -0
  165. package/dist/types/stopwatch.d.ts +0 -0
  166. package/dist/types/stopwatch.d.ts.map +0 -0
  167. package/dist/types/string.d.ts +0 -0
  168. package/dist/types/string.d.ts.map +0 -0
  169. package/dist/types/timer.d.ts +0 -0
  170. package/dist/types/timer.d.ts.map +0 -0
  171. package/dist/types/timespan.d.ts +0 -0
  172. package/dist/types/timespan.d.ts.map +0 -0
  173. package/dist/types/type-code.d.ts +0 -0
  174. package/dist/types/type-code.d.ts.map +0 -0
  175. package/dist/types/type.d.ts +0 -0
  176. package/dist/types/type.d.ts.map +0 -0
  177. package/dist/types/types.d.ts +0 -0
  178. package/dist/types/types.d.ts.map +0 -0
  179. package/dist/types/utilities.d.ts +3 -2
  180. package/dist/types/utilities.d.ts.map +1 -1
  181. package/dist/web/array.js +0 -0
  182. package/dist/web/array.js.map +0 -0
  183. package/dist/web/async-pool-executor.js +0 -0
  184. package/dist/web/async-pool-executor.js.map +0 -0
  185. package/dist/web/browser/form-utilities.js +7 -6
  186. package/dist/web/browser/form-utilities.js.map +1 -1
  187. package/dist/web/browser/geo-location.js +0 -0
  188. package/dist/web/browser/geo-location.js.map +0 -0
  189. package/dist/web/browser/index.js +27 -0
  190. package/dist/web/browser/index.js.map +1 -1
  191. package/dist/web/browser/native-bridge.js +0 -0
  192. package/dist/web/browser/native-bridge.js.map +0 -0
  193. package/dist/web/cancellable-promise.js +0 -0
  194. package/dist/web/cancellable-promise.js.map +0 -0
  195. package/dist/web/clean-url-search-params.js +0 -0
  196. package/dist/web/clean-url-search-params.js.map +0 -0
  197. package/dist/web/collections/cache-dictionary.js +0 -0
  198. package/dist/web/collections/cache-dictionary.js.map +0 -0
  199. package/dist/web/collections/default-map.js +0 -0
  200. package/dist/web/collections/default-map.js.map +0 -0
  201. package/dist/web/collections/default-weak-map.js +0 -0
  202. package/dist/web/collections/default-weak-map.js.map +0 -0
  203. package/dist/web/collections/index.js +0 -0
  204. package/dist/web/collections/index.js.map +0 -0
  205. package/dist/web/draft.js +150 -0
  206. package/dist/web/draft.js.map +1 -0
  207. package/dist/web/event-bus.js +0 -0
  208. package/dist/web/event-bus.js.map +0 -0
  209. package/dist/web/from.js +0 -0
  210. package/dist/web/from.js.map +0 -0
  211. package/dist/web/index.js +1 -0
  212. package/dist/web/index.js.map +1 -1
  213. package/dist/web/key-value-pair.js +0 -0
  214. package/dist/web/key-value-pair.js.map +0 -0
  215. package/dist/web/lazy.js +0 -0
  216. package/dist/web/lazy.js.map +0 -0
  217. package/dist/web/math.js +0 -0
  218. package/dist/web/math.js.map +0 -0
  219. package/dist/web/order.js +0 -0
  220. package/dist/web/order.js.map +0 -0
  221. package/dist/web/parse.js +0 -0
  222. package/dist/web/parse.js.map +0 -0
  223. package/dist/web/patch.js +0 -0
  224. package/dist/web/patch.js.map +0 -0
  225. package/dist/web/stopwatch.js +0 -0
  226. package/dist/web/stopwatch.js.map +0 -0
  227. package/dist/web/string.js +0 -0
  228. package/dist/web/string.js.map +0 -0
  229. package/dist/web/timer.js +0 -0
  230. package/dist/web/timer.js.map +0 -0
  231. package/dist/web/timespan.js +0 -0
  232. package/dist/web/timespan.js.map +0 -0
  233. package/dist/web/type-code.js +0 -0
  234. package/dist/web/type-code.js.map +0 -0
  235. package/dist/web/type.js +0 -0
  236. package/dist/web/type.js.map +0 -0
  237. package/dist/web/types.js +0 -0
  238. package/dist/web/types.js.map +0 -0
  239. package/dist/web/utilities.js +81 -32
  240. package/dist/web/utilities.js.map +1 -1
  241. package/package.json +60 -56
  242. package/src/browser/form-utilities.ts +7 -6
  243. package/src/browser/geo-location.ts +113 -113
  244. package/src/browser/index.ts +37 -0
  245. package/src/browser/native-bridge.ts +116 -116
  246. package/src/cancellable-promise.ts +76 -76
  247. package/src/collections/index.ts +2 -2
  248. package/src/draft.ts +268 -0
  249. package/src/event-bus.ts +83 -83
  250. package/src/index.ts +42 -37
  251. package/src/parse.ts +240 -240
  252. package/src/string.ts +128 -128
  253. package/src/type-code.ts +15 -15
  254. package/src/type.ts +371 -371
  255. package/src/types.ts +30 -30
  256. package/src/utilities.ts +480 -404
package/src/event-bus.ts CHANGED
@@ -1,84 +1,84 @@
1
- // event.ts
2
-
3
- export abstract class Event {
4
- readonly timestamp: Date;
5
-
6
- protected constructor() {
7
- this.timestamp = new Date();
8
- }
9
-
10
- toString(): string {
11
- return `${this.constructor.name}(${this.timestamp.toISOString()})`;
12
- }
13
- }
14
-
15
- type EventClass<T extends Event> = new (...args: any[]) => T;
16
- type Handler<T extends Event> = (event: T) => void;
17
-
18
- interface HandlerWrapper {
19
- original: Function;
20
- wrapped: (event: Event) => void;
21
- }
22
-
23
- export class EventBus {
24
- private static _instance: EventBus | null = null;
25
-
26
- static get shared(): EventBus {
27
- return this._instance ??= new EventBus();
28
- }
29
-
30
- private _handlers = new Map<Function, HandlerWrapper[]>();
31
-
32
- on<T extends Event>(type: EventClass<T>, handler: Handler<T>): void {
33
- if (!this._handlers.has(type)) {
34
- this._handlers.set(type, []);
35
- }
36
- this._handlers.get(type)!.push({
37
- original: handler,
38
- wrapped: (event: Event) => handler(event as T),
39
- });
40
- }
41
-
42
- off<T extends Event>(type: EventClass<T>, handler: Handler<T>): void {
43
- const handlers = this._handlers.get(type);
44
- if (!handlers) return;
45
-
46
- let index = handlers.findIndex((h) => h.original === handler);
47
- if (index !== -1) {
48
- handlers.splice(index, 1);
49
- }
50
- }
51
-
52
- emit<T extends Event>(event: T): void {
53
- const handlers = this._handlers.get(event.constructor);
54
- if (!handlers) return;
55
-
56
- for (const handler of [...handlers]) {
57
- try {
58
- handler.wrapped(event);
59
- } catch (e) {
60
- console.error(`[EventBus] Error en handler de ${event.constructor.name}:`, e);
61
- }
62
- }
63
- }
64
-
65
- once<T extends Event>(type: EventClass<T>, handler: Handler<T>): void {
66
- const wrapper: Handler<T> = (event: T) => {
67
- handler(event);
68
- this.off(type, wrapper);
69
- };
70
- this.on(type, wrapper);
71
- }
72
-
73
- clear<T extends Event>(type: EventClass<T>): void {
74
- this._handlers.delete(type);
75
- }
76
-
77
- clearAll(): void {
78
- this._handlers.clear();
79
- }
80
-
81
- hasListeners<T extends Event>(type: EventClass<T>): boolean {
82
- return (this._handlers.get(type)?.length ?? 0) > 0;
83
- }
1
+ // event.ts
2
+
3
+ export abstract class Event {
4
+ readonly timestamp: Date;
5
+
6
+ protected constructor() {
7
+ this.timestamp = new Date();
8
+ }
9
+
10
+ toString(): string {
11
+ return `${this.constructor.name}(${this.timestamp.toISOString()})`;
12
+ }
13
+ }
14
+
15
+ type EventClass<T extends Event> = new (...args: any[]) => T;
16
+ type Handler<T extends Event> = (event: T) => void;
17
+
18
+ interface HandlerWrapper {
19
+ original: Function;
20
+ wrapped: (event: Event) => void;
21
+ }
22
+
23
+ export class EventBus {
24
+ private static _instance: EventBus | null = null;
25
+
26
+ static get shared(): EventBus {
27
+ return this._instance ??= new EventBus();
28
+ }
29
+
30
+ private _handlers = new Map<Function, HandlerWrapper[]>();
31
+
32
+ on<T extends Event>(type: EventClass<T>, handler: Handler<T>): void {
33
+ if (!this._handlers.has(type)) {
34
+ this._handlers.set(type, []);
35
+ }
36
+ this._handlers.get(type)!.push({
37
+ original: handler,
38
+ wrapped: (event: Event) => handler(event as T),
39
+ });
40
+ }
41
+
42
+ off<T extends Event>(type: EventClass<T>, handler: Handler<T>): void {
43
+ const handlers = this._handlers.get(type);
44
+ if (!handlers) return;
45
+
46
+ let index = handlers.findIndex((h) => h.original === handler);
47
+ if (index !== -1) {
48
+ handlers.splice(index, 1);
49
+ }
50
+ }
51
+
52
+ emit<T extends Event>(event: T): void {
53
+ const handlers = this._handlers.get(event.constructor);
54
+ if (!handlers) return;
55
+
56
+ for (const handler of [...handlers]) {
57
+ try {
58
+ handler.wrapped(event);
59
+ } catch (e) {
60
+ console.error(`[EventBus] Error en handler de ${event.constructor.name}:`, e);
61
+ }
62
+ }
63
+ }
64
+
65
+ once<T extends Event>(type: EventClass<T>, handler: Handler<T>): void {
66
+ const wrapper: Handler<T> = (event: T) => {
67
+ handler(event);
68
+ this.off(type, wrapper);
69
+ };
70
+ this.on(type, wrapper);
71
+ }
72
+
73
+ clear<T extends Event>(type: EventClass<T>): void {
74
+ this._handlers.delete(type);
75
+ }
76
+
77
+ clearAll(): void {
78
+ this._handlers.clear();
79
+ }
80
+
81
+ hasListeners<T extends Event>(type: EventClass<T>): boolean {
82
+ return (this._handlers.get(type)?.length ?? 0) > 0;
83
+ }
84
84
  }
package/src/index.ts CHANGED
@@ -1,38 +1,43 @@
1
- // src/index.ts
2
-
3
- // ─── Types ───────────────────────────────────────────
4
- export * from './types.js';
5
- export {default as Type} from './type.js';
6
- export {default as TypeCode} from './type-code.js';
7
-
8
- // ─── Utilities ───────────────────────────────────────
9
- export * from './utilities.js';
10
- export * from './string.js';
11
- export * from './math.js';
12
- export {default as CancellablePromise} from "./cancellable-promise.js";
13
-
14
- // ─── Data Structures ────────────────────────────────
15
- export {default as KeyValuePair} from './key-value-pair.js';
16
- export {default as Order} from './order.js';
17
-
18
- // ─── Async & Timing ─────────────────────────────────
19
- export {default as Timer} from './timer.js';
20
- export {default as TimeSpan} from './timespan.js';
21
- export {default as Stopwatch} from './stopwatch.js';
22
- export {default as AsyncPoolExecutor} from './async-pool-executor.js';
23
-
24
- // ─── Patterns ────────────────────────────────────────
25
- export {default as Lazy} from './lazy.js';
26
- export {default as from, From} from './from.js';
27
- export {EventBus, Event} from './event-bus.js';
28
-
29
- // ─── Web ─────────────────────────────────────────────
30
- export {default as CleanURLSearchParams} from './clean-url-search-params.js';
31
- /** @deprecated */
32
- export {ajaxSubmit, ajaxSubmission, submitForm, formToObject} from './browser/index.js';
33
-
34
- // ─── Deprecated ──────────────────────────────────────
35
- /** @deprecated */
36
- export * from './array.js';
37
- /** @deprecated */
1
+ // src/index.ts
2
+
3
+ // ─── Types ───────────────────────────────────────────
4
+ export * from './types.js';
5
+ export {default as Type} from './type.js';
6
+ export {default as TypeCode} from './type-code.js';
7
+
8
+ // ─── Utilities ───────────────────────────────────────
9
+ export * from './utilities.js';
10
+ export * from './string.js';
11
+ export * from './math.js';
12
+ export {default as CancellablePromise} from "./cancellable-promise.js";
13
+
14
+ // ─── Data Structures ────────────────────────────────
15
+ export {default as KeyValuePair} from './key-value-pair.js';
16
+ export {default as Order} from './order.js';
17
+
18
+ // ─── Async & Timing ─────────────────────────────────
19
+ export {default as Timer} from './timer.js';
20
+ export {default as TimeSpan} from './timespan.js';
21
+ export {default as Stopwatch} from './stopwatch.js';
22
+ export {default as AsyncPoolExecutor} from './async-pool-executor.js';
23
+
24
+ // ─── Patterns ────────────────────────────────────────
25
+ export {default as Lazy} from './lazy.js';
26
+ export {default as from, From} from './from.js';
27
+ export {EventBus, Event} from './event-bus.js';
28
+
29
+ // ─── Draft ────────────────────────────────────────
30
+ export {default as draft} from './draft.js';
31
+
32
+ // ─── Web ─────────────────────────────────────────────
33
+ export {default as CleanURLSearchParams} from './clean-url-search-params.js';
34
+ /** @deprecated */
35
+ export {ajaxSubmit, ajaxSubmission, submitForm, formToObject} from './browser/index.js';
36
+
37
+
38
+
39
+ // ─── Deprecated ──────────────────────────────────────
40
+ /** @deprecated */
41
+ export * from './array.js';
42
+ /** @deprecated */
38
43
  export * from './collections/index.js';