@evolu/common 8.6.2 → 8.8.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 (303) hide show
  1. package/dist/src/Array.d.ts +21 -21
  2. package/dist/src/Array.js +5 -5
  3. package/dist/src/Assert.d.ts +478 -141
  4. package/dist/src/Assert.d.ts.map +1 -1
  5. package/dist/src/Assert.js +644 -99
  6. package/dist/src/Binary.d.ts +254 -0
  7. package/dist/src/Binary.d.ts.map +1 -0
  8. package/dist/src/Binary.js +958 -0
  9. package/dist/src/Console.d.ts +2 -10
  10. package/dist/src/Console.d.ts.map +1 -1
  11. package/dist/src/Console.js +6 -12
  12. package/dist/src/Crypto.d.ts +5 -5
  13. package/dist/src/Crypto.js +1 -1
  14. package/dist/src/Eq.d.ts +35 -40
  15. package/dist/src/Eq.d.ts.map +1 -1
  16. package/dist/src/Eq.js +51 -87
  17. package/dist/src/Function.d.ts +9 -14
  18. package/dist/src/Function.d.ts.map +1 -1
  19. package/dist/src/Function.js +7 -9
  20. package/dist/src/Http.d.ts +6 -7
  21. package/dist/src/Http.d.ts.map +1 -1
  22. package/dist/src/LeakDetector.d.ts.map +1 -1
  23. package/dist/src/LeakDetector.js +1 -0
  24. package/dist/src/LockManager.d.ts +1 -1
  25. package/dist/src/LockManager.js +1 -1
  26. package/dist/src/Lookup.d.ts +3 -2
  27. package/dist/src/Lookup.d.ts.map +1 -1
  28. package/dist/src/Lookup.js +4 -3
  29. package/dist/src/Number.d.ts +1 -1
  30. package/dist/src/Number.d.ts.map +1 -1
  31. package/dist/src/Number.js +1 -1
  32. package/dist/src/Object.d.ts +4 -4
  33. package/dist/src/Object.d.ts.map +1 -1
  34. package/dist/src/Object.js +5 -4
  35. package/dist/src/Option.d.ts +1 -2
  36. package/dist/src/Option.d.ts.map +1 -1
  37. package/dist/src/Option.js +1 -2
  38. package/dist/src/Platform.js +2 -0
  39. package/dist/src/Polyfills.js +4 -1
  40. package/dist/src/Random.d.ts +1 -1
  41. package/dist/src/Result.d.ts +49 -54
  42. package/dist/src/Result.d.ts.map +1 -1
  43. package/dist/src/Result.js +17 -22
  44. package/dist/src/Set.d.ts +6 -6
  45. package/dist/src/Set.js +2 -2
  46. package/dist/src/Sqlite.js +1 -1
  47. package/dist/src/String.js +3 -2
  48. package/dist/src/Task.d.ts +32 -32
  49. package/dist/src/Task.d.ts.map +1 -1
  50. package/dist/src/Task.js +20 -22
  51. package/dist/src/Test.d.ts +31 -3
  52. package/dist/src/Test.d.ts.map +1 -1
  53. package/dist/src/Test.js +46 -3
  54. package/dist/src/Time.d.ts +3 -11
  55. package/dist/src/Time.d.ts.map +1 -1
  56. package/dist/src/Time.js +10 -18
  57. package/dist/src/Type.d.ts +87 -85
  58. package/dist/src/Type.d.ts.map +1 -1
  59. package/dist/src/Type.js +70 -63
  60. package/dist/src/Types.d.ts +12 -12
  61. package/dist/src/Types.js +1 -1
  62. package/dist/src/WebSocket.d.ts +4 -7
  63. package/dist/src/WebSocket.d.ts.map +1 -1
  64. package/dist/src/Worker.d.ts +1 -1
  65. package/dist/src/Worker.js +7 -7
  66. package/dist/src/index.d.ts +1 -1
  67. package/dist/src/index.js +1 -1
  68. package/dist/src/intl/_en.d.ts.map +1 -1
  69. package/dist/src/intl/_en.js +1 -1
  70. package/dist/src/intl/ar.d.ts.map +1 -1
  71. package/dist/src/intl/ar.js +1 -1
  72. package/dist/src/intl/bn.d.ts.map +1 -1
  73. package/dist/src/intl/bn.js +1 -1
  74. package/dist/src/intl/ca.d.ts.map +1 -1
  75. package/dist/src/intl/ca.js +1 -1
  76. package/dist/src/intl/cs.d.ts.map +1 -1
  77. package/dist/src/intl/cs.js +1 -1
  78. package/dist/src/intl/da.d.ts.map +1 -1
  79. package/dist/src/intl/da.js +1 -1
  80. package/dist/src/intl/de.d.ts.map +1 -1
  81. package/dist/src/intl/de.js +1 -1
  82. package/dist/src/intl/el.d.ts.map +1 -1
  83. package/dist/src/intl/el.js +1 -1
  84. package/dist/src/intl/es.d.ts.map +1 -1
  85. package/dist/src/intl/es.js +1 -1
  86. package/dist/src/intl/fa.d.ts.map +1 -1
  87. package/dist/src/intl/fa.js +1 -1
  88. package/dist/src/intl/fi.d.ts.map +1 -1
  89. package/dist/src/intl/fi.js +1 -1
  90. package/dist/src/intl/fil.d.ts.map +1 -1
  91. package/dist/src/intl/fil.js +1 -1
  92. package/dist/src/intl/fr.d.ts.map +1 -1
  93. package/dist/src/intl/fr.js +1 -1
  94. package/dist/src/intl/he.d.ts.map +1 -1
  95. package/dist/src/intl/he.js +1 -1
  96. package/dist/src/intl/hi.d.ts.map +1 -1
  97. package/dist/src/intl/hi.js +1 -1
  98. package/dist/src/intl/hr.d.ts.map +1 -1
  99. package/dist/src/intl/hr.js +1 -1
  100. package/dist/src/intl/hu.d.ts.map +1 -1
  101. package/dist/src/intl/hu.js +1 -1
  102. package/dist/src/intl/id.d.ts.map +1 -1
  103. package/dist/src/intl/id.js +1 -1
  104. package/dist/src/intl/it.d.ts.map +1 -1
  105. package/dist/src/intl/it.js +1 -1
  106. package/dist/src/intl/ja.d.ts.map +1 -1
  107. package/dist/src/intl/ja.js +1 -1
  108. package/dist/src/intl/ko.d.ts.map +1 -1
  109. package/dist/src/intl/ko.js +1 -1
  110. package/dist/src/intl/ml.d.ts.map +1 -1
  111. package/dist/src/intl/ml.js +1 -1
  112. package/dist/src/intl/mr.d.ts.map +1 -1
  113. package/dist/src/intl/mr.js +1 -1
  114. package/dist/src/intl/ms.d.ts.map +1 -1
  115. package/dist/src/intl/ms.js +1 -1
  116. package/dist/src/intl/nb.d.ts.map +1 -1
  117. package/dist/src/intl/nb.js +1 -1
  118. package/dist/src/intl/nl.d.ts.map +1 -1
  119. package/dist/src/intl/nl.js +1 -1
  120. package/dist/src/intl/pa.d.ts.map +1 -1
  121. package/dist/src/intl/pa.js +1 -1
  122. package/dist/src/intl/pl.d.ts.map +1 -1
  123. package/dist/src/intl/pl.js +1 -1
  124. package/dist/src/intl/pt-BR.d.ts.map +1 -1
  125. package/dist/src/intl/pt-BR.js +1 -1
  126. package/dist/src/intl/pt.d.ts.map +1 -1
  127. package/dist/src/intl/pt.js +1 -1
  128. package/dist/src/intl/ro.d.ts.map +1 -1
  129. package/dist/src/intl/ro.js +1 -1
  130. package/dist/src/intl/sk.d.ts.map +1 -1
  131. package/dist/src/intl/sk.js +1 -1
  132. package/dist/src/intl/sl.d.ts.map +1 -1
  133. package/dist/src/intl/sl.js +1 -1
  134. package/dist/src/intl/sv.d.ts.map +1 -1
  135. package/dist/src/intl/sv.js +1 -1
  136. package/dist/src/intl/sw.d.ts.map +1 -1
  137. package/dist/src/intl/sw.js +1 -1
  138. package/dist/src/intl/ta.d.ts.map +1 -1
  139. package/dist/src/intl/ta.js +1 -1
  140. package/dist/src/intl/te.d.ts.map +1 -1
  141. package/dist/src/intl/te.js +1 -1
  142. package/dist/src/intl/th.d.ts.map +1 -1
  143. package/dist/src/intl/th.js +1 -1
  144. package/dist/src/intl/tr.d.ts.map +1 -1
  145. package/dist/src/intl/tr.js +1 -1
  146. package/dist/src/intl/uk.d.ts.map +1 -1
  147. package/dist/src/intl/uk.js +1 -1
  148. package/dist/src/intl/ur.d.ts.map +1 -1
  149. package/dist/src/intl/ur.js +1 -1
  150. package/dist/src/intl/vi.d.ts.map +1 -1
  151. package/dist/src/intl/vi.js +1 -1
  152. package/dist/src/intl/zh-CN.d.ts.map +1 -1
  153. package/dist/src/intl/zh-CN.js +1 -1
  154. package/dist/src/intl/zh-TW.d.ts.map +1 -1
  155. package/dist/src/intl/zh-TW.js +1 -1
  156. package/dist/src/local-first/Evolu.d.ts +12 -12
  157. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  158. package/dist/src/local-first/Evolu.js +2 -2
  159. package/dist/src/local-first/Protocol.d.ts +28 -76
  160. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  161. package/dist/src/local-first/Protocol.js +45 -229
  162. package/dist/src/local-first/Query.d.ts +11 -11
  163. package/dist/src/local-first/Query.js +6 -6
  164. package/dist/src/local-first/Relay.d.ts +2 -2
  165. package/dist/src/local-first/Schema.d.ts +3 -5
  166. package/dist/src/local-first/Schema.d.ts.map +1 -1
  167. package/dist/src/local-first/Schema.js +2 -4
  168. package/dist/src/local-first/Shared.d.ts.map +1 -1
  169. package/dist/src/local-first/Shared.js +5 -5
  170. package/dist/src/local-first/Storage.js +4 -4
  171. package/dist/src/local-first/Timestamp.d.ts +9 -0
  172. package/dist/src/local-first/Timestamp.d.ts.map +1 -1
  173. package/dist/src/local-first/Timestamp.js +13 -10
  174. package/package.json +7 -5
  175. package/src/Array.test.ts +809 -0
  176. package/src/Array.ts +21 -21
  177. package/src/Assert.test.ts +1181 -0
  178. package/src/Assert.ts +971 -227
  179. package/src/BigInt.test.ts +28 -0
  180. package/src/Binary.test.ts +1128 -0
  181. package/src/Binary.ts +1377 -0
  182. package/src/Brand.test.ts +90 -0
  183. package/src/Cache.test.ts +183 -0
  184. package/src/Callbacks.test.ts +66 -0
  185. package/src/Console.test.ts +809 -0
  186. package/src/Console.ts +9 -17
  187. package/src/Crypto.test.ts +138 -0
  188. package/src/Crypto.ts +5 -5
  189. package/src/Eq.test.ts +333 -0
  190. package/src/Eq.ts +110 -176
  191. package/src/Error.test.ts +118 -0
  192. package/src/Function.test.ts +204 -0
  193. package/src/Function.ts +10 -15
  194. package/src/Http.test.ts +816 -0
  195. package/src/Http.ts +6 -7
  196. package/src/LeakDetector.test.ts +210 -0
  197. package/src/LeakDetector.ts +1 -0
  198. package/src/LockManager.ts +2 -2
  199. package/src/Lookup.test.ts +418 -0
  200. package/src/Lookup.ts +4 -3
  201. package/src/Microtask.test.ts +140 -0
  202. package/src/Number.test.ts +218 -0
  203. package/src/Number.ts +2 -2
  204. package/src/Object.test.ts +293 -0
  205. package/src/Object.ts +5 -4
  206. package/src/Option.test.ts +104 -0
  207. package/src/Option.ts +1 -2
  208. package/src/Order.test.ts +56 -0
  209. package/src/Platform.ts +2 -0
  210. package/src/Polyfills.ts +3 -4
  211. package/src/Random.test.ts +89 -0
  212. package/src/Random.ts +1 -1
  213. package/src/Ref.test.ts +139 -0
  214. package/src/RefCount.test.ts +184 -0
  215. package/src/Relation.test.ts +505 -0
  216. package/src/Resource.test.ts +4623 -0
  217. package/src/Result.test.ts +1829 -0
  218. package/src/Result.ts +49 -54
  219. package/src/Schedule.test.ts +1554 -0
  220. package/src/Set.test.ts +279 -0
  221. package/src/Set.ts +6 -6
  222. package/src/Sqlite.ts +1 -1
  223. package/src/Store.test.ts +288 -0
  224. package/src/String.test.ts +54 -0
  225. package/src/String.ts +3 -3
  226. package/src/Task.test.ts +10820 -0
  227. package/src/Task.ts +38 -43
  228. package/src/Test.test.ts +88 -0
  229. package/src/Test.ts +49 -3
  230. package/src/Time.test.ts +926 -0
  231. package/src/Time.ts +13 -21
  232. package/src/Type.base64.test.ts +88 -0
  233. package/src/Type.test.ts +20465 -0
  234. package/src/Type.ts +114 -111
  235. package/src/Types.test.ts +324 -0
  236. package/src/Types.ts +13 -13
  237. package/src/WebSocket.ts +4 -7
  238. package/src/Worker.test.ts +755 -0
  239. package/src/Worker.ts +13 -18
  240. package/src/index.ts +1 -1
  241. package/src/intl/_en.ts +1 -1
  242. package/src/intl/ar.ts +1 -1
  243. package/src/intl/bn.ts +1 -1
  244. package/src/intl/ca.ts +1 -1
  245. package/src/intl/cs.ts +1 -1
  246. package/src/intl/da.ts +1 -1
  247. package/src/intl/de.ts +1 -1
  248. package/src/intl/el.ts +1 -1
  249. package/src/intl/es.ts +1 -1
  250. package/src/intl/fa.ts +1 -1
  251. package/src/intl/fi.ts +1 -1
  252. package/src/intl/fil.ts +1 -1
  253. package/src/intl/fr.ts +1 -1
  254. package/src/intl/he.ts +1 -1
  255. package/src/intl/hi.ts +1 -1
  256. package/src/intl/hr.ts +1 -1
  257. package/src/intl/hu.ts +1 -1
  258. package/src/intl/id.ts +1 -1
  259. package/src/intl/intl.test.ts +3106 -0
  260. package/src/intl/it.ts +1 -1
  261. package/src/intl/ja.ts +1 -1
  262. package/src/intl/ko.ts +1 -1
  263. package/src/intl/ml.ts +1 -1
  264. package/src/intl/mr.ts +1 -1
  265. package/src/intl/ms.ts +1 -1
  266. package/src/intl/nb.ts +1 -1
  267. package/src/intl/nl.ts +1 -1
  268. package/src/intl/pa.ts +1 -1
  269. package/src/intl/pl.ts +1 -1
  270. package/src/intl/pt-BR.ts +1 -1
  271. package/src/intl/pt.ts +1 -1
  272. package/src/intl/ro.ts +1 -1
  273. package/src/intl/sk.ts +1 -1
  274. package/src/intl/sl.ts +1 -1
  275. package/src/intl/sv.ts +1 -1
  276. package/src/intl/sw.ts +1 -1
  277. package/src/intl/ta.ts +1 -1
  278. package/src/intl/te.ts +1 -1
  279. package/src/intl/th.ts +1 -1
  280. package/src/intl/tr.ts +1 -1
  281. package/src/intl/uk.ts +1 -1
  282. package/src/intl/ur.ts +1 -1
  283. package/src/intl/vi.ts +1 -1
  284. package/src/intl/zh-CN.ts +1 -1
  285. package/src/intl/zh-TW.ts +1 -1
  286. package/src/local-first/Evolu.test.ts +1921 -0
  287. package/src/local-first/Evolu.ts +18 -14
  288. package/src/local-first/Owner.test.ts +83 -0
  289. package/src/local-first/Protocol.test.ts +1037 -0
  290. package/src/local-first/Protocol.ts +75 -290
  291. package/src/local-first/Query.test.ts +349 -0
  292. package/src/local-first/Query.ts +11 -11
  293. package/src/local-first/Relay.ts +2 -2
  294. package/src/local-first/Schema.ts +3 -5
  295. package/src/local-first/Shared.test.ts +1828 -0
  296. package/src/local-first/Shared.ts +9 -8
  297. package/src/local-first/Storage.ts +4 -4
  298. package/src/local-first/Timestamp.test.ts +374 -0
  299. package/src/local-first/Timestamp.ts +22 -10
  300. package/dist/src/Buffer.d.ts +0 -122
  301. package/dist/src/Buffer.d.ts.map +0 -1
  302. package/dist/src/Buffer.js +0 -69
  303. package/src/Buffer.ts +0 -206
