type-plus 4.9.1 → 4.10.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 (724) hide show
  1. package/cjs/ComposableTypes.d.ts +1 -0
  2. package/cjs/ComposableTypes.d.ts.map +1 -0
  3. package/cjs/JSONTypes.d.ts +1 -0
  4. package/cjs/JSONTypes.d.ts.map +1 -0
  5. package/cjs/JSONTypes.js.map +1 -1
  6. package/cjs/PrimitiveTypes.d.ts +1 -0
  7. package/cjs/PrimitiveTypes.d.ts.map +1 -0
  8. package/cjs/UnionKeys.d.ts +1 -0
  9. package/cjs/UnionKeys.d.ts.map +1 -0
  10. package/cjs/array/CommonPropKeys.d.ts +2 -1
  11. package/cjs/array/CommonPropKeys.d.ts.map +1 -0
  12. package/cjs/array/Concat.d.ts +1 -0
  13. package/cjs/array/Concat.d.ts.map +1 -0
  14. package/cjs/array/CreateTuple.d.ts +2 -1
  15. package/cjs/array/CreateTuple.d.ts.map +1 -0
  16. package/cjs/array/Filter.d.ts +1 -0
  17. package/cjs/array/Filter.d.ts.map +1 -0
  18. package/cjs/array/FindFirst.d.ts +1 -0
  19. package/cjs/array/FindFirst.d.ts.map +1 -0
  20. package/cjs/array/FindLast.d.ts +1 -0
  21. package/cjs/array/FindLast.d.ts.map +1 -0
  22. package/cjs/array/Head.d.ts +1 -0
  23. package/cjs/array/Head.d.ts.map +1 -0
  24. package/cjs/array/IntersectOfProps.d.ts +3 -2
  25. package/cjs/array/IntersectOfProps.d.ts.map +1 -0
  26. package/cjs/array/IsArray.d.ts +1 -0
  27. package/cjs/array/IsArray.d.ts.map +1 -0
  28. package/cjs/array/Last.d.ts +1 -0
  29. package/cjs/array/Last.d.ts.map +1 -0
  30. package/cjs/array/PadLeft.d.ts +4 -3
  31. package/cjs/array/PadLeft.d.ts.map +1 -0
  32. package/cjs/array/Reverse.d.ts +1 -0
  33. package/cjs/array/Reverse.d.ts.map +1 -0
  34. package/cjs/array/Some.d.ts +4 -3
  35. package/cjs/array/Some.d.ts.map +1 -0
  36. package/cjs/array/Tail.d.ts +2 -1
  37. package/cjs/array/Tail.d.ts.map +1 -0
  38. package/cjs/array/UnionOfProps.d.ts +3 -2
  39. package/cjs/array/UnionOfProps.d.ts.map +1 -0
  40. package/cjs/array/UnionOfValues.d.ts +1 -0
  41. package/cjs/array/UnionOfValues.d.ts.map +1 -0
  42. package/cjs/array/drop.d.ts +3 -2
  43. package/cjs/array/drop.d.ts.map +1 -0
  44. package/cjs/array/index.d.ts +20 -19
  45. package/cjs/array/index.d.ts.map +1 -0
  46. package/cjs/array/index.js +3 -3
  47. package/cjs/array/index.js.map +1 -1
  48. package/cjs/array/literalArray.d.ts +2 -1
  49. package/cjs/array/literalArray.d.ts.map +1 -0
  50. package/cjs/array/reduceWhile.d.ts +1 -0
  51. package/cjs/array/reduceWhile.d.ts.map +1 -0
  52. package/cjs/assertion/assertType.d.ts +3 -2
  53. package/cjs/assertion/assertType.d.ts.map +1 -0
  54. package/cjs/assertion/assertType.js +3 -3
  55. package/cjs/assertion/assertType.js.map +1 -1
  56. package/cjs/assertion/index.d.ts +2 -1
  57. package/cjs/assertion/index.d.ts.map +1 -0
  58. package/cjs/assertion/index.js +1 -1
  59. package/cjs/assertion/index.js.map +1 -1
  60. package/cjs/class/AnyConstructor.d.ts +1 -0
  61. package/cjs/class/AnyConstructor.d.ts.map +1 -0
  62. package/cjs/class/index.d.ts +3 -2
  63. package/cjs/class/index.d.ts.map +1 -0
  64. package/cjs/class/index.js +1 -1
  65. package/cjs/class/index.js.map +1 -1
  66. package/cjs/class/isConstructor.d.ts +2 -1
  67. package/cjs/class/isConstructor.d.ts.map +1 -0
  68. package/cjs/function/AnyFunction.d.ts +1 -0
  69. package/cjs/function/AnyFunction.d.ts.map +1 -0
  70. package/cjs/function/index.d.ts +2 -1
  71. package/cjs/function/index.d.ts.map +1 -0
  72. package/cjs/functional/ChainFn.d.ts +1 -0
  73. package/cjs/functional/ChainFn.d.ts.map +1 -0
  74. package/cjs/functional/compose.d.ts +3 -2
  75. package/cjs/functional/compose.d.ts.map +1 -0
  76. package/cjs/functional/index.d.ts +3 -2
  77. package/cjs/functional/index.d.ts.map +1 -0
  78. package/cjs/functional/index.js +1 -1
  79. package/cjs/functional/index.js.map +1 -1
  80. package/cjs/index.d.ts +18 -17
  81. package/cjs/index.d.ts.map +1 -0
  82. package/cjs/index.js +14 -14
  83. package/cjs/index.js.map +1 -1
  84. package/cjs/math/Abs.d.ts +2 -1
  85. package/cjs/math/Abs.d.ts.map +1 -0
  86. package/cjs/math/Add.d.ts +7 -6
  87. package/cjs/math/Add.d.ts.map +1 -0
  88. package/cjs/math/Digit.d.ts +5 -4
  89. package/cjs/math/Digit.d.ts.map +1 -0
  90. package/cjs/math/GreaterThan.d.ts +7 -6
  91. package/cjs/math/GreaterThan.d.ts.map +1 -0
  92. package/cjs/math/IsPositive.d.ts +1 -0
  93. package/cjs/math/IsPositive.d.ts.map +1 -0
  94. package/cjs/math/IsWhole.d.ts +1 -0
  95. package/cjs/math/IsWhole.d.ts.map +1 -0
  96. package/cjs/math/Max.d.ts +3 -2
  97. package/cjs/math/Max.d.ts.map +1 -0
  98. package/cjs/math/Subtract.d.ts +7 -6
  99. package/cjs/math/Subtract.d.ts.map +1 -0
  100. package/cjs/math/index.d.ts +9 -8
  101. package/cjs/math/index.d.ts.map +1 -0
  102. package/cjs/nodejs/index.d.ts +2 -1
  103. package/cjs/nodejs/index.d.ts.map +1 -0
  104. package/cjs/nodejs/index.js +1 -1
  105. package/cjs/nodejs/index.js.map +1 -1
  106. package/cjs/nodejs/isNodeError.d.ts +1 -0
  107. package/cjs/nodejs/isNodeError.d.ts.map +1 -0
  108. package/cjs/nominal-types/Brand.d.ts +3 -2
  109. package/cjs/nominal-types/Brand.d.ts.map +1 -0
  110. package/cjs/nominal-types/Brand.js +2 -2
  111. package/cjs/nominal-types/Brand.js.map +1 -1
  112. package/cjs/nominal-types/Flavor.d.ts +3 -2
  113. package/cjs/nominal-types/Flavor.d.ts.map +1 -0
  114. package/cjs/nominal-types/Flavor.js +2 -2
  115. package/cjs/nominal-types/Flavor.js.map +1 -1
  116. package/cjs/nominal-types/index.d.ts +4 -3
  117. package/cjs/nominal-types/index.d.ts.map +1 -0
  118. package/cjs/nominal-types/index.js +3 -3
  119. package/cjs/nominal-types/index.js.map +1 -1
  120. package/cjs/nominal-types/nominalMatch.d.ts +3 -2
  121. package/cjs/nominal-types/nominalMatch.d.ts.map +1 -0
  122. package/cjs/nominal-types/nominalMatch.js +2 -2
  123. package/cjs/nominal-types/nominalMatch.js.map +1 -1
  124. package/cjs/nominal-types/types.d.ts +1 -0
  125. package/cjs/nominal-types/types.d.ts.map +1 -0
  126. package/cjs/object/ANotB.d.ts +5 -4
  127. package/cjs/object/ANotB.d.ts.map +1 -0
  128. package/cjs/object/AnyRecord.d.ts +1 -0
  129. package/cjs/object/AnyRecord.d.ts.map +1 -0
  130. package/cjs/object/ExcludePropType.d.ts +1 -0
  131. package/cjs/object/ExcludePropType.d.ts.map +1 -0
  132. package/cjs/object/IsDisjoint.d.ts +4 -3
  133. package/cjs/object/IsDisjoint.d.ts.map +1 -0
  134. package/cjs/object/IsRecord.d.ts +1 -0
  135. package/cjs/object/IsRecord.d.ts.map +1 -0
  136. package/cjs/object/KeyTypes.d.ts +1 -0
  137. package/cjs/object/KeyTypes.d.ts.map +1 -0
  138. package/cjs/object/KeyofOptional.d.ts +1 -0
  139. package/cjs/object/KeyofOptional.d.ts.map +1 -0
  140. package/cjs/object/KeysWithDiffType.d.ts +4 -3
  141. package/cjs/object/KeysWithDiffType.d.ts.map +1 -0
  142. package/cjs/object/KnownKeys.d.ts +2 -1
  143. package/cjs/object/KnownKeys.d.ts.map +1 -0
  144. package/cjs/object/OptionalKeys.d.ts +2 -1
  145. package/cjs/object/OptionalKeys.d.ts.map +1 -0
  146. package/cjs/object/Partial.d.ts +4 -3
  147. package/cjs/object/Partial.d.ts.map +1 -0
  148. package/cjs/object/RecursiveIntersect.d.ts +2 -1
  149. package/cjs/object/RecursiveIntersect.d.ts.map +1 -0
  150. package/cjs/object/RecursivePartial.d.ts +2 -1
  151. package/cjs/object/RecursivePartial.d.ts.map +1 -0
  152. package/cjs/object/RecursiveRequired.d.ts +2 -1
  153. package/cjs/object/RecursiveRequired.d.ts.map +1 -0
  154. package/cjs/object/Required.d.ts +1 -0
  155. package/cjs/object/Required.d.ts.map +1 -0
  156. package/cjs/object/RequiredKeys.d.ts +3 -2
  157. package/cjs/object/RequiredKeys.d.ts.map +1 -0
  158. package/cjs/object/SpreadRecord.d.ts +2 -1
  159. package/cjs/object/SpreadRecord.d.ts.map +1 -0
  160. package/cjs/object/ValueOf.d.ts +1 -0
  161. package/cjs/object/ValueOf.d.ts.map +1 -0
  162. package/cjs/object/everyKey.d.ts +2 -1
  163. package/cjs/object/everyKey.d.ts.map +1 -0
  164. package/cjs/object/facade.d.ts +2 -1
  165. package/cjs/object/facade.d.ts.map +1 -0
  166. package/cjs/object/filterKey.d.ts +2 -1
  167. package/cjs/object/filterKey.d.ts.map +1 -0
  168. package/cjs/object/findKey.d.ts +2 -1
  169. package/cjs/object/findKey.d.ts.map +1 -0
  170. package/cjs/object/forEachKey.d.ts +2 -1
  171. package/cjs/object/forEachKey.d.ts.map +1 -0
  172. package/cjs/object/getField.d.ts +2 -1
  173. package/cjs/object/getField.d.ts.map +1 -0
  174. package/cjs/object/hasKey.d.ts +2 -1
  175. package/cjs/object/hasKey.d.ts.map +1 -0
  176. package/cjs/object/hasProperty.d.ts +2 -1
  177. package/cjs/object/hasProperty.d.ts.map +1 -0
  178. package/cjs/object/index.d.ts +37 -36
  179. package/cjs/object/index.d.ts.map +1 -0
  180. package/cjs/object/index.js +18 -18
  181. package/cjs/object/index.js.map +1 -1
  182. package/cjs/object/mapKey.d.ts +2 -1
  183. package/cjs/object/mapKey.d.ts.map +1 -0
  184. package/cjs/object/mapProperties.d.ts +3 -2
  185. package/cjs/object/mapProperties.d.ts.map +1 -0
  186. package/cjs/object/mapProperties.js +2 -2
  187. package/cjs/object/mapProperties.js.map +1 -1
  188. package/cjs/object/omit.d.ts +4 -3
  189. package/cjs/object/omit.d.ts.map +1 -0
  190. package/cjs/object/omit.js +2 -2
  191. package/cjs/object/omit.js.map +1 -1
  192. package/cjs/object/pick.d.ts +3 -2
  193. package/cjs/object/pick.d.ts.map +1 -0
  194. package/cjs/object/pick.js +2 -2
  195. package/cjs/object/pick.js.map +1 -1
  196. package/cjs/object/record.d.ts +3 -2
  197. package/cjs/object/record.d.ts.map +1 -0
  198. package/cjs/object/reduceKey.d.ts +2 -1
  199. package/cjs/object/reduceKey.d.ts.map +1 -0
  200. package/cjs/object/replaceProperty.d.ts +2 -1
  201. package/cjs/object/replaceProperty.d.ts.map +1 -0
  202. package/cjs/object/someKey.d.ts +2 -1
  203. package/cjs/object/someKey.d.ts.map +1 -0
  204. package/cjs/object/split.d.ts +3 -2
  205. package/cjs/object/split.d.ts.map +1 -0
  206. package/cjs/object/split.js +3 -3
  207. package/cjs/object/split.js.map +1 -1
  208. package/cjs/object/typeOverrideIncompatible.d.ts +2 -1
  209. package/cjs/object/typeOverrideIncompatible.d.ts.map +1 -0
  210. package/cjs/predicates/CanAssign.d.ts +3 -2
  211. package/cjs/predicates/CanAssign.d.ts.map +1 -0
  212. package/cjs/predicates/Equal.d.ts +1 -0
  213. package/cjs/predicates/Equal.d.ts.map +1 -0
  214. package/cjs/predicates/Extends.d.ts +1 -0
  215. package/cjs/predicates/Extends.d.ts.map +1 -0
  216. package/cjs/predicates/If.d.ts +1 -0
  217. package/cjs/predicates/If.d.ts.map +1 -0
  218. package/cjs/predicates/IsEmptyObject.d.ts +1 -0
  219. package/cjs/predicates/IsEmptyObject.d.ts.map +1 -0
  220. package/cjs/predicates/index.d.ts +9 -8
  221. package/cjs/predicates/index.d.ts.map +1 -0
  222. package/cjs/predicates/index.js +2 -2
  223. package/cjs/predicates/index.js.map +1 -1
  224. package/cjs/predicates/isType.d.ts +3 -2
  225. package/cjs/predicates/isType.d.ts.map +1 -0
  226. package/cjs/predicates/isType.js +2 -2
  227. package/cjs/predicates/isType.js.map +1 -1
  228. package/cjs/predicates/logical.d.ts +1 -0
  229. package/cjs/predicates/logical.d.ts.map +1 -0
  230. package/cjs/promise/PromiseValue.d.ts +1 -0
  231. package/cjs/promise/PromiseValue.d.ts.map +1 -0
  232. package/cjs/promise/PromiseValueMerge.d.ts +2 -1
  233. package/cjs/promise/PromiseValueMerge.d.ts.map +1 -0
  234. package/cjs/promise/index.d.ts +5 -4
  235. package/cjs/promise/index.d.ts.map +1 -0
  236. package/cjs/promise/index.js +2 -2
  237. package/cjs/promise/index.js.map +1 -1
  238. package/cjs/promise/isPromise.d.ts +1 -0
  239. package/cjs/promise/isPromise.d.ts.map +1 -0
  240. package/cjs/promise/mapSeries.d.ts +1 -0
  241. package/cjs/promise/mapSeries.d.ts.map +1 -0
  242. package/cjs/testing/index.d.ts +2 -1
  243. package/cjs/testing/index.d.ts.map +1 -0
  244. package/cjs/testing/index.js +1 -1
  245. package/cjs/testing/index.js.map +1 -1
  246. package/cjs/testing/stub.d.ts +3 -2
  247. package/cjs/testing/stub.d.ts.map +1 -0
  248. package/cjs/utils/NonNull.d.ts +1 -0
  249. package/cjs/utils/NonNull.d.ts.map +1 -0
  250. package/cjs/utils/NonUndefined.d.ts +1 -0
  251. package/cjs/utils/NonUndefined.d.ts.map +1 -0
  252. package/cjs/utils/Widen.d.ts +1 -0
  253. package/cjs/utils/Widen.d.ts.map +1 -0
  254. package/cjs/utils/as.d.ts +1 -0
  255. package/cjs/utils/as.d.ts.map +1 -0
  256. package/cjs/utils/index.d.ts +5 -4
  257. package/cjs/utils/index.d.ts.map +1 -0
  258. package/cjs/utils/index.js +1 -1
  259. package/cjs/utils/index.js.map +1 -1
  260. package/esm/ComposableTypes.d.ts +3 -0
  261. package/esm/ComposableTypes.d.ts.map +1 -0
  262. package/esm/JSONTypes.d.ts +12 -0
  263. package/esm/JSONTypes.d.ts.map +1 -0
  264. package/esm/JSONTypes.js.map +1 -1
  265. package/esm/PrimitiveTypes.d.ts +2 -0
  266. package/esm/PrimitiveTypes.d.ts.map +1 -0
  267. package/esm/UnionKeys.d.ts +2 -0
  268. package/esm/UnionKeys.d.ts.map +1 -0
  269. package/esm/array/CommonPropKeys.d.ts +4 -0
  270. package/esm/array/CommonPropKeys.d.ts.map +1 -0
  271. package/esm/array/Concat.d.ts +2 -0
  272. package/esm/array/Concat.d.ts.map +1 -0
  273. package/esm/array/CreateTuple.d.ts +3 -0
  274. package/esm/array/CreateTuple.d.ts.map +1 -0
  275. package/esm/array/Filter.d.ts +3 -0
  276. package/esm/array/Filter.d.ts.map +1 -0
  277. package/esm/array/FindFirst.d.ts +3 -0
  278. package/esm/array/FindFirst.d.ts.map +1 -0
  279. package/esm/array/FindLast.d.ts +2 -0
  280. package/esm/array/FindLast.d.ts.map +1 -0
  281. package/esm/array/Head.d.ts +2 -0
  282. package/esm/array/Head.d.ts.map +1 -0
  283. package/esm/array/IntersectOfProps.d.ts +5 -0
  284. package/esm/array/IntersectOfProps.d.ts.map +1 -0
  285. package/esm/array/IsArray.d.ts +2 -0
  286. package/esm/array/IsArray.d.ts.map +1 -0
  287. package/esm/array/Last.d.ts +2 -0
  288. package/esm/array/Last.d.ts.map +1 -0
  289. package/esm/array/PadLeft.d.ts +5 -0
  290. package/esm/array/PadLeft.d.ts.map +1 -0
  291. package/esm/array/Reverse.d.ts +2 -0
  292. package/esm/array/Reverse.d.ts.map +1 -0
  293. package/esm/array/Some.d.ts +8 -0
  294. package/esm/array/Some.d.ts.map +1 -0
  295. package/esm/array/Tail.d.ts +3 -0
  296. package/esm/array/Tail.d.ts.map +1 -0
  297. package/esm/array/UnionOfProps.d.ts +5 -0
  298. package/esm/array/UnionOfProps.d.ts.map +1 -0
  299. package/esm/array/UnionOfValues.d.ts +3 -0
  300. package/esm/array/UnionOfValues.d.ts.map +1 -0
  301. package/esm/array/drop.d.ts +13 -0
  302. package/esm/array/drop.d.ts.map +1 -0
  303. package/esm/array/index.d.ts +20 -0
  304. package/esm/array/index.d.ts.map +1 -0
  305. package/esm/array/index.js +3 -3
  306. package/esm/array/index.js.map +1 -1
  307. package/esm/array/literalArray.d.ts +3 -0
  308. package/esm/array/literalArray.d.ts.map +1 -0
  309. package/esm/array/reduceWhile.d.ts +2 -0
  310. package/esm/array/reduceWhile.d.ts.map +1 -0
  311. package/esm/assertion/assertType.d.ts +29 -0
  312. package/esm/assertion/assertType.d.ts.map +1 -0
  313. package/esm/assertion/assertType.js +1 -1
  314. package/esm/assertion/assertType.js.map +1 -1
  315. package/esm/assertion/index.d.ts +2 -0
  316. package/esm/assertion/index.d.ts.map +1 -0
  317. package/esm/assertion/index.js +1 -1
  318. package/esm/assertion/index.js.map +1 -1
  319. package/esm/class/AnyConstructor.d.ts +2 -0
  320. package/esm/class/AnyConstructor.d.ts.map +1 -0
  321. package/esm/class/index.d.ts +3 -0
  322. package/esm/class/index.d.ts.map +1 -0
  323. package/esm/class/index.js +1 -1
  324. package/esm/class/index.js.map +1 -1
  325. package/esm/class/isConstructor.d.ts +3 -0
  326. package/esm/class/isConstructor.d.ts.map +1 -0
  327. package/esm/function/AnyFunction.d.ts +2 -0
  328. package/esm/function/AnyFunction.d.ts.map +1 -0
  329. package/esm/function/index.d.ts +2 -0
  330. package/esm/function/index.d.ts.map +1 -0
  331. package/esm/functional/ChainFn.d.ts +3 -0
  332. package/esm/functional/ChainFn.d.ts.map +1 -0
  333. package/esm/functional/compose.d.ts +4 -0
  334. package/esm/functional/compose.d.ts.map +1 -0
  335. package/esm/functional/index.d.ts +3 -0
  336. package/esm/functional/index.d.ts.map +1 -0
  337. package/esm/functional/index.js +1 -1
  338. package/esm/functional/index.js.map +1 -1
  339. package/esm/index.d.ts +19 -0
  340. package/esm/index.d.ts.map +1 -0
  341. package/esm/index.js +14 -14
  342. package/esm/index.js.map +1 -1
  343. package/esm/math/Abs.d.ts +3 -0
  344. package/esm/math/Abs.d.ts.map +1 -0
  345. package/esm/math/Add.d.ts +16 -0
  346. package/esm/math/Add.d.ts.map +1 -0
  347. package/esm/math/Digit.d.ts +97 -0
  348. package/esm/math/Digit.d.ts.map +1 -0
  349. package/esm/math/GreaterThan.d.ts +12 -0
  350. package/esm/math/GreaterThan.d.ts.map +1 -0
  351. package/esm/math/IsPositive.d.ts +2 -0
  352. package/esm/math/IsPositive.d.ts.map +1 -0
  353. package/esm/math/IsWhole.d.ts +2 -0
  354. package/esm/math/IsWhole.d.ts.map +1 -0
  355. package/esm/math/Max.d.ts +4 -0
  356. package/esm/math/Max.d.ts.map +1 -0
  357. package/esm/math/Subtract.d.ts +13 -0
  358. package/esm/math/Subtract.d.ts.map +1 -0
  359. package/esm/math/index.d.ts +9 -0
  360. package/esm/math/index.d.ts.map +1 -0
  361. package/esm/nodejs/index.d.ts +2 -0
  362. package/esm/nodejs/index.d.ts.map +1 -0
  363. package/esm/nodejs/index.js +1 -1
  364. package/esm/nodejs/index.js.map +1 -1
  365. package/esm/nodejs/isNodeError.d.ts +26 -0
  366. package/esm/nodejs/isNodeError.d.ts.map +1 -0
  367. package/esm/nominal-types/Brand.d.ts +11 -0
  368. package/esm/nominal-types/Brand.d.ts.map +1 -0
  369. package/esm/nominal-types/Brand.js +1 -1
  370. package/esm/nominal-types/Brand.js.map +1 -1
  371. package/esm/nominal-types/Flavor.d.ts +8 -0
  372. package/esm/nominal-types/Flavor.d.ts.map +1 -0
  373. package/esm/nominal-types/Flavor.js +1 -1
  374. package/esm/nominal-types/Flavor.js.map +1 -1
  375. package/esm/nominal-types/index.d.ts +4 -0
  376. package/esm/nominal-types/index.d.ts.map +1 -0
  377. package/esm/nominal-types/index.js +3 -3
  378. package/esm/nominal-types/index.js.map +1 -1
  379. package/esm/nominal-types/nominalMatch.d.ts +5 -0
  380. package/esm/nominal-types/nominalMatch.d.ts.map +1 -0
  381. package/esm/nominal-types/nominalMatch.js +1 -1
  382. package/esm/nominal-types/nominalMatch.js.map +1 -1
  383. package/esm/nominal-types/types.d.ts +3 -0
  384. package/esm/nominal-types/types.d.ts.map +1 -0
  385. package/esm/object/ANotB.d.ts +14 -0
  386. package/esm/object/ANotB.d.ts.map +1 -0
  387. package/esm/object/AnyRecord.d.ts +2 -0
  388. package/esm/object/AnyRecord.d.ts.map +1 -0
  389. package/esm/object/ExcludePropType.d.ts +4 -0
  390. package/esm/object/ExcludePropType.d.ts.map +1 -0
  391. package/esm/object/IsDisjoint.d.ts +5 -0
  392. package/esm/object/IsDisjoint.d.ts.map +1 -0
  393. package/esm/object/IsRecord.d.ts +2 -0
  394. package/esm/object/IsRecord.d.ts.map +1 -0
  395. package/esm/object/KeyTypes.d.ts +2 -0
  396. package/esm/object/KeyTypes.d.ts.map +1 -0
  397. package/esm/object/KeyofOptional.d.ts +3 -0
  398. package/esm/object/KeyofOptional.d.ts.map +1 -0
  399. package/esm/object/KeysWithDiffType.d.ts +7 -0
  400. package/esm/object/KeysWithDiffType.d.ts.map +1 -0
  401. package/esm/object/KnownKeys.d.ts +7 -0
  402. package/esm/object/KnownKeys.d.ts.map +1 -0
  403. package/esm/object/OptionalKeys.d.ts +8 -0
  404. package/esm/object/OptionalKeys.d.ts.map +1 -0
  405. package/esm/object/Partial.d.ts +7 -0
  406. package/esm/object/Partial.d.ts.map +1 -0
  407. package/esm/object/RecursiveIntersect.d.ts +5 -0
  408. package/esm/object/RecursiveIntersect.d.ts.map +1 -0
  409. package/esm/object/RecursivePartial.d.ts +5 -0
  410. package/esm/object/RecursivePartial.d.ts.map +1 -0
  411. package/esm/object/RecursiveRequired.d.ts +5 -0
  412. package/esm/object/RecursiveRequired.d.ts.map +1 -0
  413. package/esm/object/Required.d.ts +3 -0
  414. package/esm/object/Required.d.ts.map +1 -0
  415. package/esm/object/RequiredKeys.d.ts +7 -0
  416. package/esm/object/RequiredKeys.d.ts.map +1 -0
  417. package/esm/object/SpreadRecord.d.ts +3 -0
  418. package/esm/object/SpreadRecord.d.ts.map +1 -0
  419. package/esm/object/ValueOf.d.ts +2 -0
  420. package/esm/object/ValueOf.d.ts.map +1 -0
  421. package/esm/object/everyKey.d.ts +3 -0
  422. package/esm/object/everyKey.d.ts.map +1 -0
  423. package/esm/object/facade.d.ts +14 -0
  424. package/esm/object/facade.d.ts.map +1 -0
  425. package/esm/object/filterKey.d.ts +3 -0
  426. package/esm/object/filterKey.d.ts.map +1 -0
  427. package/esm/object/findKey.d.ts +3 -0
  428. package/esm/object/findKey.d.ts.map +1 -0
  429. package/esm/object/forEachKey.d.ts +3 -0
  430. package/esm/object/forEachKey.d.ts.map +1 -0
  431. package/esm/object/getField.d.ts +4 -0
  432. package/esm/object/getField.d.ts.map +1 -0
  433. package/esm/object/hasKey.d.ts +4 -0
  434. package/esm/object/hasKey.d.ts.map +1 -0
  435. package/esm/object/hasProperty.d.ts +3 -0
  436. package/esm/object/hasProperty.d.ts.map +1 -0
  437. package/esm/object/index.d.ts +37 -0
  438. package/esm/object/index.d.ts.map +1 -0
  439. package/esm/object/index.js +18 -18
  440. package/esm/object/index.js.map +1 -1
  441. package/esm/object/mapKey.d.ts +3 -0
  442. package/esm/object/mapKey.d.ts.map +1 -0
  443. package/esm/object/mapProperties.d.ts +6 -0
  444. package/esm/object/mapProperties.d.ts.map +1 -0
  445. package/esm/object/mapProperties.js +1 -1
  446. package/esm/object/mapProperties.js.map +1 -1
  447. package/esm/object/omit.d.ts +18 -0
  448. package/esm/object/omit.d.ts.map +1 -0
  449. package/esm/object/omit.js +1 -1
  450. package/esm/object/omit.js.map +1 -1
  451. package/esm/object/pick.d.ts +21 -0
  452. package/esm/object/pick.d.ts.map +1 -0
  453. package/esm/object/pick.js +1 -1
  454. package/esm/object/pick.js.map +1 -1
  455. package/esm/object/record.d.ts +4 -0
  456. package/esm/object/record.d.ts.map +1 -0
  457. package/esm/object/reduceKey.d.ts +4 -0
  458. package/esm/object/reduceKey.d.ts.map +1 -0
  459. package/esm/object/replaceProperty.d.ts +6 -0
  460. package/esm/object/replaceProperty.d.ts.map +1 -0
  461. package/esm/object/someKey.d.ts +3 -0
  462. package/esm/object/someKey.d.ts.map +1 -0
  463. package/esm/object/split.d.ts +82 -0
  464. package/esm/object/split.d.ts.map +1 -0
  465. package/esm/object/split.js +1 -1
  466. package/esm/object/split.js.map +1 -1
  467. package/esm/object/typeOverrideIncompatible.d.ts +3 -0
  468. package/esm/object/typeOverrideIncompatible.d.ts.map +1 -0
  469. package/esm/predicates/CanAssign.d.ts +7 -0
  470. package/esm/predicates/CanAssign.d.ts.map +1 -0
  471. package/esm/predicates/Equal.d.ts +5 -0
  472. package/esm/predicates/Equal.d.ts.map +1 -0
  473. package/esm/predicates/Extends.d.ts +5 -0
  474. package/esm/predicates/Extends.d.ts.map +1 -0
  475. package/esm/predicates/If.d.ts +2 -0
  476. package/esm/predicates/If.d.ts.map +1 -0
  477. package/esm/predicates/IsEmptyObject.d.ts +2 -0
  478. package/esm/predicates/IsEmptyObject.d.ts.map +1 -0
  479. package/esm/predicates/index.d.ts +12 -0
  480. package/esm/predicates/index.d.ts.map +1 -0
  481. package/esm/predicates/index.js +2 -2
  482. package/esm/predicates/index.js.map +1 -1
  483. package/esm/predicates/isType.d.ts +11 -0
  484. package/esm/predicates/isType.d.ts.map +1 -0
  485. package/esm/predicates/isType.js +1 -1
  486. package/esm/predicates/isType.js.map +1 -1
  487. package/esm/predicates/logical.d.ts +5 -0
  488. package/esm/predicates/logical.d.ts.map +1 -0
  489. package/esm/promise/PromiseValue.d.ts +2 -0
  490. package/esm/promise/PromiseValue.d.ts.map +1 -0
  491. package/esm/promise/PromiseValueMerge.d.ts +3 -0
  492. package/esm/promise/PromiseValueMerge.d.ts.map +1 -0
  493. package/esm/promise/index.d.ts +5 -0
  494. package/esm/promise/index.d.ts.map +1 -0
  495. package/esm/promise/index.js +2 -2
  496. package/esm/promise/index.js.map +1 -1
  497. package/esm/promise/isPromise.d.ts +2 -0
  498. package/esm/promise/isPromise.d.ts.map +1 -0
  499. package/esm/promise/mapSeries.d.ts +2 -0
  500. package/esm/promise/mapSeries.d.ts.map +1 -0
  501. package/esm/testing/index.d.ts +2 -0
  502. package/esm/testing/index.d.ts.map +1 -0
  503. package/esm/testing/index.js +1 -1
  504. package/esm/testing/index.js.map +1 -1
  505. package/esm/testing/stub.d.ts +10 -0
  506. package/esm/testing/stub.d.ts.map +1 -0
  507. package/esm/utils/NonNull.d.ts +2 -0
  508. package/esm/utils/NonNull.d.ts.map +1 -0
  509. package/esm/utils/NonUndefined.d.ts +2 -0
  510. package/esm/utils/NonUndefined.d.ts.map +1 -0
  511. package/esm/utils/Widen.d.ts +2 -0
  512. package/esm/utils/Widen.d.ts.map +1 -0
  513. package/esm/utils/as.d.ts +7 -0
  514. package/esm/utils/as.d.ts.map +1 -0
  515. package/esm/utils/index.d.ts +5 -0
  516. package/esm/utils/index.d.ts.map +1 -0
  517. package/esm/utils/index.js +1 -1
  518. package/esm/utils/index.js.map +1 -1
  519. package/package.json +47 -44
  520. package/ts/JSONTypes.ts +17 -18
  521. package/ts/array/CommonPropKeys.ts +18 -18
  522. package/ts/array/CreateTuple.ts +1 -1
  523. package/ts/array/IntersectOfProps.ts +20 -20
  524. package/ts/array/PadLeft.ts +3 -3
  525. package/ts/array/Some.ts +3 -3
  526. package/ts/array/Tail.ts +1 -1
  527. package/ts/array/UnionOfProps.ts +18 -18
  528. package/ts/array/drop.ts +2 -2
  529. package/ts/array/index.ts +19 -19
  530. package/ts/array/literalArray.ts +1 -1
  531. package/ts/assertion/assertType.ts +105 -105
  532. package/ts/assertion/index.ts +1 -1
  533. package/ts/binary/_binary.ts +1 -1
  534. package/ts/binary/index.ts +2 -2
  535. package/ts/class/index.ts +2 -2
  536. package/ts/class/isConstructor.ts +1 -1
  537. package/ts/function/index.ts +1 -1
  538. package/ts/functional/Maybe.ts +19 -19
  539. package/ts/functional/compose.ts +2 -2
  540. package/ts/functional/index.ts +3 -3
  541. package/ts/index.ts +19 -19
  542. package/ts/math/Abs.ts +1 -1
  543. package/ts/math/Add.ts +6 -6
  544. package/ts/math/Digit.ts +4 -4
  545. package/ts/math/GreaterThan.ts +6 -6
  546. package/ts/math/Max.ts +2 -2
  547. package/ts/math/Subtract.ts +6 -6
  548. package/ts/math/index.ts +8 -8
  549. package/ts/nodejs/index.ts +1 -1
  550. package/ts/nominal-types/Brand.ts +2 -2
  551. package/ts/nominal-types/Flavor.ts +32 -32
  552. package/ts/nominal-types/index.ts +3 -3
  553. package/ts/nominal-types/nominalMatch.ts +3 -3
  554. package/ts/object/ANotB.ts +21 -21
  555. package/ts/object/IsDisjoint.ts +12 -12
  556. package/ts/object/KeysWithDiffType.ts +3 -3
  557. package/ts/object/KnownKeys.ts +1 -1
  558. package/ts/object/OptionalKeys.ts +1 -1
  559. package/ts/object/Partial.ts +3 -3
  560. package/ts/object/RecursiveIntersect.ts +1 -1
  561. package/ts/object/RecursivePartial.ts +1 -1
  562. package/ts/object/RecursiveRequired.ts +1 -1
  563. package/ts/object/RequiredKeys.ts +2 -2
  564. package/ts/object/SpreadRecord.ts +6 -6
  565. package/ts/object/everyKey.ts +1 -1
  566. package/ts/object/facade.ts +39 -39
  567. package/ts/object/filterKey.ts +1 -1
  568. package/ts/object/findKey.ts +1 -1
  569. package/ts/object/forEachKey.ts +1 -1
  570. package/ts/object/getField.ts +1 -1
  571. package/ts/object/hasKey.ts +7 -7
  572. package/ts/object/hasProperty.ts +1 -1
  573. package/ts/object/index.ts +36 -36
  574. package/ts/object/mapKey.ts +1 -1
  575. package/ts/object/mapProperties.ts +3 -3
  576. package/ts/object/omit.ts +36 -36
  577. package/ts/object/pick.ts +35 -35
  578. package/ts/object/record.ts +3 -3
  579. package/ts/object/reduceKey.ts +1 -1
  580. package/ts/object/replaceProperty.ts +1 -1
  581. package/ts/object/someKey.ts +1 -1
  582. package/ts/object/split.ts +3 -3
  583. package/ts/object/typeOverrideIncompatible.ts +10 -10
  584. package/ts/predicates/CanAssign.ts +2 -2
  585. package/ts/predicates/index.ts +8 -8
  586. package/ts/predicates/isType.ts +30 -30
  587. package/ts/promise/PromiseValueMerge.ts +1 -1
  588. package/ts/promise/index.ts +4 -4
  589. package/ts/testing/index.ts +1 -1
  590. package/ts/testing/stub.ts +2 -2
  591. package/ts/utils/index.ts +4 -4
  592. package/ts/ComposableTypes.spec.ts +0 -29
  593. package/ts/JSONTypes.spec.ts +0 -43
  594. package/ts/array/CommonPropKeys.spec.ts +0 -20
  595. package/ts/array/Concat.spec.ts +0 -21
  596. package/ts/array/CreateTuple.spec.ts +0 -46
  597. package/ts/array/DropFirst.spec.ts +0 -21
  598. package/ts/array/DropLast.spec.ts +0 -21
  599. package/ts/array/DropMatch.spec.ts +0 -234
  600. package/ts/array/Filter.spec.ts +0 -107
  601. package/ts/array/FindFirst.spec.ts +0 -27
  602. package/ts/array/FindLast.spec.ts +0 -27
  603. package/ts/array/Head.spec.ts +0 -21
  604. package/ts/array/IntersectOfProps.spec.ts +0 -14
  605. package/ts/array/Last.spec.ts +0 -32
  606. package/ts/array/PadLeft.spec.ts +0 -26
  607. package/ts/array/Reverse.spec.ts +0 -17
  608. package/ts/array/Some.spec.ts +0 -79
  609. package/ts/array/Tail.spec.ts +0 -32
  610. package/ts/array/UnionOfProps.spec.ts +0 -14
  611. package/ts/array/UnionOfValues.spec.ts +0 -11
  612. package/ts/array/literalArray.spec.ts +0 -7
  613. package/ts/array/reduceWhile.spec.ts +0 -27
  614. package/ts/assertion/assertType.spec.ts +0 -507
  615. package/ts/binary/index.spec.ts +0 -28
  616. package/ts/class/AnyConstructor.spec.ts +0 -13
  617. package/ts/class/isConstructor.spec.ts +0 -35
  618. package/ts/function/AnyFunction.spec.ts +0 -21
  619. package/ts/functional/ChainFn.spec.ts +0 -7
  620. package/ts/functional/Maybe.spec.ts +0 -42
  621. package/ts/functional/compose.spec.ts +0 -32
  622. package/ts/index.spec.ts +0 -7
  623. package/ts/math/Abs.spec.ts +0 -14
  624. package/ts/math/Add.spec.ts +0 -82
  625. package/ts/math/Digit.spec.ts +0 -184
  626. package/ts/math/GreaterThan.spec.ts +0 -75
  627. package/ts/math/IsPositive.spec.ts +0 -15
  628. package/ts/math/IsWhole.spec.ts +0 -19
  629. package/ts/math/Max.spec.ts +0 -59
  630. package/ts/math/Subtract.spec.ts +0 -40
  631. package/ts/nodejs/isNodeError.spec.ts +0 -11
  632. package/ts/nominal-types/Brand.spec.ts +0 -43
  633. package/ts/nominal-types/Flavor.spec.ts +0 -51
  634. package/ts/nominal-types/nominalMatch.spec.ts +0 -54
  635. package/ts/object/ANotB.spec.ts +0 -78
  636. package/ts/object/ExcludePropType.spec.ts +0 -13
  637. package/ts/object/IsDisjoint.spec.ts +0 -25
  638. package/ts/object/IsRecord.spec.ts +0 -22
  639. package/ts/object/KeyTypes.spec.ts +0 -9
  640. package/ts/object/KeyofOptional.spec.ts +0 -8
  641. package/ts/object/KeysWithDiffType.spec.ts +0 -21
  642. package/ts/object/KnownKeys.spec.ts +0 -39
  643. package/ts/object/OptionalKeys.spec.ts +0 -23
  644. package/ts/object/Partial.spec.ts +0 -49
  645. package/ts/object/RecursiveIntersect.spec.ts +0 -39
  646. package/ts/object/RecursiveRequired.spec.ts +0 -57
  647. package/ts/object/Required.spec.ts +0 -29
  648. package/ts/object/RequiredKeys.spec.ts +0 -24
  649. package/ts/object/SpreadRecord.spec.ts +0 -14
  650. package/ts/object/ValueOf.spec.ts +0 -36
  651. package/ts/object/everyKey.spec.ts +0 -11
  652. package/ts/object/facade.spec.ts +0 -22
  653. package/ts/object/filterKey.spec.ts +0 -8
  654. package/ts/object/findKey.spec.ts +0 -8
  655. package/ts/object/forEachKey.spec.ts +0 -9
  656. package/ts/object/getField.spec.ts +0 -21
  657. package/ts/object/hasKey.spec.ts +0 -29
  658. package/ts/object/hasProperty.spec.ts +0 -15
  659. package/ts/object/mapKey.spec.ts +0 -8
  660. package/ts/object/mapProperties.spec.ts +0 -27
  661. package/ts/object/omit.spec.ts +0 -104
  662. package/ts/object/pick.spec.ts +0 -66
  663. package/ts/object/record.spec.ts +0 -54
  664. package/ts/object/reduceKey.spec.ts +0 -18
  665. package/ts/object/replaceProperty.spec.ts +0 -16
  666. package/ts/object/run.ts +0 -0
  667. package/ts/object/someKey.spec.ts +0 -6
  668. package/ts/object/split.spec.ts +0 -119
  669. package/ts/object/typeOverrideIncompatible.spec.ts +0 -24
  670. package/ts/predicates/CanAssign.spec.ts +0 -57
  671. package/ts/predicates/Equal.spec.ts +0 -71
  672. package/ts/predicates/If.spec.ts +0 -14
  673. package/ts/predicates/IsEmptyObject.spec.ts +0 -15
  674. package/ts/predicates/index.spec.ts +0 -73
  675. package/ts/predicates/isType.spec.ts +0 -106
  676. package/ts/predicates/logical.spec.ts +0 -59
  677. package/ts/promise/PromiseValue.spec.ts +0 -6
  678. package/ts/promise/PromiseValueMerge.spec.ts +0 -7
  679. package/ts/promise/isPromise.spec.ts +0 -26
  680. package/ts/promise/mapSeries.spec.ts +0 -12
  681. package/ts/testing/stub.spec.ts +0 -58
  682. package/ts/type-checker/.eslintrc.json +0 -7
  683. package/ts/type-checker/AnyType.ts +0 -13
  684. package/ts/type-checker/Boolean.ts +0 -34
  685. package/ts/type-checker/Tuple.spec.ts +0 -15
  686. package/ts/type-checker/Tuple.ts +0 -14
  687. package/ts/type-checker/buildTypes.spec.ts +0 -28
  688. package/ts/type-checker/index.ts +0 -0
  689. package/ts/type-checker/typeChecker.spec.ts +0 -14
  690. package/ts/type-checker/typeChecker.ts +0 -52
  691. package/ts/type-checker/types.ts +0 -19
  692. package/ts/types/.eslintrc.json +0 -7
  693. package/ts/types/AllType.ts +0 -31
  694. package/ts/types/Any.ts +0 -7
  695. package/ts/types/Array.ts +0 -43
  696. package/ts/types/BigInt.ts +0 -36
  697. package/ts/types/Boolean.ts +0 -36
  698. package/ts/types/Generate.ts +0 -48
  699. package/ts/types/Null.ts +0 -14
  700. package/ts/types/Number.ts +0 -56
  701. package/ts/types/Object.ts +0 -53
  702. package/ts/types/Record.ts +0 -25
  703. package/ts/types/String.ts +0 -56
  704. package/ts/types/Symbol.ts +0 -19
  705. package/ts/types/Tuple.ts +0 -50
  706. package/ts/types/Undefined.ts +0 -8
  707. package/ts/types/Union.ts +0 -46
  708. package/ts/types/Unknown.ts +0 -9
  709. package/ts/types/analyze.spec.ts +0 -979
  710. package/ts/types/analyze.ts +0 -170
  711. package/ts/types/check.spec.ts +0 -12
  712. package/ts/types/check.ts +0 -26
  713. package/ts/types/conform.spec.ts +0 -7
  714. package/ts/types/conform.ts +0 -27
  715. package/ts/types/getPlainAnalysisReport.spec.ts +0 -365
  716. package/ts/types/getPlainAnalysisReport.ts +0 -115
  717. package/ts/types/index.ts +0 -28
  718. package/ts/types/optional.ts +0 -30
  719. package/ts/types/required.ts +0 -30
  720. package/ts/types/satisfy.accept.ts +0 -39
  721. package/ts/types/satisfy.spec.ts +0 -600
  722. package/ts/types/satisfy.ts +0 -27
  723. package/ts/types/types.ts +0 -10
  724. package/ts/utils/as.spec.ts +0 -46
