@simplysm/core-common 13.0.100 → 14.0.4

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 (184) hide show
  1. package/README.md +86 -92
  2. package/dist/common.types.d.ts +14 -14
  3. package/dist/common.types.js +2 -1
  4. package/dist/common.types.js.map +1 -6
  5. package/dist/env.d.ts +8 -1
  6. package/dist/env.d.ts.map +1 -1
  7. package/dist/env.js +13 -9
  8. package/dist/env.js.map +1 -6
  9. package/dist/errors/argument-error.d.ts +10 -10
  10. package/dist/errors/argument-error.d.ts.map +1 -1
  11. package/dist/errors/argument-error.js +31 -14
  12. package/dist/errors/argument-error.js.map +1 -6
  13. package/dist/errors/not-implemented-error.d.ts +8 -8
  14. package/dist/errors/not-implemented-error.js +30 -12
  15. package/dist/errors/not-implemented-error.js.map +1 -6
  16. package/dist/errors/sd-error.d.ts +10 -10
  17. package/dist/errors/sd-error.d.ts.map +1 -1
  18. package/dist/errors/sd-error.js +45 -24
  19. package/dist/errors/sd-error.js.map +1 -6
  20. package/dist/errors/timeout-error.d.ts +10 -10
  21. package/dist/errors/timeout-error.js +34 -15
  22. package/dist/errors/timeout-error.js.map +1 -6
  23. package/dist/extensions/arr-ext.d.ts +2 -2
  24. package/dist/extensions/arr-ext.helpers.d.ts +10 -10
  25. package/dist/extensions/arr-ext.helpers.js +112 -89
  26. package/dist/extensions/arr-ext.helpers.js.map +1 -6
  27. package/dist/extensions/arr-ext.js +458 -422
  28. package/dist/extensions/arr-ext.js.map +1 -6
  29. package/dist/extensions/arr-ext.types.d.ts +57 -57
  30. package/dist/extensions/arr-ext.types.d.ts.map +1 -1
  31. package/dist/extensions/arr-ext.types.js +6 -1
  32. package/dist/extensions/arr-ext.types.js.map +1 -6
  33. package/dist/extensions/map-ext.d.ts +16 -16
  34. package/dist/extensions/map-ext.js +27 -22
  35. package/dist/extensions/map-ext.js.map +1 -6
  36. package/dist/extensions/set-ext.d.ts +11 -11
  37. package/dist/extensions/set-ext.js +32 -25
  38. package/dist/extensions/set-ext.js.map +1 -6
  39. package/dist/features/debounce-queue.d.ts +17 -17
  40. package/dist/features/debounce-queue.js +98 -70
  41. package/dist/features/debounce-queue.js.map +1 -6
  42. package/dist/features/event-emitter.d.ts +20 -20
  43. package/dist/features/event-emitter.js +101 -78
  44. package/dist/features/event-emitter.js.map +1 -6
  45. package/dist/features/serial-queue.d.ts +11 -11
  46. package/dist/features/serial-queue.js +78 -57
  47. package/dist/features/serial-queue.js.map +1 -6
  48. package/dist/globals.d.ts +4 -4
  49. package/dist/globals.js +9 -1
  50. package/dist/globals.js.map +1 -6
  51. package/dist/index.js +28 -27
  52. package/dist/index.js.map +1 -6
  53. package/dist/types/date-only.d.ts +64 -64
  54. package/dist/types/date-only.d.ts.map +1 -1
  55. package/dist/types/date-only.js +263 -252
  56. package/dist/types/date-only.js.map +1 -6
  57. package/dist/types/date-time.d.ts +36 -36
  58. package/dist/types/date-time.d.ts.map +1 -1
  59. package/dist/types/date-time.js +196 -288
  60. package/dist/types/date-time.js.map +1 -6
  61. package/dist/types/lazy-gc-map.d.ts +26 -26
  62. package/dist/types/lazy-gc-map.d.ts.map +1 -1
  63. package/dist/types/lazy-gc-map.js +202 -159
  64. package/dist/types/lazy-gc-map.js.map +1 -6
  65. package/dist/types/time.d.ts +23 -23
  66. package/dist/types/time.d.ts.map +1 -1
  67. package/dist/types/time.js +169 -158
  68. package/dist/types/time.js.map +1 -6
  69. package/dist/types/uuid.d.ts +11 -11
  70. package/dist/types/uuid.d.ts.map +1 -1
  71. package/dist/types/uuid.js +95 -70
  72. package/dist/types/uuid.js.map +1 -6
  73. package/dist/utils/bytes.d.ts +17 -17
  74. package/dist/utils/bytes.js +137 -81
  75. package/dist/utils/bytes.js.map +1 -6
  76. package/dist/utils/date-format.d.ts +40 -40
  77. package/dist/utils/date-format.js +187 -101
  78. package/dist/utils/date-format.js.map +1 -6
  79. package/dist/utils/error.d.ts +4 -4
  80. package/dist/utils/error.js +11 -6
  81. package/dist/utils/error.js.map +1 -6
  82. package/dist/utils/json.d.ts +19 -19
  83. package/dist/utils/json.js +187 -135
  84. package/dist/utils/json.js.map +1 -6
  85. package/dist/utils/num.d.ts +20 -20
  86. package/dist/utils/num.js +76 -34
  87. package/dist/utils/num.js.map +1 -6
  88. package/dist/utils/obj.d.ts +111 -111
  89. package/dist/utils/obj.d.ts.map +1 -1
  90. package/dist/utils/obj.js +706 -496
  91. package/dist/utils/obj.js.map +1 -6
  92. package/dist/utils/path.d.ts +10 -10
  93. package/dist/utils/path.js +35 -18
  94. package/dist/utils/path.js.map +1 -6
  95. package/dist/utils/primitive.d.ts +5 -5
  96. package/dist/utils/primitive.js +34 -14
  97. package/dist/utils/primitive.js.map +1 -6
  98. package/dist/utils/str.d.ts +38 -38
  99. package/dist/utils/str.js +217 -113
  100. package/dist/utils/str.js.map +1 -6
  101. package/dist/utils/template-strings.d.ts +26 -26
  102. package/dist/utils/template-strings.js +113 -40
  103. package/dist/utils/template-strings.js.map +1 -6
  104. package/dist/utils/transferable.d.ts +18 -18
  105. package/dist/utils/transferable.js +218 -151
  106. package/dist/utils/transferable.js.map +1 -6
  107. package/dist/utils/wait.d.ts +9 -9
  108. package/dist/utils/wait.js +30 -15
  109. package/dist/utils/wait.js.map +1 -6
  110. package/dist/utils/xml.d.ts +13 -13
  111. package/dist/utils/xml.js +84 -46
  112. package/dist/utils/xml.js.map +1 -6
  113. package/dist/utils/zip.d.ts +22 -22
  114. package/dist/utils/zip.js +172 -148
  115. package/dist/utils/zip.js.map +1 -6
  116. package/docs/array-extensions.md +430 -0
  117. package/docs/env.md +52 -0
  118. package/docs/errors.md +41 -56
  119. package/docs/features.md +82 -97
  120. package/docs/type-utilities.md +91 -0
  121. package/docs/types.md +221 -201
  122. package/docs/utils.md +319 -435
  123. package/package.json +7 -5
  124. package/src/common.types.ts +14 -14
  125. package/src/env.ts +12 -3
  126. package/src/errors/argument-error.ts +15 -15
  127. package/src/errors/not-implemented-error.ts +9 -9
  128. package/src/errors/sd-error.ts +12 -12
  129. package/src/errors/timeout-error.ts +12 -12
  130. package/src/extensions/arr-ext.helpers.ts +16 -16
  131. package/src/extensions/arr-ext.ts +35 -35
  132. package/src/extensions/arr-ext.types.ts +57 -57
  133. package/src/extensions/map-ext.ts +16 -16
  134. package/src/extensions/set-ext.ts +11 -11
  135. package/src/features/debounce-queue.ts +23 -23
  136. package/src/features/event-emitter.ts +25 -25
  137. package/src/features/serial-queue.ts +13 -13
  138. package/src/globals.ts +4 -4
  139. package/src/index.ts +5 -5
  140. package/src/types/date-only.ts +84 -83
  141. package/src/types/date-time.ts +43 -42
  142. package/src/types/lazy-gc-map.ts +44 -44
  143. package/src/types/time.ts +29 -29
  144. package/src/types/uuid.ts +15 -15
  145. package/src/utils/bytes.ts +35 -35
  146. package/src/utils/date-format.ts +59 -59
  147. package/src/utils/error.ts +4 -4
  148. package/src/utils/json.ts +41 -41
  149. package/src/utils/num.ts +20 -20
  150. package/src/utils/obj.ts +138 -138
  151. package/src/utils/path.ts +10 -10
  152. package/src/utils/primitive.ts +6 -6
  153. package/src/utils/str.ts +48 -48
  154. package/src/utils/template-strings.ts +29 -29
  155. package/src/utils/transferable.ts +38 -38
  156. package/src/utils/wait.ts +10 -10
  157. package/src/utils/xml.ts +19 -19
  158. package/src/utils/zip.ts +25 -25
  159. package/docs/extensions.md +0 -387
  160. package/tests/errors/errors.spec.ts +0 -80
  161. package/tests/extensions/array-extension.spec.ts +0 -654
  162. package/tests/extensions/map-extension.spec.ts +0 -117
  163. package/tests/extensions/set-extension.spec.ts +0 -67
  164. package/tests/types/date-only.spec.ts +0 -533
  165. package/tests/types/date-time.spec.ts +0 -246
  166. package/tests/types/lazy-gc-map.spec.ts +0 -606
  167. package/tests/types/time.spec.ts +0 -428
  168. package/tests/types/uuid.spec.ts +0 -74
  169. package/tests/utils/bytes-utils.spec.ts +0 -197
  170. package/tests/utils/date-format.spec.ts +0 -350
  171. package/tests/utils/debounce-queue.spec.ts +0 -226
  172. package/tests/utils/json.spec.ts +0 -400
  173. package/tests/utils/number.spec.ts +0 -136
  174. package/tests/utils/object.spec.ts +0 -810
  175. package/tests/utils/path.spec.ts +0 -70
  176. package/tests/utils/primitive.spec.ts +0 -43
  177. package/tests/utils/sd-event-emitter.spec.ts +0 -189
  178. package/tests/utils/serial-queue.spec.ts +0 -305
  179. package/tests/utils/string.spec.ts +0 -265
  180. package/tests/utils/template-strings.spec.ts +0 -48
  181. package/tests/utils/transferable.spec.ts +0 -639
  182. package/tests/utils/wait.spec.ts +0 -123
  183. package/tests/utils/xml.spec.ts +0 -146
  184. package/tests/utils/zip.spec.ts +0 -221