@@ -0,0 +1,204 @@
1
+ import { describe, it, test } from "node:test";
2
+ import {
3
+ assertEqual,
4
+ assertFalse,
5
+ assertSame,
6
+ assertThrowsInstanceOf,
7
+ assertTrue,
8
+ } from "./Assert.ts";
9
+
10
+ import {
11
+ constFalse,
12
+ constNull,
13
+ constTrue,
14
+ constUndefined,
15
+ constVoid,
16
+ constant,
17
+ disposable,
18
+ isDisposable,
19
+ exhaustiveCheck,
20
+ identity,
21
+ type Thunk,
22
+ todo,
23
+ } from "./Function.ts";
24
+ import { assertType } from "./Type.ts";
25
+
26
+ describe("exhaustiveCheck", () => {
27
+ it("throws error for unhandled case", () => {
28
+ const error = assertThrowsInstanceOf(
29
+ () => exhaustiveCheck("unexpected" as never),
30
+ Error,
31
+ );
32
+ assertTrue(
33
+ error.message.includes('exhaustiveCheck unhandled case: "unexpected"'),
34
+ );
35
+ });
36
+ });
37
+
38
+ describe("identity", () => {
39
+ it("returns the same value", () => {
40
+ assertEqual(identity(42), 42);
41
+ assertEqual(identity("hello"), "hello");
42
+ assertSame(identity(null), null);
43
+ });
44
+
45
+ it("preserves object reference", () => {
46
+ const obj = { a: 1 };
47
+ assertSame(identity(obj), obj);
48
+ });
49
+
50
+ it("preserves type", () => {
51
+ const num = identity(42);
52
+ assertType<typeof num, 42>();
53
+
54
+ const str = identity("hello");
55
+ assertType<typeof str, "hello">();
56
+ });
57
+ });
58
+
59
+ test("disposable", async () => {
60
+ interface Counter extends Disposable {
61
+ readonly increment: () => number;
62
+ }
63
+
64
+ let count = 0;
65
+
66
+ const value = disposable<Counter>({
67
+ increment: () => {
68
+ count += 1;
69
+ return count;
70
+ },
71
+ });
72
+
73
+ assertEqual(value.increment(), 1);
74
+ value[Symbol.dispose]();
75
+ const disposedError = assertThrowsInstanceOf(() => value.increment(), Error);
76
+ assertTrue(disposedError.message.includes("Cannot use a disposed object."));
77
+
78
+ disposable<Counter>({
79
+ // @ts-expect-error - extra properties are not part of Counter.
80
+ extra: 1,
81
+ increment: () => 1,
82
+ });
83
+
84
+ const disposer = new DisposableStack();
85
+ let disposedCount = 0;
86
+ disposer.defer(() => {
87
+ disposedCount += 1;
88
+ });
89
+ const valueWithDisposer = disposable<Counter>(
90
+ {
91
+ increment: () => count,
92
+ },
93
+ disposer,
94
+ );
95
+
96
+ assertTrue(disposer.disposed);
97
+ assertEqual(valueWithDisposer.increment(), 1);
98
+ assertEqual(disposedCount, 0);
99
+ valueWithDisposer[Symbol.dispose]();
100
+ assertEqual(disposedCount, 1);
101
+ const disposedWithDisposerError = assertThrowsInstanceOf(
102
+ () => valueWithDisposer.increment(),
103
+ Error,
104
+ );
105
+ assertTrue(
106
+ disposedWithDisposerError.message.includes("Cannot use a disposed object."),
107
+ );
108
+
109
+ interface AsyncCounter extends AsyncDisposable {
110
+ readonly increment: () => number;
111
+ }
112
+
113
+ const asyncDisposer = new AsyncDisposableStack();
114
+ let asyncDisposed = false;
115
+ asyncDisposer.defer(() => {
116
+ asyncDisposed = true;
117
+ });
118
+ let asyncCount = 0;
119
+
120
+ const asyncValue = disposable<AsyncCounter>(
121
+ {
122
+ increment: () => {
123
+ asyncCount += 1;
124
+ return asyncCount;
125
+ },
126
+ },
127
+ asyncDisposer,
128
+ );
129
+
130
+ assertTrue(asyncDisposer.disposed);
131
+ assertEqual(asyncValue.increment(), 1);
132
+ assertFalse(asyncDisposed);
133
+ await asyncValue[Symbol.asyncDispose]();
134
+ assertTrue(asyncDisposed);
135
+ const asyncDisposedError = assertThrowsInstanceOf(
136
+ () => asyncValue.increment(),
137
+ Error,
138
+ );
139
+ assertTrue(
140
+ asyncDisposedError.message.includes("Cannot use a disposed object."),
141
+ );
142
+ });
143
+
144
+ describe("isDisposable", () => {
145
+ it("recognizes synchronous and asynchronous disposable objects", () => {
146
+ assertTrue(isDisposable({ [Symbol.dispose]: constVoid }));
147
+ assertTrue(
148
+ isDisposable({ [Symbol.asyncDispose]: () => Promise.resolve() }),
149
+ );
150
+ });
151
+
152
+ it("rejects non-disposable values", () => {
153
+ assertFalse(isDisposable(undefined));
154
+ assertFalse(isDisposable(null));
155
+ assertFalse(isDisposable({}));
156
+ });
157
+ });
158
+
159
+ describe("constant", () => {
160
+ it("creates a Thunk returning the same value", () => {
161
+ const value = { id: 1 };
162
+ const getValue = constant(value);
163
+
164
+ assertType<typeof getValue, Thunk<typeof value>>();
165
+ assertSame(getValue(), value);
166
+ });
167
+
168
+ it("constVoid returns void", () => {
169
+ assertType<ReturnType<typeof constVoid>, void>();
170
+ });
171
+
172
+ it("constUndefined returns undefined", () => {
173
+ assertType<ReturnType<typeof constUndefined>, undefined>();
174
+ });
175
+
176
+ it("constNull returns null", () => {
177
+ assertSame(constNull(), null);
178
+ });
179
+
180
+ it("constTrue returns true", () => {
181
+ assertTrue(constTrue());
182
+ });
183
+
184
+ it("constFalse returns false", () => {
185
+ assertFalse(constFalse());
186
+ });
187
+ });
188
+
189
+ describe("todo", () => {
190
+ it("throws", () => {
191
+ const error = assertThrowsInstanceOf(() => todo(), Error);
192
+ assertTrue(error.message.includes("not yet implemented"));
193
+ });
194
+
195
+ it("infers type from return type annotation", () => {
196
+ const fn = (): number => todo();
197
+ assertType<ReturnType<typeof fn>, number>();
198
+ });
199
+
200
+ it("accepts explicit generic when no return type", () => {
201
+ const fn = () => todo<string>();
202
+ assertType<ReturnType<typeof fn>, string>();
203
+ });
204
+ });
package/src/Function.ts CHANGED
@@ -144,9 +144,9 @@ export const identity = <A>(a: A): A => a;
144
144
  *