@@ -1,36 +1,36 @@
1
- export type { ANotB, BNotA, LeftJoin } from './ANotB'
2
- export type { AnyRecord } from './AnyRecord'
3
- export * from './everyKey'
4
- export type { ExcludePropType } from './ExcludePropType'
5
- export * from './facade'
6
- export * from './filterKey'
7
- export * from './findKey'
8
- export * from './forEachKey'
9
- export * from './getField'
10
- export * from './hasKey'
11
- export * from './hasProperty'
12
- export type { IsDisjoint } from './IsDisjoint'
13
- export type { IsRecord } from './IsRecord'
14
- export type { KeysOfOptional } from './KeyofOptional'
15
- export type { KeysWithDiffType } from './KeysWithDiffType'
16
- export type { KeyTypes } from './KeyTypes'
17
- export type { KnownKeys } from './KnownKeys'
18
- export * from './mapKey'
19
- export * from './mapProperties'
20
- export * from './omit'
21
- export type { OptionalKeys } from './OptionalKeys'
22
- export type { PartialExcept, PartialOmit, PartialPick } from './Partial'
23
- export * from './pick'
24
- export * from './record'
25
- export type { RecursiveIntersect } from './RecursiveIntersect'
26
- export type { RecursivePartial } from './RecursivePartial'
27
- export type { RecursiveRequired } from './RecursiveRequired'
28
- export * from './reduceKey'
29
- export * from './replaceProperty'
30
- export type { RequiredExcept, RequiredPick } from './Required'
31
- export type { RequiredKeys } from './RequiredKeys'
32
- export * from './someKey'
33
- export * from './split'
34
- export type { SpreadRecord } from './SpreadRecord'
35
- export * from './typeOverrideIncompatible'
36
- export type { ValueOf } from './ValueOf'
1
+ export type { ANotB, BNotA, LeftJoin } from './ANotB.js'
2
+ export type { AnyRecord } from './AnyRecord.js'
3
+ export * from './everyKey.js'
4
+ export type { ExcludePropType } from './ExcludePropType.js'
5
+ export * from './facade.js'
6
+ export * from './filterKey.js'
7
+ export * from './findKey.js'
8
+ export * from './forEachKey.js'
9
+ export * from './getField.js'
10
+ export * from './hasKey.js'
11
+ export * from './hasProperty.js'
12
+ export type { IsDisjoint } from './IsDisjoint.js'
13
+ export type { IsRecord } from './IsRecord.js'
14
+ export type { KeysOfOptional } from './KeyofOptional.js'
15
+ export type { KeysWithDiffType } from './KeysWithDiffType.js'
16
+ export type { KeyTypes } from './KeyTypes.js'
17
+ export type { KnownKeys } from './KnownKeys.js'
18
+ export * from './mapKey.js'
19
+ export * from './mapProperties.js'
20
+ export * from './omit.js'
21
+ export type { OptionalKeys } from './OptionalKeys.js'
22
+ export type { PartialExcept, PartialOmit, PartialPick } from './Partial.js'
23
+ export * from './pick.js'
24
+ export * from './record.js'
25
+ export type { RecursiveIntersect } from './RecursiveIntersect.js'
26
+ export type { RecursivePartial } from './RecursivePartial.js'
27
+ export type { RecursiveRequired } from './RecursiveRequired.js'
28
+ export * from './reduceKey.js'
29
+ export * from './replaceProperty.js'
30
+ export type { RequiredExcept, RequiredPick } from './Required.js'
31
+ export type { RequiredKeys } from './RequiredKeys.js'
32
+ export * from './someKey.js'
33
+ export * from './split.js'
34
+ export type { SpreadRecord } from './SpreadRecord.js'
35
+ export * from './typeOverrideIncompatible.js'
36
+ export type { ValueOf } from './ValueOf.js'
@@ -1,4 +1,4 @@
1
- import { KeyTypes } from './KeyTypes'
1
+ import { KeyTypes } from './KeyTypes.js'
2
2
 
