type-plus 7.0.1 → 7.1.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 (207) hide show
  1. package/README.md +4 -34
  2. package/cjs/any/any_type.d.ts +17 -7
  3. package/cjs/any/any_type.d.ts.map +1 -1
  4. package/cjs/array/array.some.d.ts +6 -2
  5. package/cjs/array/array.some.d.ts.map +1 -1
  6. package/cjs/array/array_plus.split_at.d.ts +1 -1
  7. package/cjs/array/array_plus.split_at.d.ts.map +1 -1
  8. package/cjs/array/reduce_while.js.map +1 -1
  9. package/cjs/assertion/assert_type.d.ts +3 -3
  10. package/cjs/assertion/assert_type.d.ts.map +1 -1
  11. package/cjs/assertion/assert_type.js +6 -3
  12. package/cjs/assertion/assert_type.js.map +1 -1
  13. package/cjs/bigint/bigint_type.d.ts +1 -1
  14. package/cjs/bigint/bigint_type.d.ts.map +1 -1
  15. package/cjs/bigint/strict_bigint_type.d.ts +1 -1
  16. package/cjs/bigint/strict_bigint_type.d.ts.map +1 -1
  17. package/cjs/binary/index.js +2 -25
  18. package/cjs/binary/index.js.map +1 -1
  19. package/cjs/boolean/boolean_type.d.ts +1 -1
  20. package/cjs/boolean/boolean_type.d.ts.map +1 -1
  21. package/cjs/boolean/false_type.d.ts +1 -1
  22. package/cjs/boolean/false_type.d.ts.map +1 -1
  23. package/cjs/boolean/strict_boolean_type.d.ts +1 -1
  24. package/cjs/boolean/strict_boolean_type.d.ts.map +1 -1
  25. package/cjs/boolean/true_type.d.ts +1 -1
  26. package/cjs/boolean/true_type.d.ts.map +1 -1
  27. package/cjs/equal/equal.d.ts +18 -18
  28. package/cjs/function/function_type.d.ts +1 -1
  29. package/cjs/function/function_type.d.ts.map +1 -1
  30. package/cjs/function/strict_function_type.d.ts +1 -1
  31. package/cjs/function/strict_function_type.d.ts.map +1 -1
  32. package/cjs/functional/context.js.map +1 -1
  33. package/cjs/index.d.ts +2 -2
  34. package/cjs/index.d.ts.map +1 -1
  35. package/cjs/index.js +7 -22
  36. package/cjs/index.js.map +1 -1
  37. package/cjs/mix_types/any_or_never_type.d.ts +29 -0
  38. package/cjs/mix_types/any_or_never_type.d.ts.map +1 -0
  39. package/cjs/{any/any_or_never.js → mix_types/any_or_never_type.js} +1 -1
  40. package/cjs/mix_types/any_or_never_type.js.map +1 -0
  41. package/cjs/number/number_type.d.ts +1 -1
  42. package/cjs/number/number_type.d.ts.map +1 -1
  43. package/cjs/numeric/integer.d.ts +1 -1
  44. package/cjs/numeric/integer.d.ts.map +1 -1
  45. package/cjs/numeric/numeric_type.d.ts +1 -1
  46. package/cjs/numeric/numeric_type.d.ts.map +1 -1
  47. package/cjs/object/ANotB.d.ts +3 -2
  48. package/cjs/object/ANotB.d.ts.map +1 -1
  49. package/cjs/object/Required.d.ts +1 -1
  50. package/cjs/object/Required.d.ts.map +1 -1
  51. package/cjs/object/findKey.d.ts +1 -1
  52. package/cjs/object/findKey.d.ts.map +1 -1
  53. package/cjs/object/forEachKey.d.ts +1 -1
  54. package/cjs/object/forEachKey.d.ts.map +1 -1
  55. package/cjs/object/hasProperty.d.ts +1 -1
  56. package/cjs/object/hasProperty.d.ts.map +1 -1
  57. package/cjs/object/object_type.d.ts +1 -1
  58. package/cjs/object/object_type.d.ts.map +1 -1
  59. package/cjs/object/split.d.ts +1 -1
  60. package/cjs/object/split.d.ts.map +1 -1
  61. package/cjs/package.json +3 -1
  62. package/cjs/primitive.d.ts +3 -0
  63. package/cjs/primitive.d.ts.map +1 -1
  64. package/cjs/string/string_type.d.ts +1 -1
  65. package/cjs/string/string_type.d.ts.map +1 -1
  66. package/cjs/symbol/symbol_type.d.ts +1 -1
  67. package/cjs/symbol/symbol_type.d.ts.map +1 -1
  68. package/cjs/testing/stub.d.ts +3 -0
  69. package/cjs/testing/stub.d.ts.map +1 -1
  70. package/cjs/testing/stub.js.map +1 -1
  71. package/cjs/type/failed.d.ts +1 -1
  72. package/cjs/type/failed.d.ts.map +1 -1
  73. package/cjs/type/no_infer.d.ts +9 -6
  74. package/cjs/type/no_infer.d.ts.map +1 -1
  75. package/cjs/type-guard/is_type.d.ts +1 -1
  76. package/cjs/type-guard/is_type.js +1 -1
  77. package/cjs/type-guard/is_type.js.map +1 -1
  78. package/cjs/unpartial.d.ts +2 -0
  79. package/cjs/unpartial.d.ts.map +1 -0
  80. package/cjs/unpartial.js +8 -0
  81. package/cjs/unpartial.js.map +1 -0
  82. package/cjs/void/void_type.d.ts +1 -1
  83. package/cjs/void/void_type.d.ts.map +1 -1
  84. package/esm/any/any_type.d.ts +17 -7
  85. package/esm/any/any_type.d.ts.map +1 -1
  86. package/esm/array/array.some.d.ts +6 -2
  87. package/esm/array/array.some.d.ts.map +1 -1
  88. package/esm/array/array_plus.split_at.d.ts +1 -1
  89. package/esm/array/array_plus.split_at.d.ts.map +1 -1
  90. package/esm/array/reduce_while.js.map +1 -1
  91. package/esm/assertion/assert_type.d.ts +3 -3
  92. package/esm/assertion/assert_type.d.ts.map +1 -1
  93. package/esm/assertion/assert_type.js +7 -3
  94. package/esm/assertion/assert_type.js.map +1 -1
  95. package/esm/bigint/bigint_type.d.ts +1 -1
  96. package/esm/bigint/bigint_type.d.ts.map +1 -1
  97. package/esm/bigint/strict_bigint_type.d.ts +1 -1
  98. package/esm/bigint/strict_bigint_type.d.ts.map +1 -1
  99. package/esm/boolean/boolean_type.d.ts +1 -1
  100. package/esm/boolean/boolean_type.d.ts.map +1 -1
  101. package/esm/boolean/false_type.d.ts +1 -1
  102. package/esm/boolean/false_type.d.ts.map +1 -1
  103. package/esm/boolean/strict_boolean_type.d.ts +1 -1
  104. package/esm/boolean/strict_boolean_type.d.ts.map +1 -1
  105. package/esm/boolean/true_type.d.ts +1 -1
  106. package/esm/boolean/true_type.d.ts.map +1 -1
  107. package/esm/equal/equal.d.ts +18 -18
  108. package/esm/function/function_type.d.ts +1 -1
  109. package/esm/function/function_type.d.ts.map +1 -1
  110. package/esm/function/strict_function_type.d.ts +1 -1
  111. package/esm/function/strict_function_type.d.ts.map +1 -1
  112. package/esm/functional/context.js.map +1 -1
  113. package/esm/index.d.ts +2 -2
  114. package/esm/index.d.ts.map +1 -1
  115. package/esm/index.js +1 -1
  116. package/esm/index.js.map +1 -1
  117. package/esm/mix_types/any_or_never_type.d.ts +29 -0
  118. package/esm/mix_types/any_or_never_type.d.ts.map +1 -0
  119. package/esm/mix_types/any_or_never_type.js +2 -0
  120. package/esm/mix_types/any_or_never_type.js.map +1 -0
  121. package/esm/number/number_type.d.ts +1 -1
  122. package/esm/number/number_type.d.ts.map +1 -1
  123. package/esm/numeric/integer.d.ts +1 -1
  124. package/esm/numeric/integer.d.ts.map +1 -1
  125. package/esm/numeric/numeric_type.d.ts +1 -1
  126. package/esm/numeric/numeric_type.d.ts.map +1 -1
  127. package/esm/object/ANotB.d.ts +3 -2
  128. package/esm/object/ANotB.d.ts.map +1 -1
  129. package/esm/object/Required.d.ts +1 -1
  130. package/esm/object/Required.d.ts.map +1 -1
  131. package/esm/object/findKey.d.ts +1 -1
  132. package/esm/object/findKey.d.ts.map +1 -1
  133. package/esm/object/forEachKey.d.ts +1 -1
  134. package/esm/object/forEachKey.d.ts.map +1 -1
  135. package/esm/object/hasProperty.d.ts +1 -1
  136. package/esm/object/hasProperty.d.ts.map +1 -1
  137. package/esm/object/object_type.d.ts +1 -1
  138. package/esm/object/object_type.d.ts.map +1 -1
  139. package/esm/object/split.d.ts +1 -1
  140. package/esm/object/split.d.ts.map +1 -1
  141. package/esm/primitive.d.ts +3 -0
  142. package/esm/primitive.d.ts.map +1 -1
  143. package/esm/string/string_type.d.ts +1 -1
  144. package/esm/string/string_type.d.ts.map +1 -1
  145. package/esm/symbol/symbol_type.d.ts +1 -1
  146. package/esm/symbol/symbol_type.d.ts.map +1 -1
  147. package/esm/testing/stub.d.ts +3 -0
  148. package/esm/testing/stub.d.ts.map +1 -1
  149. package/esm/testing/stub.js.map +1 -1
  150. package/esm/type/failed.d.ts +1 -1
  151. package/esm/type/failed.d.ts.map +1 -1
  152. package/esm/type/no_infer.d.ts +9 -6
  153. package/esm/type/no_infer.d.ts.map +1 -1
  154. package/esm/type-guard/is_type.d.ts +1 -1
  155. package/esm/type-guard/is_type.js +1 -1
  156. package/esm/type-guard/is_type.js.map +1 -1
  157. package/esm/unpartial.d.ts +2 -0
  158. package/esm/unpartial.d.ts.map +1 -0
  159. package/esm/unpartial.js +2 -0
  160. package/esm/unpartial.js.map +1 -0
  161. package/esm/void/void_type.d.ts +1 -1
  162. package/esm/void/void_type.d.ts.map +1 -1
  163. package/package.json +17 -28
  164. package/ts/any/any_type.ts +17 -7
  165. package/ts/array/array.some.ts +18 -4
  166. package/ts/array/array_plus.split_at.ts +1 -1
  167. package/ts/array/reduce_while.ts +1 -1
  168. package/ts/assertion/assert_type.ts +7 -4
  169. package/ts/bigint/bigint_type.ts +1 -1
  170. package/ts/bigint/strict_bigint_type.ts +1 -1
  171. package/ts/boolean/boolean_type.ts +1 -1
  172. package/ts/boolean/false_type.ts +1 -1
  173. package/ts/boolean/strict_boolean_type.ts +1 -1
  174. package/ts/boolean/true_type.ts +1 -1
  175. package/ts/equal/equal.ts +18 -18
  176. package/ts/function/function_type.ts +1 -1
  177. package/ts/function/strict_function_type.ts +1 -1
  178. package/ts/functional/context.ts +1 -1
  179. package/ts/index.ts +3 -2
  180. package/ts/mix_types/any_or_never_type.ts +30 -0
  181. package/ts/number/number_type.ts +1 -1
  182. package/ts/numeric/integer.ts +1 -1
  183. package/ts/numeric/numeric_type.ts +1 -1
  184. package/ts/object/ANotB.ts +2 -1
  185. package/ts/object/Required.ts +1 -1
  186. package/ts/object/findKey.ts +1 -1
  187. package/ts/object/forEachKey.ts +1 -1
  188. package/ts/object/hasProperty.ts +1 -1
  189. package/ts/object/object_type.ts +1 -1
  190. package/ts/object/split.ts +1 -1
  191. package/ts/primitive.ts +3 -0
  192. package/ts/string/string_type.ts +1 -1
  193. package/ts/symbol/symbol_type.ts +1 -1
  194. package/ts/testing/stub.ts +3 -0
  195. package/ts/type/failed.ts +1 -1
  196. package/ts/type/no_infer.ts +9 -6
  197. package/ts/type-guard/is_type.ts +2 -2
  198. package/ts/unpartial.ts +1 -0
  199. package/ts/void/void_type.ts +1 -1
  200. package/cjs/any/any_or_never.d.ts +0 -15
  201. package/cjs/any/any_or_never.d.ts.map +0 -1
  202. package/cjs/any/any_or_never.js.map +0 -1
  203. package/esm/any/any_or_never.d.ts +0 -15
  204. package/esm/any/any_or_never.d.ts.map +0 -1
  205. package/esm/any/any_or_never.js +0 -2
  206. package/esm/any/any_or_never.js.map +0 -1
  207. package/ts/any/any_or_never.ts +0 -15