@@ -1,117 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import "../../src/extensions/map-ext";
3
-
4
- describe("Map prototype extensions", () => {
5
- //#region getOrCreate
6
-
7
- describe("getOrCreate()", () => {
8
- it("Sets and returns value directly if key not exists", () => {
9
- const map = new Map<string, number>();
10
-
11
- const result = map.getOrCreate("key", 100);
12
-
13
- expect(result).toBe(100);
14
- expect(map.get("key")).toBe(100);
15
- expect(map.size).toBe(1);
16
- });
17
-
18
- it("Calls factory function and sets value if key not exists", () => {
19
- const map = new Map<string, number[]>();
20
- let factoryCalled = false;
21
-
22
- const result = map.getOrCreate("key", () => {
23
- factoryCalled = true;
24
- return [1, 2, 3];
25
- });
26
-
27
- expect(factoryCalled).toBe(true);
28
- expect(result).toEqual([1, 2, 3]);
29
- expect(map.get("key")).toEqual([1, 2, 3]);
30
- });
31
-
32
- it("Returns existing value if key exists, factory not called", () => {
33
- const map = new Map<string, number>();
34
- map.set("key", 50);
35
- let factoryCalled = false;
36
-
37
- const result = map.getOrCreate("key", () => {
38
- factoryCalled = true;
39
- return 100;
40
- });
41
-
42
- expect(factoryCalled).toBe(false);
43
- expect(result).toBe(50);
44
- expect(map.get("key")).toBe(50);
45
- });
46
-
47
- it("Can set empty array as default value", () => {
48
- const map = new Map<string, number[]>();
49
-
50
- const arr = map.getOrCreate("key", []);
51
- arr.push(1, 2, 3);
52
-
53
- expect(map.get("key")).toEqual([1, 2, 3]);
54
- });
55
-
56
- it("Can create complex object with factory function", () => {
57
- const map = new Map<string, { count: number; items: string[] }>();
58
-
59
- const obj = map.getOrCreate("key", () => ({ count: 0, items: [] }));
60
- obj.count++;
61
- obj.items.push("item1");
62
-
63
- expect(map.get("key")).toEqual({ count: 1, items: ["item1"] });
64
- });
65
-
66
- it("Wraps function value in factory when V type is function", () => {
67
- const map = new Map<string, () => number>();
68
- const fn = () => 42;
69
-
70
- // Function value must be wrapped in factory to store
71
- const result = map.getOrCreate("key", () => fn);
72
-
73
- expect(result).toBe(fn);
74
- expect(result()).toBe(42);
75
- expect(map.get("key")).toBe(fn);
76
- });
77
- });
78
-
79
- //#endregion
80
-
81
- //#region update
82
-
83
- describe("update()", () => {
84
- it("Updates value of existing key", () => {
85
- const map = new Map<string, number>();
86
- map.set("key", 10);
87
-
88
- map.update("key", (v) => (v ?? 0) + 5);
89
-
90
- expect(map.get("key")).toBe(15);
91
- });
92
-
93
- it("Passes undefined for non-existing key", () => {
94
- const map = new Map<string, number>();
95
- let receivedValue: number | undefined;
96
-
97
- map.update("key", (v) => {
98
- receivedValue = v;
99
- return 100;
100
- });
101
-
102
- expect(receivedValue).toBeUndefined();
103
- expect(map.get("key")).toBe(100);
104
- });
105
-
106
- it("Replaces value with callback return value", () => {
107
- const map = new Map<string, string>();
108
- map.set("key", "hello");
109
-
110
- map.update("key", (v) => (v ?? "") + " world");
111
-
112
- expect(map.get("key")).toBe("hello world");
113
- });
114
- });
115
-
116
- //#endregion
117
- });
@@ -1,67 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import "../../src/extensions/set-ext";
3
-
4
- describe("Set prototype extensions", () => {
5
- //#region adds
6
-
7
- describe("adds()", () => {
8
- it("Adds multiple items at once", () => {
9
- const set = new Set([1, 2, 3]);
10
- const result = set.adds(4, 5, 6);
11
-
12
- expect(result).toBe(set); // returns original
13
- expect(set.size).toBe(6);
14
- expect(set.has(4)).toBe(true);
15
- expect(set.has(5)).toBe(true);
16
- expect(set.has(6)).toBe(true);
17
- });
18
-
19
- it("Automatically removes duplicate items", () => {
20
- const set = new Set([1, 2, 3]);
21
- set.adds(2, 3, 4);
22
-
23
- expect(set.size).toBe(4); // 1, 2, 3, 4
24
- });
25
- });
26
-
27
- //#endregion
28
-
29
- //#region toggle
30
-
31
- describe("toggle()", () => {
32
- it("Adds item if not exists", () => {
33
- const set = new Set([1, 2, 3]);
34
- const result = set.toggle(4);
35
-
36
- expect(result).toBe(set); // returns original
37
- expect(set.has(4)).toBe(true);
38
- expect(set.size).toBe(4);
39
- });
40
-
41
- it("Removes item if exists", () => {
42
- const set = new Set([1, 2, 3]);
43
- set.toggle(2);
44
-
45
- expect(set.has(2)).toBe(false);
46
- expect(set.size).toBe(2);
47
- });
48
-
49
- it("Force adds with addOrDel='add'", () => {
50
- const set = new Set([1, 2, 3]);
51
- set.toggle(2, "add"); // already exists but add option
52
-
53
- expect(set.has(2)).toBe(true);
54
- expect(set.size).toBe(3); // unchanged
55
- });
56
-
57
- it("Force removes with addOrDel='del'", () => {
58
- const set = new Set([1, 2, 3]);
59
- set.toggle(4, "del"); // not exists but del option
60
-
61
- expect(set.has(4)).toBe(false);
62
- expect(set.size).toBe(3); // unchanged
63
- });
64
- });
65
-
66
- //#endregion
67
- });