3
3
  export function mapKey<R, S extends Record<KeyTypes, any>, T = any>(
4
4
  subject: S,
@@ -1,6 +1,6 @@
1
- import { AnyRecord } from './AnyRecord'
2
- import { reduceByKey } from './reduceKey'
3
- import { ValueOf } from './ValueOf'
1
+ import type { AnyRecord } from './AnyRecord.js'
2
+ import { reduceByKey } from './reduceKey.js'
3
+ import { ValueOf } from './ValueOf.js'
4
4
 
5
5
  /**
6
6
  * An Object-specific version of `map`.
package/ts/object/omit.ts CHANGED
@@ -1,36 +1,36 @@
1
- import { AnyRecord, reduceByKey } from '../object'
2
- import { UnionKeys } from '../UnionKeys'
3
- import { Pick } from './pick'
4
-
5
- // by Titian Cernicova-Dragomir
6
- // https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347
7
- // type-zoo
8
- export type Omit<T, K extends UnionKeys<T>> = T extends T
9
- ? keyof T extends K
10
- // eslint-disable-next-line @typescript-eslint/ban-types
11
- ? {}
12
- : Pick<T, Exclude<keyof T, K>> : never
13
-
14
- /**
15
- * @deprecated replaced by `Omit`
16
- */
17
- export type Except<T, K extends keyof T> = Omit<T, K>
18
-
19
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>>(subject: T, prop1: P1): Omit<T, P1>
20
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2): Omit<T, P1 | P2>
21
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3): Omit<T, P1 | P2 | P3>
22
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Omit<T, P1 | P2 | P3 | P4>
23
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Omit<T, P1 | P2 | P3 | P4 | P5>
24
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Omit<T, P1 | P2 | P3 | P4 | P5 | P6>
25
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7>
26
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8>
27
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9>
28
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
29
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
30
- export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
31
- export function omit<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
32
- return reduceByKey(subject, (p, k) => {
33
- if (props.indexOf(k) === -1) p[k] = subject[k]
34
- return p
35
- }, {} as AnyRecord)
36
- }
1
+ import { AnyRecord, reduceByKey } from '../object/index.js'
2
+ import { UnionKeys } from '../UnionKeys.js'
3
+ import { Pick } from './pick.js'
4
+
5
+ // by Titian Cernicova-Dragomir
6
+ // https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347
7
+ // type-zoo
8
+ export type Omit<T, K extends UnionKeys<T>> = T extends T
9
+ ? keyof T extends K
10
+ // eslint-disable-next-line @typescript-eslint/ban-types
11
+ ? {}
12
+ : Pick<T, Exclude<keyof T, K>> : never
13
+
14
+ /**
15
+ * @deprecated replaced by `Omit`
16
+ */
17
+ export type Except<T, K extends keyof T> = Omit<T, K>
18
+
19
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>>(subject: T, prop1: P1): Omit<T, P1>
20
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2): Omit<T, P1 | P2>
21
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3): Omit<T, P1 | P2 | P3>
22
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Omit<T, P1 | P2 | P3 | P4>
23
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Omit<T, P1 | P2 | P3 | P4 | P5>
24
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Omit<T, P1 | P2 | P3 | P4 | P5 | P6>
25
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7>
26
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8>
27
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9>
28
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
29
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
30
+ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
31
+ export function omit<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
32
+ return reduceByKey(subject, (p, k) => {
33
+ if (props.indexOf(k) === -1) p[k] = subject[k]
34
+ return p
35
+ }, {} as AnyRecord)
36
+ }
package/ts/object/pick.ts CHANGED
@@ -1,35 +1,35 @@
1
- import { UnionKeys } from '../UnionKeys'
2
- import { AnyRecord } from './AnyRecord'
3
- import { reduceByKey } from './reduceKey'
4
-
5
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>>(subject: T, prop1: P1): Pick<T, P1>
6
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2): Pick<T, P1 | P2>
7
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3): Pick<T, P1 | P2 | P3>
8
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Pick<T, P1 | P2 | P3 | P4>
9
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Pick<T, P1 | P2 | P3 | P4 | P5>
10
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Pick<T, P1 | P2 | P3 | P4 | P5 | P6>
11
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7>
12
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8>
13
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9>
14
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
15
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
16
- export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
17
- export function pick<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
18
- return reduceByKey(subject, (p, k) => {
19
- if (props.indexOf(k) >= 0) p[k] = subject[k]
20
- return p
21
- }, {} as T)
22
- }
23
-
24
- /**
25
- * Pick properties `K` from `T`.
26
- * Works with union.
27
- *
28
- * Original type by Titian Cernicova-Dragomir
29
- * @see <https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347>
30
- */
31
- export type Pick<T, K extends UnionKeys<T>> = T extends unknown ? Pick._<T, keyof T & K> : never
32
-
33
- export namespace Pick {
34
- export type _<T, K extends keyof T> = { [P in K]: T[P] }
35
- }
1
+ import { UnionKeys } from '../UnionKeys.js'
2
+ import type { AnyRecord } from './AnyRecord.js'
3
+ import { reduceByKey } from './reduceKey.js'
4
+
5
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>>(subject: T, prop1: P1): Pick<T, P1>
6
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2): Pick<T, P1 | P2>
7
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3): Pick<T, P1 | P2 | P3>
8
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Pick<T, P1 | P2 | P3 | P4>
9
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Pick<T, P1 | P2 | P3 | P4 | P5>
10
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Pick<T, P1 | P2 | P3 | P4 | P5 | P6>
11
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7>
12
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8>
13
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9>
14
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
15
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
16
+ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
17
+ export function pick<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
18
+ return reduceByKey(subject, (p, k) => {
19
+ if (props.indexOf(k) >= 0) p[k] = subject[k]
20
+ return p
21
+ }, {} as T)
22
+ }
23
+
24
+ /**
25
+ * Pick properties `K` from `T`.
26
+ * Works with union.
27
+ *
28
+ * Original type by Titian Cernicova-Dragomir
29
+ * @see <https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347>
30
+ */
31
+ export type Pick<T, K extends UnionKeys<T>> = T extends unknown ? Pick._<T, keyof T & K> : never
32
+
33
+ export namespace Pick {
34
+ export type _<T, K extends keyof T> = { [P in K]: T[P] }
35
+ }
@@ -1,6 +1,6 @@
1
- import { KeyTypes } from 'type-plus'
2
- import { Widen } from '../utils'
3
- import { AnyRecord } from './AnyRecord'
1
+ import { Widen } from '../utils/index.js'
2
+ import type { AnyRecord } from './AnyRecord.js'
3
+ import { KeyTypes } from './KeyTypes.js'
4
4
 