package/ts/primitive.ts CHANGED
@@ -1,3 +1,6 @@
1
+ /**
2
+ * 📘 Definition of all primitive types.
3
+ */
1
4
  export type PrimitiveTypes =
2
5
  | boolean
3
6
  | number
@@ -1,4 +1,4 @@
1
- import type { IsAnyOrNever } from '../any/any_or_never.js'
1
+ import type { IsAnyOrNever } from '../mix_types/any_or_never_type.js'
2
2
 
3
3
  /**
4
4
  * Check if the type `T` is `string` or string literals.
@@ -1,4 +1,4 @@
1
- import type { IsAnyOrNever } from '../any/any_or_never.js'
1
+ import type { IsAnyOrNever } from '../mix_types/any_or_never_type.js'
2
2
 
3
3
  /**
4
4
  * Check if the type `T` is exactly `symbol`.
@@ -5,7 +5,10 @@ import type { NoInfer } from '../type/no_infer.js'
5
5
 
6
6
  /**
7
7
  * stub a value.
8
+ *
8
9
  * If the value is a function, it will be passed through as-is.
10
+ *
11
+ * 🦴 `utilities`
9
12
  */
10
13
  export function stub<T extends AnyFunction>(stub: T): T
11
14
  export function stub<T>(stub: RecursivePartial<NoInfer<T>>): T