145
145
  * ```ts
146
146
  * import {
147
- * assert,
148
147
  * assertEqual,
149
148
  * assertErr,
149
+ * assertInstanceOf,
150
150
  * assertTrue,
151
151
  * disposable,
152
152
  * trySync,
@@ -168,11 +168,8 @@ export const identity = <A>(a: A): A => a;
168
168
  * assertTrue(cleaned);
169
169
  * const result = trySync(() => resource.read());
170
170
  * assertErr(result);
171
- * assert(
172
- * result.error instanceof Error &&
173
- * result.error.message === "Cannot use a disposed object.",
174
- * "Expected the disposed-object error.",
175
- * );
171
+ * assertInstanceOf(result.error, Error);
172
+ * assertEqual(result.error.message, "Cannot use a disposed object.");
176
173
  * ```
177
174
  */
178
175
  export function disposable<T extends object>(
@@ -311,8 +308,9 @@ export const constVoid: Thunk<void> = constUndefined;
311
308
  *
312
309
  * ```ts
313
310
  * import {
314
- * assert,
311
+ * assertEqual,
315
312
  * assertErr,
313
+ * assertInstanceOf,
316
314
  * assertType,
317
315
  * todo,
318
316
  * trySync,
@@ -326,19 +324,16 @@ export const constVoid: Thunk<void> = constUndefined;
326
324
  * const getConfig = () => todo<Config>();
327
325
  *
328
326
  * assertType<
329
- * [number, Config],
330
- * [ReturnType<typeof getCount>, ReturnType<typeof getConfig>]
327
+ * [ReturnType<typeof getCount>, ReturnType<typeof getConfig>],
328
+ * [number, Config]
331
329
  * >();
332
330
  * const result = trySync(getCount);
333
331
  * assertErr(result);
334
- * assert(
335
- * result.error instanceof Error &&
336
- * result.error.message === "not yet implemented",
337
- * "Expected the not-yet-implemented error.",
338
- * );
332
+ * assertInstanceOf(result.error, Error);
333
+ * assertEqual(result.error.message, "not yet implemented");
339
334
  * ```
340
335
  */
341
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
336
+ // oxlint-disable-next-line typescript/no-unnecessary-type-parameters
342
337
  export const todo = <T>(): T => {
343
338
  throw new Error("not yet implemented");
344
339
  };