ts-data-forge 14.7.0 → 14.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 (290) hide show
  1. package/README.md +21 -34
  2. package/dist/array/impl/array-utils-creation.d.mts +3 -3
  3. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  4. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  5. package/dist/array/impl/array-utils-element-access.d.mts +2 -2
  6. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
  7. package/dist/array/impl/array-utils-element-access.mjs +1 -1
  8. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  9. package/dist/array/impl/array-utils-iterators.d.mts +1 -1
  10. package/dist/array/impl/array-utils-iterators.d.mts.map +1 -1
  11. package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts +37 -7
  12. package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts.map +1 -1
  13. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +4 -0
  14. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -1
  15. package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts +9 -9
  16. package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts.map +1 -1
  17. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +1 -1
  18. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-length-bounded-tuple-cast.d.mts +28 -8
  20. package/dist/array/impl/array-utils-length-bounded-tuple-cast.d.mts.map +1 -1
  21. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +4 -0
  22. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs.map +1 -1
  23. package/dist/array/impl/array-utils-length-bounded-tuple-guard.d.mts +3 -3
  24. package/dist/array/impl/array-utils-length-bounded-tuple-guard.d.mts.map +1 -1
  25. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +1 -1
  26. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs.map +1 -1
  27. package/dist/array/impl/array-utils-modification.d.mts +2 -2
  28. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  29. package/dist/array/impl/array-utils-reducing-value.d.mts +2 -2
  30. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  31. package/dist/array/impl/array-utils-reducing-value.mjs +3 -4
  32. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  33. package/dist/array/impl/array-utils-search.d.mts +1 -1
  34. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  35. package/dist/array/impl/array-utils-set-op.d.mts +1 -1
  36. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  37. package/dist/array/impl/array-utils-size.d.mts +2 -2
  38. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  39. package/dist/array/impl/array-utils-slice-clamped.d.mts +1 -1
  40. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -1
  41. package/dist/array/impl/array-utils-slicing.d.mts +2 -2
  42. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  43. package/dist/array/impl/array-utils-transformation.d.mts +2 -2
  44. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  45. package/dist/array/impl/array-utils-transformation.mjs +6 -3
  46. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  47. package/dist/array/impl/array-utils-validation.d.mts +2 -2
  48. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  49. package/dist/collections/imap-mapped.d.mts +2 -2
  50. package/dist/collections/imap-mapped.d.mts.map +1 -1
  51. package/dist/collections/imap-mapped.mjs +10 -7
  52. package/dist/collections/imap-mapped.mjs.map +1 -1
  53. package/dist/collections/imap.d.mts +2 -2
  54. package/dist/collections/imap.d.mts.map +1 -1
  55. package/dist/collections/imap.mjs +10 -7
  56. package/dist/collections/imap.mjs.map +1 -1
  57. package/dist/collections/iset-mapped.d.mts +2 -2
  58. package/dist/collections/iset-mapped.d.mts.map +1 -1
  59. package/dist/collections/iset-mapped.mjs +6 -3
  60. package/dist/collections/iset-mapped.mjs.map +1 -1
  61. package/dist/collections/iset.d.mts +2 -2
  62. package/dist/collections/iset.d.mts.map +1 -1
  63. package/dist/collections/iset.mjs +5 -5
  64. package/dist/collections/iset.mjs.map +1 -1
  65. package/dist/collections/queue.d.mts +1 -1
  66. package/dist/collections/queue.d.mts.map +1 -1
  67. package/dist/collections/stack.d.mts +1 -1
  68. package/dist/collections/stack.d.mts.map +1 -1
  69. package/dist/guard/is-non-empty-string.d.mts +1 -1
  70. package/dist/guard/is-non-empty-string.d.mts.map +1 -1
  71. package/dist/guard/is-primitive.d.mts +1 -1
  72. package/dist/guard/is-primitive.d.mts.map +1 -1
  73. package/dist/guard/is-type.d.mts +1 -1
  74. package/dist/guard/is-type.d.mts.map +1 -1
  75. package/dist/index.d.mts +2 -0
  76. package/dist/index.d.mts.map +1 -1
  77. package/dist/index.mjs +2 -0
  78. package/dist/index.mjs.map +1 -1
  79. package/dist/iterator/range.d.mts +5 -4
  80. package/dist/iterator/range.d.mts.map +1 -1
  81. package/dist/iterator/range.mjs.map +1 -1
  82. package/dist/json/json.d.mts +29 -32
  83. package/dist/json/json.d.mts.map +1 -1
  84. package/dist/json/json.mjs +1 -4
  85. package/dist/json/json.mjs.map +1 -1
  86. package/dist/number/branded-types/finite-number.d.mts +1 -1
  87. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  88. package/dist/number/branded-types/int.d.mts +2 -2
  89. package/dist/number/branded-types/int.d.mts.map +1 -1
  90. package/dist/number/branded-types/int16.d.mts +1 -1
  91. package/dist/number/branded-types/int16.d.mts.map +1 -1
  92. package/dist/number/branded-types/int32.d.mts +1 -1
  93. package/dist/number/branded-types/int32.d.mts.map +1 -1
  94. package/dist/number/branded-types/negative-finite-number.d.mts +1 -1
  95. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  96. package/dist/number/branded-types/negative-int.d.mts +1 -1
  97. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  98. package/dist/number/branded-types/negative-safe-int.d.mts +1 -1
  99. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  100. package/dist/number/branded-types/non-negative-finite-number.d.mts +1 -1
  101. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  102. package/dist/number/branded-types/non-negative-int16.d.mts +1 -1
  103. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  104. package/dist/number/branded-types/non-negative-int32.d.mts +1 -1
  105. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  106. package/dist/number/branded-types/non-positive-finite-number.d.mts +1 -1
  107. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  108. package/dist/number/branded-types/non-positive-int.d.mts +1 -1
  109. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  110. package/dist/number/branded-types/non-positive-safe-int.d.mts +1 -1
  111. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  112. package/dist/number/branded-types/non-zero-finite-number.d.mts +1 -1
  113. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  114. package/dist/number/branded-types/non-zero-int.d.mts +1 -1
  115. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  116. package/dist/number/branded-types/non-zero-int16.d.mts +1 -1
  117. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  118. package/dist/number/branded-types/non-zero-int32.d.mts +1 -1
  119. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  120. package/dist/number/branded-types/non-zero-safe-int.d.mts +1 -1
  121. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  122. package/dist/number/branded-types/non-zero-uint16.d.mts +1 -1
  123. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  124. package/dist/number/branded-types/non-zero-uint32.d.mts +1 -1
  125. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  126. package/dist/number/branded-types/positive-finite-number.d.mts +1 -1
  127. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  128. package/dist/number/branded-types/positive-int.d.mts +2 -2
  129. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  130. package/dist/number/branded-types/positive-int16.d.mts +1 -1
  131. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  132. package/dist/number/branded-types/positive-int32.d.mts +1 -1
  133. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  134. package/dist/number/branded-types/positive-safe-int.d.mts +2 -2
  135. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  136. package/dist/number/branded-types/positive-uint16.d.mts +1 -1
  137. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  138. package/dist/number/branded-types/positive-uint32.d.mts +1 -1
  139. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  140. package/dist/number/branded-types/safe-int.d.mts +2 -2
  141. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  142. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  143. package/dist/number/branded-types/safe-uint.d.mts +1 -1
  144. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  145. package/dist/number/branded-types/uint.d.mts +2 -2
  146. package/dist/number/branded-types/uint.d.mts.map +1 -1
  147. package/dist/number/branded-types/uint16.d.mts +1 -1
  148. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  149. package/dist/number/branded-types/uint32.d.mts +1 -1
  150. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  151. package/dist/number/enum/int8.d.mts +1 -1
  152. package/dist/number/enum/int8.d.mts.map +1 -1
  153. package/dist/number/enum/uint8.d.mts +1 -1
  154. package/dist/number/enum/uint8.d.mts.map +1 -1
  155. package/dist/number/num-arithmetic-types.d.mts +1 -1
  156. package/dist/number/num-arithmetic-types.d.mts.map +1 -1
  157. package/dist/number/num.d.mts +3 -3
  158. package/dist/number/num.d.mts.map +1 -1
  159. package/dist/number/refined-number-utils.d.mts +2 -2
  160. package/dist/number/refined-number-utils.d.mts.map +1 -1
  161. package/dist/number/refined-number-utils.mjs +6 -4
  162. package/dist/number/refined-number-utils.mjs.map +1 -1
  163. package/dist/object/object.d.mts +5 -8
  164. package/dist/object/object.d.mts.map +1 -1
  165. package/dist/object/object.mjs +16 -13
  166. package/dist/object/object.mjs.map +1 -1
  167. package/dist/others/cast-mutable.d.mts +1 -1
  168. package/dist/others/cast-mutable.d.mts.map +1 -1
  169. package/dist/others/cast-readonly.d.mts +1 -1
  170. package/dist/others/cast-readonly.d.mts.map +1 -1
  171. package/dist/others/debounce-function.d.mts.map +1 -1
  172. package/dist/others/debounce-function.mjs +1 -5
  173. package/dist/others/debounce-function.mjs.map +1 -1
  174. package/dist/others/memoize-function.d.mts +1 -1
  175. package/dist/others/memoize-function.d.mts.map +1 -1
  176. package/dist/string/str.d.mts +26 -18
  177. package/dist/string/str.d.mts.map +1 -1
  178. package/dist/string/str.mjs +9 -1
  179. package/dist/string/str.mjs.map +1 -1
  180. package/dist/types.d.mts +1 -1
  181. package/dist/types.d.mts.map +1 -1
  182. package/package.json +33 -32
  183. package/src/array/impl/array-utils-creation.mts +24 -22
  184. package/src/array/impl/array-utils-creation.test.mts +25 -22
  185. package/src/array/impl/array-utils-element-access.mts +7 -7
  186. package/src/array/impl/array-utils-element-access.test.mts +2 -2
  187. package/src/array/impl/array-utils-iterators.mts +1 -1
  188. package/src/array/impl/array-utils-iterators.test.mts +1 -1
  189. package/src/array/impl/array-utils-length-bounded-array-cast.mts +43 -13
  190. package/src/array/impl/array-utils-length-bounded-array-cast.test.mts +6 -6
  191. package/src/array/impl/array-utils-length-bounded-array-guard.mts +15 -15
  192. package/src/array/impl/array-utils-length-bounded-array-guard.test.mts +66 -54
  193. package/src/array/impl/array-utils-length-bounded-tuple-cast.mts +32 -12
  194. package/src/array/impl/array-utils-length-bounded-tuple-cast.test.mts +10 -10
  195. package/src/array/impl/array-utils-length-bounded-tuple-guard.mts +8 -8
  196. package/src/array/impl/array-utils-length-bounded-tuple-guard.test.mts +38 -28
  197. package/src/array/impl/array-utils-length-constraint-preservation.test.mts +14 -14
  198. package/src/array/impl/array-utils-modification.mts +12 -12
  199. package/src/array/impl/array-utils-modification.test.mts +7 -7
  200. package/src/array/impl/array-utils-overload-type-error.test.mts +1 -1
  201. package/src/array/impl/array-utils-reducing-value.mts +9 -11
  202. package/src/array/impl/array-utils-reducing-value.test.mts +2 -2
  203. package/src/array/impl/array-utils-search.mts +4 -4
  204. package/src/array/impl/array-utils-search.test.mts +25 -17
  205. package/src/array/impl/array-utils-set-op.mts +1 -1
  206. package/src/array/impl/array-utils-shape-invariants.test.mts +8 -8
  207. package/src/array/impl/array-utils-size.mts +5 -5
  208. package/src/array/impl/array-utils-slice-clamped.mts +2 -2
  209. package/src/array/impl/array-utils-slicing.mts +8 -8
  210. package/src/array/impl/array-utils-slicing.test.mts +1 -1
  211. package/src/array/impl/array-utils-transformation.mts +26 -24
  212. package/src/array/impl/array-utils-transformation.test.mts +12 -10
  213. package/src/array/impl/array-utils-validation.mts +7 -7
  214. package/src/array/impl/array-utils-validation.test.mts +39 -39
  215. package/src/array/impl/array.test.mts +1 -1
  216. package/src/collections/imap-mapped.mts +15 -9
  217. package/src/collections/imap-mapped.test.mts +1 -1
  218. package/src/collections/imap.mts +15 -9
  219. package/src/collections/imap.test.mts +7 -5
  220. package/src/collections/iset-mapped.mts +14 -8
  221. package/src/collections/iset.mts +12 -10
  222. package/src/collections/iset.test.mts +14 -12
  223. package/src/collections/queue.mts +1 -1
  224. package/src/collections/stack.mts +1 -1
  225. package/src/collections/stack.test.mts +8 -6
  226. package/src/guard/is-error.test.mts +6 -4
  227. package/src/guard/is-non-empty-string.mts +1 -1
  228. package/src/guard/is-non-empty-string.test.mts +15 -11
  229. package/src/guard/is-primitive.mts +1 -1
  230. package/src/guard/is-type.mts +1 -1
  231. package/src/guard/is-type.test.mts +87 -59
  232. package/src/index.mts +2 -0
  233. package/src/iterator/range.mts +5 -9
  234. package/src/iterator/range.test.mts +29 -0
  235. package/src/json/json.mts +32 -35
  236. package/src/json/json.test.mts +106 -89
  237. package/src/number/branded-types/finite-number.mts +4 -4
  238. package/src/number/branded-types/int.mts +2 -2
  239. package/src/number/branded-types/int16.mts +1 -1
  240. package/src/number/branded-types/int32.mts +1 -1
  241. package/src/number/branded-types/negative-finite-number.mts +1 -1
  242. package/src/number/branded-types/negative-finite-number.test.mts +4 -4
  243. package/src/number/branded-types/negative-int.mts +3 -3
  244. package/src/number/branded-types/negative-int.test.mts +1 -1
  245. package/src/number/branded-types/negative-safe-int.mts +3 -3
  246. package/src/number/branded-types/negative-safe-int.test.mts +1 -1
  247. package/src/number/branded-types/non-negative-finite-number.mts +3 -3
  248. package/src/number/branded-types/non-negative-int16.mts +1 -1
  249. package/src/number/branded-types/non-negative-int32.mts +1 -1
  250. package/src/number/branded-types/non-positive-finite-number.mts +1 -1
  251. package/src/number/branded-types/non-positive-int.mts +1 -1
  252. package/src/number/branded-types/non-positive-safe-int.mts +1 -1
  253. package/src/number/branded-types/non-zero-finite-number.mts +5 -5
  254. package/src/number/branded-types/non-zero-int.mts +1 -1
  255. package/src/number/branded-types/non-zero-int16.mts +1 -1
  256. package/src/number/branded-types/non-zero-int32.mts +1 -1
  257. package/src/number/branded-types/non-zero-safe-int.mts +4 -4
  258. package/src/number/branded-types/non-zero-uint16.mts +1 -1
  259. package/src/number/branded-types/non-zero-uint32.mts +1 -1
  260. package/src/number/branded-types/positive-finite-number.mts +4 -4
  261. package/src/number/branded-types/positive-int.mts +2 -2
  262. package/src/number/branded-types/positive-int16.mts +1 -1
  263. package/src/number/branded-types/positive-int32.mts +1 -1
  264. package/src/number/branded-types/positive-safe-int.mts +4 -4
  265. package/src/number/branded-types/positive-uint16.mts +1 -1
  266. package/src/number/branded-types/positive-uint32.mts +1 -1
  267. package/src/number/branded-types/safe-int.mts +2 -5
  268. package/src/number/branded-types/safe-uint.mts +1 -1
  269. package/src/number/branded-types/uint.mts +2 -2
  270. package/src/number/branded-types/uint16.mts +1 -1
  271. package/src/number/branded-types/uint32.mts +1 -1
  272. package/src/number/enum/int8.mts +5 -5
  273. package/src/number/enum/uint8.mts +4 -4
  274. package/src/number/num-arithmetic-types.mts +27 -27
  275. package/src/number/num-arithmetic-types.test.mts +21 -21
  276. package/src/number/num-arithmetic.test.mts +6 -6
  277. package/src/number/num.mts +24 -24
  278. package/src/number/num.test.mts +1 -1
  279. package/src/number/refined-number-utils.mts +25 -21
  280. package/src/object/object.mts +46 -34
  281. package/src/object/object.test.mts +5 -5
  282. package/src/others/cast-mutable.mts +1 -1
  283. package/src/others/cast-readonly.mts +1 -1
  284. package/src/others/debounce-function.mts +1 -5
  285. package/src/others/fast-deep-equal.test.mts +1 -1
  286. package/src/others/map-nullable.test.mts +1 -1
  287. package/src/others/memoize-function.mts +1 -1
  288. package/src/string/str.mts +33 -25
  289. package/src/string/str.test.mts +48 -38
  290. package/src/types.mts +14 -14