5
5
  /**
6
6
  * Creates a `Record<Key, Value>`
@@ -1,4 +1,4 @@
1
- import { KeyTypes } from './KeyTypes'
1
+ import type { KeyTypes } from './KeyTypes.js'
2
2
 
3
3
  export function reduceByKey<S extends Record<KeyTypes, any>, T>(
4
4
  subject: S,
@@ -1,4 +1,4 @@
1
- import { AnyRecord } from './AnyRecord'
1
+ import type { AnyRecord } from './AnyRecord.js'
2
2
 
3
3
  export type ReplaceProperty<
4
4
  T extends AnyRecord,
@@ -1,4 +1,4 @@
1
- import { KeyTypes } from './KeyTypes'
1
+ import type { KeyTypes } from './KeyTypes.js'
2
2
 
3
3
  export function someKey<S extends Record<KeyTypes, any>, T = any>(
4
4
  subject: S,
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
- import { AnyRecord } from './AnyRecord'
3
- import { Omit } from './omit'
4
- import { reduceByKey } from './reduceKey'
2
+ import type { AnyRecord } from './AnyRecord.js'
3
+ import type { Omit } from './omit.js'
4
+ import { reduceByKey } from './reduceKey.js'
5
5
 
6
6
  type Splitter<T extends AnyRecord> = Partial<{ [k in keyof T]: T[k] | undefined }>
7
7
  export type Split<T extends AnyRecord, S extends AnyRecord> = {
@@ -1,10 +1,10 @@
1
- import { ANotB, AnyRecord } from '.'
2
-
3
- export function typeOverrideIncompatible<A extends AnyRecord>() {
4
- return function <B extends AnyRecord>(source: B, override: ANotB<A, B>): A {
5
- return {
6
- ...source,
7
- ...override,
8
- }
9
- }
10
- }
1
+ import type { ANotB, AnyRecord } from './index.js'
2
+
3
+ export function typeOverrideIncompatible<A extends AnyRecord>() {
4
+ return function <B extends AnyRecord>(source: B, override: ANotB<A, B>): A {
5
+ return {
6
+ ...source,
7
+ ...override,
8
+ }
9
+ }
10
+ }
@@ -1,5 +1,5 @@
1
- import { NotExtendable } from './Extends'
2
- import { IsEmptyObject } from './IsEmptyObject'
1
+ import type { NotExtendable } from './Extends.js'
2
+ import type { IsEmptyObject } from './IsEmptyObject.js'
3
3
 
4
4
  /**
5
5
  * Can `A` assign to `B`
@@ -1,12 +1,12 @@
1
- export * from './CanAssign'
2
- export type { Equal, IsEqual, IsNotEqual, NotEqual } from './Equal'
3
- export type { Extendable, IsExtend, IsNotExtend, NotExtendable } from './Extends'
4
- export type { If } from './If'
5
- export * from './isType'
6
- export type { And, Not, Or, Xor } from './logical'
7
- export type { IsEmptyObject } from './IsEmptyObject'
1
+ export * from './CanAssign.js'
2
+ export type { Equal, IsEqual, IsNotEqual, NotEqual } from './Equal.js'
3
+ export type { Extendable, IsExtend, IsNotExtend, NotExtendable } from './Extends.js'
4
+ export type { If } from './If.js'
5
+ export * from './isType.js'
6
+ export type { And, Not, Or, Xor } from './logical.js'
7
+ export type { IsEmptyObject } from './IsEmptyObject.js'
8
8
 
9
- import { IsExtend } from './Extends'
9
+ import type { IsExtend } from './Extends.js'
10
10
 
11
11
  export type IsLiteral<T extends number | string, Then = true, Else = false> = number extends T ?
12
12
  Else :
@@ -1,30 +1,30 @@
1
- import { AnyConstructor, isConstructor } from '../class'
2
- import { Equal } from './Equal'
3
-
4
- export function isType<T>(subject: T): subject is T
5
- export function isType<T>(subject: unknown, validator: (s: T) => boolean): subject is T
6
- export function isType<T extends AnyConstructor>(subject: unknown, constructor: T): subject is InstanceType<T>
7
- export function isType(subject: unknown, validator?: AnyConstructor | ((s: unknown) => boolean)) {
8
- if (validator) {
9
- if (isConstructor(validator))
10
- return subject instanceof validator
11
- else
12
- return validator(subject)
13
- }
14
- return true
15
- }
16
-
17
- isType.t = function <T extends true>(subject?: T) {
18
- return subject === undefined || subject === true
19
- }
20
- isType.f = function <T extends false>(subject?: T) {
21
- return subject === undefined || subject === false
22
- }
23
-
24
- /**
25
- * are types A and B equals/not equals.
26
- * Slightly easier to use then `isType.t<>()` and `isType.f<>()`,
27
- * when doing type level only equality comparison as you don't have to import `Equal<>`.
28
- */
29
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
- isType.equal = function <C extends Equal<A, B>, A, B>() { }
1
+ import { AnyConstructor, isConstructor } from '../class/index.js'
2
+ import type { Equal } from './Equal.js'
3
+
4
+ export function isType<T>(subject: T): subject is T
5
+ export function isType<T>(subject: unknown, validator: (s: T) => boolean): subject is T
6
+ export function isType<T extends AnyConstructor>(subject: unknown, constructor: T): subject is InstanceType<T>
7
+ export function isType(subject: unknown, validator?: AnyConstructor | ((s: unknown) => boolean)) {
8
+ if (validator) {
9
+ if (isConstructor(validator))
10
+ return subject instanceof validator
11
+ else
12
+ return validator(subject)
13
+ }
14
+ return true
15
+ }
16
+
17
+ isType.t = function <T extends true>(subject?: T) {
18
+ return subject === undefined || subject === true
19
+ }
20
+ isType.f = function <T extends false>(subject?: T) {
21
+ return subject === undefined || subject === false
22
+ }
23
+
24
+ /**
25
+ * are types A and B equals/not equals.
26
+ * Slightly easier to use then `isType.t<>()` and `isType.f<>()`,
27
+ * when doing type level only equality comparison as you don't have to import `Equal<>`.
28
+ */
29
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
+ isType.equal = function <C extends Equal<A, B>, A, B>() { }
@@ -1,4 +1,4 @@
1
- import { PromiseValue } from './PromiseValue'
1
+ import type { PromiseValue } from './PromiseValue.js'
2
2
 