package/ts/type/failed.ts CHANGED
@@ -27,6 +27,6 @@ export interface Failed<Msg extends string> {
27
27
  *
28
28
  * It's recommended to create custom failed types instead of using this to provide better message.
29
29
  */
30
- export interface FailedT<Msg extends string, T> {
30
+ export interface FailedT<Msg extends string, _T> {
31
31
  [uniSym]: Msg
32
32
  }
@@ -1,14 +1,14 @@
1
- import { IsNull } from '../null/null_type.js'
2
- import { Or } from '../predicates/logical.js'
3
- import { IsUndefined } from '../undefined/undefined_type.js'
1
+ import type { IsNull } from '../null/null_type.js'
2
+ import type { Or } from '../predicates/logical.js'
3
+ import type { IsUndefined } from '../undefined/undefined_type.js'
4
4
 
5
5
  /**
6
6
  * Prevents inference of a type parameter `T`.
7
7
  *
8
- * A build-in type `NoInfer` is coming soon.
9
- * @see https://github.com/microsoft/TypeScript/pull/52968
8
+ * 🦴 *utilities*
10
9
  *
11
- * @by @ajafff
10
+ * @ajafff original version author
11
+ * @see https://github.com/microsoft/TypeScript/issues/14829#issuecomment-298425341
12
12
  *
13
13
  * @example
14
14
  * ```ts
@@ -20,5 +20,8 @@ import { IsUndefined } from '../undefined/undefined_type.js'
20
20
  * assertEqual(123, 'abc') // Error
21
21
  * assertEqual({ x: 1 }, { x: 1, y: 2 }) // Error
22
22
  * ```
23
+ *
24
+ * A build-in `NoInfer` is coming soon.
25
+ * @see https://github.com/microsoft/TypeScript/pull/52968
23
26
  */
24
27
  export type NoInfer<T> = Or<IsNull<T>, IsUndefined<T>, T, T & {}>
@@ -36,7 +36,7 @@ function isNever<S extends never>(): unknown
36
36
  * @deprecated use `isType<T>()` or `testType.never<T>()` instead
37
37
  */
38
38
  function isNever(subject: never): subject is never
39
- function isNever(subject?: unknown): subject is never {
39
+ function isNever(_subject?: unknown): _subject is never {
40
40
  return true
41
41
  }
42
42
 
@@ -49,4 +49,4 @@ isType.never = isNever
49
49
  *
50
50
  * @deprecated use `testType.equal()` instead
51
51
  */
52
- isType.equal = function <C extends IsEqual<A, B>, A, B>() {}
52
+ isType.equal = function <_C extends IsEqual<A, B>, A, B>() {}
@@ -0,0 +1 @@
1
+ export { required, requiredDeep, unpartial } from 'unpartial'
@@ -1,4 +1,4 @@
1
- import type { IsAnyOrNever } from '../any/any_or_never.js'
1
+ import type { IsAnyOrNever } from '../mix_types/any_or_never_type.js'
2
2
  import type { IsUndefined } from '../undefined/undefined_type.js'
3
3
 
4
4
  /**
@@ -1,15 +0,0 @@
1
- import type { IsNever } from '../never/never_type.js';
2
- import type { IsAny } from './any_type.js';
3
- /**
4
- * Is `T` type `any` or `never`.
5
- *
6
- * ```ts
7
- * type R = IsAnyOrNever<any> // true
8
- * type R = IsAnyOrNever<never> // true
9
- *
10
- * type R = IsAnyOrNever<1> // false
11
- * type R = IsAnyOrNever<unknown> // false
12
- * ```
13
- */
14
- export type IsAnyOrNever<T, Then = true, Else = false> = IsNever<T, Then, IsAny<T, Then, Else>>;
15
- //# sourceMappingURL=any_or_never.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"any_or_never.d.ts","sourceRoot":"","sources":["../../ts/any/any_or_never.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"any_or_never.js","sourceRoot":"","sources":["../../ts/any/any_or_never.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- import type { IsNever } from '../never/never_type.js';
2
- import type { IsAny } from './any_type.js';
3
- /**
4
- * Is `T` type `any` or `never`.
5
- *
6
- * ```ts
7
- * type R = IsAnyOrNever<any> // true
8
- * type R = IsAnyOrNever<never> // true
9
- *
10
- * type R = IsAnyOrNever<1> // false
11
- * type R = IsAnyOrNever<unknown> // false
12
- * ```
13
- */
14
- export type IsAnyOrNever<T, Then = true, Else = false> = IsNever<T, Then, IsAny<T, Then, Else>>;
15
- //# sourceMappingURL=any_or_never.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"any_or_never.d.ts","sourceRoot":"","sources":["../../ts/any/any_or_never.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=any_or_never.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"any_or_never.js","sourceRoot":"","sources":["../../ts/any/any_or_never.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- import type { IsNever } from '../never/never_type.js'
2
- import type { IsAny } from './any_type.js'
3
-
4
- /**
5
- * Is `T` type `any` or `never`.
6
- *
7
- * ```ts
8
- * type R = IsAnyOrNever<any> // true
9
- * type R = IsAnyOrNever<never> // true
10
- *
11
- * type R = IsAnyOrNever<1> // false
12
- * type R = IsAnyOrNever<unknown> // false
13
- * ```
14
- */
15
- export type IsAnyOrNever<T, Then = true, Else = false> = IsNever<T, Then, IsAny<T, Then, Else>>