@@ -1,9 +1,9 @@
1
- import {
2
- type BoundedLengthString,
3
- type FixedLengthString,
4
- type MaxLengthString,
5
- type MinLengthString,
6
- type NonEmptyString,
1
+ import type {
2
+ BoundedLengthString,
3
+ FixedLengthString,
4
+ MaxLengthString,
5
+ MinLengthString,
6
+ NonEmptyString,
7
7
  } from 'ts-type-forge';
8
8
  import { expectType } from '../expect-type.mjs';
9
9
  import { Str } from './str.mjs';
@@ -34,25 +34,29 @@ describe(Str.isMinLengthString, () => {
34
34
  test('should act as a type guard', () => {
35
35
  const value: string = 'very-secret-password';
36
36
 
37
- if (Str.isMinLengthString(12, value)) {
38
- expectType<typeof value, MinLengthString<12>>('<=');
37
+ if (!Str.isMinLengthString(12, value)) {
38
+ return;
39
+ }
39
40
 
40
- expectType<typeof value, NonEmptyString>('<='); // 12 >= 1
41
+ expectType<typeof value, MinLengthString<12>>('<=');
41
42
 
42
- expectType<typeof value, MinLengthString<16>>('!<=');
43
+ expectType<typeof value, NonEmptyString>('<='); // 12 >= 1
43
44
 
44
- expect(value.length).toBeGreaterThanOrEqual(12);
45
- }
45
+ expectType<typeof value, MinLengthString<16>>('!<=');
46
+
47
+ expect(value.length).toBeGreaterThanOrEqual(12);
46
48
  });
47
49
 
48
50
  test('should preserve literal string types', () => {
49
51
  const literal = 'hello';
50
52
 
51
- if (Str.isMinLengthString(3, literal)) {
52
- expectType<typeof literal, 'hello'>('<=');
53
-
54
- expectType<typeof literal, MinLengthString<3>>('<=');
53
+ if (!Str.isMinLengthString(3, literal)) {
54
+ return;
55
55
  }
56
+
57
+ expectType<typeof literal, 'hello'>('<=');
58
+
59
+ expectType<typeof literal, MinLengthString<3>>('<=');
56
60
  });
57
61
  });
58
62
 
@@ -80,15 +84,17 @@ describe(Str.isMaxLengthString, () => {
80
84
  test('should act as a type guard', () => {
81
85
  const value: string = 'noshiro';
82
86
 
83
- if (Str.isMaxLengthString(32, value)) {
84
- expectType<typeof value, MaxLengthString<32>>('<=');
87
+ if (!Str.isMaxLengthString(32, value)) {
88
+ return;
89
+ }
85
90
 
86
- expectType<typeof value, MaxLengthString<64>>('<='); // 32 <= 64
91
+ expectType<typeof value, MaxLengthString<32>>('<=');
87
92
 
88
- expectType<typeof value, MaxLengthString<16>>('!<=');
93
+ expectType<typeof value, MaxLengthString<64>>('<='); // 32 <= 64
89
94
 
90
- expect(value.length).toBeLessThanOrEqual(32);
91
- }
95
+ expectType<typeof value, MaxLengthString<16>>('!<=');
96
+
97
+ expect(value.length).toBeLessThanOrEqual(32);
92
98
  });
93
99
  });
94
100
 
@@ -112,19 +118,21 @@ describe(Str.isBoundedLengthString, () => {
112
118
  test('should act as a type guard', () => {
113
119
  const value: string = 'user-12345678';
114
120
 
115
- if (Str.isBoundedLengthString(8, 16, value)) {
116
- expectType<typeof value, BoundedLengthString<8, 16>>('<=');
121
+ if (!Str.isBoundedLengthString(8, 16, value)) {
122
+ return;
123
+ }
124
+
125
+ expectType<typeof value, BoundedLengthString<8, 16>>('<=');
117
126
 
118
- expectType<typeof value, BoundedLengthString<1, 255>>('<='); // [8, 16] ⊆ [1, 255]
127
+ expectType<typeof value, BoundedLengthString<1, 255>>('<='); // [8, 16] ⊆ [1, 255]
119
128
 
120
- expectType<typeof value, MinLengthString<8>>('<=');
129
+ expectType<typeof value, MinLengthString<8>>('<=');
121
130
 
122
- expectType<typeof value, MaxLengthString<16>>('<=');
131
+ expectType<typeof value, MaxLengthString<16>>('<=');
123
132
 
124
- expectType<typeof value, NonEmptyString>('<='); // 8 >= 1
133
+ expectType<typeof value, NonEmptyString>('<='); // 8 >= 1
125
134
 
126
- expectType<typeof value, BoundedLengthString<10, 16>>('!<=');
127
- }
135
+ expectType<typeof value, BoundedLengthString<10, 16>>('!<=');
128
136
  });
129
137
  });
130
138
 
@@ -148,19 +156,21 @@ describe(Str.isFixedLengthString, () => {
148
156
  test('should act as a type guard', () => {
149
157
  const value: string = 'JP';
150
158
 
151
- if (Str.isFixedLengthString(2, value)) {
152
- expectType<typeof value, FixedLengthString<2>>('<=');
159
+ if (!Str.isFixedLengthString(2, value)) {
160
+ return;
161
+ }
153
162
 
154
- expectType<typeof value, BoundedLengthString<2, 2>>('<=');
163
+ expectType<typeof value, FixedLengthString<2>>('<=');
155
164
 
156
- expectType<typeof value, MaxLengthString<5>>('<='); // 2 <= 5
165
+ expectType<typeof value, BoundedLengthString<2, 2>>('<=');
157
166
 
158
- expectType<typeof value, MinLengthString<1>>('<='); // 2 >= 1
167
+ expectType<typeof value, MaxLengthString<5>>('<='); // 2 <= 5
159
168
 
160
- expectType<typeof value, NonEmptyString>('<=');
169
+ expectType<typeof value, MinLengthString<1>>('<='); // 2 >= 1
161
170
 
162
- expectType<typeof value, FixedLengthString<3>>('!<=');
163
- }
171
+ expectType<typeof value, NonEmptyString>('<=');
172
+
173
+ expectType<typeof value, FixedLengthString<3>>('!<=');
164
174
  });
165
175
  });
166
176
 
package/src/types.mts CHANGED
@@ -1,17 +1,17 @@
1
- import {
2
- type IndexOfTuple,
3
- type IntersectBrand,
4
- type IsFixedLengthList,
5
- type NegativeIndexOfTuple,
6
- type NegativeInt32,
7
- type NormalizeBrandUnion,
8
- type PositiveInt,
9
- type PositiveNumber,
10
- type Primitive,
11
- type SafeInt,
12
- type SafeUint,
13
- type Uint32,
14
- type WithSmallInt,
1
+ import type {
2
+ IndexOfTuple,
3
+ IntersectBrand,
4
+ IsFixedLengthList,
5
+ NegativeIndexOfTuple,
6
+ NegativeInt32,
7
+ NormalizeBrandUnion,
8
+ PositiveInt,
9
+ PositiveNumber,
10
+ Primitive,
11
+ SafeInt,
12
+ SafeUint,
13
+ Uint32,
14
+ WithSmallInt,
15
15
  } from 'ts-type-forge';
16
16
 
17
17
  export type SmallPositiveInt = WithSmallInt<PositiveInt>;