3
3
  /**
4
4
  * Merging value types from multiple promises.
@@ -1,4 +1,4 @@
1
- export * from './isPromise'
2
- export type { PromiseValue } from './PromiseValue'
3
- export type { PromiseValueMerge } from './PromiseValueMerge'
4
- export * from './mapSeries'
1
+ export * from './isPromise.js'
2
+ export type { PromiseValue } from './PromiseValue.js'
3
+ export type { PromiseValueMerge } from './PromiseValueMerge.js'
4
+ export * from './mapSeries.js'
@@ -1 +1 @@
1
- export * from './stub'
1
+ export * from './stub.js'
@@ -1,6 +1,6 @@
1
1
  import { requiredDeep } from 'unpartial'
2
- import { AnyFunction } from '../function'
3
- import { RecursivePartial } from '../object'
2
+ import type { AnyFunction } from '../function/index.js'
3
+ import type { RecursivePartial } from '../object/index.js'
4
4
 
5
5
  export namespace stub {
6
6
  export type Param<T> = T extends AnyFunction ? T : RecursivePartial<T>
package/ts/utils/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './as'
2
- export type { NonNull } from './NonNull'
3
- export type { NonUndefined } from './NonUndefined'
4
- export type { Widen } from './Widen'
1
+ export * from './as.js'
2
+ export type { NonNull } from './NonNull.js'
3
+ export type { NonUndefined } from './NonUndefined.js'
4
+ export type { Widen } from './Widen.js'
@@ -1,29 +0,0 @@
1
- import { assertType, canAssign, ComposableTypes, NonComposableTypes } from '.'
2
-
3
- test('ComposableTypes includes object, array, and function', () => {
4
- assertType<ComposableTypes>({})
5
- assertType<ComposableTypes>([])
6
- // function is composable because you can do
7
- // `Object.assign(fn, { ... })
8
- assertType<ComposableTypes>(() => { })
9
-
10
- assertType.isTrue(canAssign<ComposableTypes>(false)(null))
11
- assertType.isTrue(canAssign<ComposableTypes>(false)(undefined))
12
- assertType.isTrue(canAssign<ComposableTypes>(false)(1))
13
- assertType.isTrue(canAssign<ComposableTypes>(false)(true))
14
- assertType.isTrue(canAssign<ComposableTypes>(false)(''))
15
- assertType.isTrue(canAssign<ComposableTypes>(false)(Symbol()))
16
- })
17
-
18
- test('NonComposableType excludes object, array, and function', () => {
19
- assertType<NonComposableTypes>(null)
20
- assertType<NonComposableTypes>(undefined)
21
- assertType<NonComposableTypes>(true)
22
- assertType<NonComposableTypes>(1)
23
- assertType<NonComposableTypes>('')
24
- assertType<NonComposableTypes>(Symbol())
25
-
26
- assertType.isTrue(canAssign<NonComposableTypes>(false)({}))
27
- assertType.isTrue(canAssign<NonComposableTypes>(false)([]))
28
- assertType.isTrue(canAssign<NonComposableTypes>(false)(() => { }))
29
- })
@@ -1,43 +0,0 @@
1
- import { assertType } from './assertion'
2
- import { JSONObject, JSONTypes } from './JSONTypes'
3
- import { isType } from './predicates'
4
-
5
- test('empty object', () => {
6
- assertType<JSONTypes>({})
7
- })
8
-
9
- test('empty array', () => {
10
- assertType<JSONTypes>([])
11
- })
12
-
13
- test('string array', () => {
14
- assertType<JSONTypes>(['a'])
15
- })
16
-
17
- test('JSONObject', () => {
18
- isType<JSONObject>({})
19
- })
20
-
21
- describe('JSONTypes.get', () => {
22
- test('cast to T | undefined without props', () => {
23
- const a = JSONTypes.get<string>('abc')
24
- isType<string | undefined>(a)
25
- expect(a).toBe('abc')
26
- })
27
- test('get object props', () => {
28
- const a = JSONTypes.get<string>({ a: { b: 'abc' } }, 'a', 'b')
29
- isType<string | undefined>(a)
30
- expect(a).toBe('abc')
31
- })
32
-
33
- test('get array entry', () => {
34
- const a = JSONTypes.get<string>(['abc'], 0)
35
- isType<string | undefined>(a)
36
- expect(a).toBe('abc')
37
- })
38
- test('nested', () => {
39
- const a = JSONTypes.get<string>({ a: { b: [{ c: 'abc' }] } }, 'a', 'b', 0, 'c')
40
- isType<string | undefined>(a)
41
- expect(a).toBe('abc')
42
- })
43
- })
@@ -1,20 +0,0 @@
1
- import { assertType, CommonPropKeys, Equal } from '..'
2
-
3
- test('no common key returns never', () => {
4
- type S = [{ a: number }, { b: number }]
5
- type A = CommonPropKeys<S>
6
- assertType.isTrue(true as Equal<A, never>)
7
- })
8
-
9
- test('single common key', () => {
10
- type S = [{ a: number, c: number }, { a: number, b: number }]
11
- type A = CommonPropKeys<S>
12
- assertType.isTrue(true as Equal<A, 'a'>)
13
- })
14
-
15
- test('multiple common keys', () => {
16
- type S = [{ a: number, b: number }, { a: number, b: number }]
17
-
18
- type A = CommonPropKeys<S>
19
- assertType.isTrue(true as Equal<A, 'a' | 'b'>)
20
- })
@@ -1,21 +0,0 @@
1
- import { Concat, Equal, isType } from '..'
2
-
3
- test('concat array', () => {
4
- type A = Concat<string[], boolean[]>
5
- isType.t<Equal<Array<string | boolean>, A>>()
6
- })
7
-
8
- test('concat tuples', () => {
9
- type A = Concat<[1, 2, 3], [4, 5]>
10
- isType.t<Equal<[1, 2, 3, 4, 5], A>>()
11
- })
12
-
13
- test('concat array to tuple', () => {
14
- type A = Concat<string[], [1, 2, 3]>
15
- isType.t<Equal<Array<string | 1 | 2 | 3>, A>>()
16
- })
17
-
18
- test('concat tuple to array', () => {
19
- type A = Concat<[1, 2, 3], string[]>
20
- isType.t<Equal<[1, 2, 3, ...string[]], A>>()
21
- })
@@ -1,46 +0,0 @@
1
- import { CreateTuple, isType } from '..'
2
-
3
- test('create empty tuple', () => {
4
- isType.equal<true, [], CreateTuple<0>>()
5
- })
6
-
7
- test('single element', () => {
8
- isType.equal<true, [any], CreateTuple<1>>()
9
- })
10
-
11
- test('multiple elements', () => {
12
- type A = CreateTuple<3>
13
- isType.equal<true, [any, any, any], A>()
14
- })
15
-
16
- test('override element type', () => {
17
- type A = CreateTuple<5, 1>
18
- isType.equal<true, [1, 1, 1, 1, 1], A>()
19
- })
20
-
21
- test('negative length gets never', () => {
22
- isType.equal<true, never, CreateTuple<-1>>()
23
- })
24
-
25
- test('Can create tuple up to 7000', () => {
26
- type A = CreateTuple<7000>['length']
27
-
28
- isType.equal<true, 7000, A>()
29
- })
30
-
31
- test('L = number gets array', () => {
32
- type A = CreateTuple<number, 1>
33
- isType.equal<true, 1[], A>()
34
- })
35
-
36
- test('Non whole number gets never', () => {
37
- type A = CreateTuple<1.2>
38
-
39
- isType.equal<true, never, A>()
40
- })
41
-
42
- test('can specify fail type', () => {
43
- type A = CreateTuple<1.2, 1, null>
44
-
45
- isType.equal<true, null, A>()
46
- })