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.
- package/cjs/ComposableTypes.d.ts +1 -0
- package/cjs/ComposableTypes.d.ts.map +1 -0
- package/cjs/JSONTypes.d.ts +1 -0
- package/cjs/JSONTypes.d.ts.map +1 -0
- package/cjs/JSONTypes.js.map +1 -1
- package/cjs/PrimitiveTypes.d.ts +1 -0
- package/cjs/PrimitiveTypes.d.ts.map +1 -0
- package/cjs/UnionKeys.d.ts +1 -0
- package/cjs/UnionKeys.d.ts.map +1 -0
- package/cjs/array/CommonPropKeys.d.ts +2 -1
- package/cjs/array/CommonPropKeys.d.ts.map +1 -0
- package/cjs/array/Concat.d.ts +1 -0
- package/cjs/array/Concat.d.ts.map +1 -0
- package/cjs/array/CreateTuple.d.ts +2 -1
- package/cjs/array/CreateTuple.d.ts.map +1 -0
- package/cjs/array/Filter.d.ts +1 -0
- package/cjs/array/Filter.d.ts.map +1 -0
- package/cjs/array/FindFirst.d.ts +1 -0
- package/cjs/array/FindFirst.d.ts.map +1 -0
- package/cjs/array/FindLast.d.ts +1 -0
- package/cjs/array/FindLast.d.ts.map +1 -0
- package/cjs/array/Head.d.ts +1 -0
- package/cjs/array/Head.d.ts.map +1 -0
- package/cjs/array/IntersectOfProps.d.ts +3 -2
- package/cjs/array/IntersectOfProps.d.ts.map +1 -0
- package/cjs/array/IsArray.d.ts +1 -0
- package/cjs/array/IsArray.d.ts.map +1 -0
- package/cjs/array/Last.d.ts +1 -0
- package/cjs/array/Last.d.ts.map +1 -0
- package/cjs/array/PadLeft.d.ts +4 -3
- package/cjs/array/PadLeft.d.ts.map +1 -0
- package/cjs/array/Reverse.d.ts +1 -0
- package/cjs/array/Reverse.d.ts.map +1 -0
- package/cjs/array/Some.d.ts +4 -3
- package/cjs/array/Some.d.ts.map +1 -0
- package/cjs/array/Tail.d.ts +2 -1
- package/cjs/array/Tail.d.ts.map +1 -0
- package/cjs/array/UnionOfProps.d.ts +3 -2
- package/cjs/array/UnionOfProps.d.ts.map +1 -0
- package/cjs/array/UnionOfValues.d.ts +1 -0
- package/cjs/array/UnionOfValues.d.ts.map +1 -0
- package/cjs/array/drop.d.ts +3 -2
- package/cjs/array/drop.d.ts.map +1 -0
- package/cjs/array/index.d.ts +20 -19
- package/cjs/array/index.d.ts.map +1 -0
- package/cjs/array/index.js +3 -3
- package/cjs/array/index.js.map +1 -1
- package/cjs/array/literalArray.d.ts +2 -1
- package/cjs/array/literalArray.d.ts.map +1 -0
- package/cjs/array/reduceWhile.d.ts +1 -0
- package/cjs/array/reduceWhile.d.ts.map +1 -0
- package/cjs/assertion/assertType.d.ts +3 -2
- package/cjs/assertion/assertType.d.ts.map +1 -0
- package/cjs/assertion/assertType.js +3 -3
- package/cjs/assertion/assertType.js.map +1 -1
- package/cjs/assertion/index.d.ts +2 -1
- package/cjs/assertion/index.d.ts.map +1 -0
- package/cjs/assertion/index.js +1 -1
- package/cjs/assertion/index.js.map +1 -1
- package/cjs/class/AnyConstructor.d.ts +1 -0
- package/cjs/class/AnyConstructor.d.ts.map +1 -0
- package/cjs/class/index.d.ts +3 -2
- package/cjs/class/index.d.ts.map +1 -0
- package/cjs/class/index.js +1 -1
- package/cjs/class/index.js.map +1 -1
- package/cjs/class/isConstructor.d.ts +2 -1
- package/cjs/class/isConstructor.d.ts.map +1 -0
- package/cjs/function/AnyFunction.d.ts +1 -0
- package/cjs/function/AnyFunction.d.ts.map +1 -0
- package/cjs/function/index.d.ts +2 -1
- package/cjs/function/index.d.ts.map +1 -0
- package/cjs/functional/ChainFn.d.ts +1 -0
- package/cjs/functional/ChainFn.d.ts.map +1 -0
- package/cjs/functional/compose.d.ts +3 -2
- package/cjs/functional/compose.d.ts.map +1 -0
- package/cjs/functional/index.d.ts +3 -2
- package/cjs/functional/index.d.ts.map +1 -0
- package/cjs/functional/index.js +1 -1
- package/cjs/functional/index.js.map +1 -1
- package/cjs/index.d.ts +18 -17
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +14 -14
- package/cjs/index.js.map +1 -1
- package/cjs/math/Abs.d.ts +2 -1
- package/cjs/math/Abs.d.ts.map +1 -0
- package/cjs/math/Add.d.ts +7 -6
- package/cjs/math/Add.d.ts.map +1 -0
- package/cjs/math/Digit.d.ts +5 -4
- package/cjs/math/Digit.d.ts.map +1 -0
- package/cjs/math/GreaterThan.d.ts +7 -6
- package/cjs/math/GreaterThan.d.ts.map +1 -0
- package/cjs/math/IsPositive.d.ts +1 -0
- package/cjs/math/IsPositive.d.ts.map +1 -0
- package/cjs/math/IsWhole.d.ts +1 -0
- package/cjs/math/IsWhole.d.ts.map +1 -0
- package/cjs/math/Max.d.ts +3 -2
- package/cjs/math/Max.d.ts.map +1 -0
- package/cjs/math/Subtract.d.ts +7 -6
- package/cjs/math/Subtract.d.ts.map +1 -0
- package/cjs/math/index.d.ts +9 -8
- package/cjs/math/index.d.ts.map +1 -0
- package/cjs/nodejs/index.d.ts +2 -1
- package/cjs/nodejs/index.d.ts.map +1 -0
- package/cjs/nodejs/index.js +1 -1
- package/cjs/nodejs/index.js.map +1 -1
- package/cjs/nodejs/isNodeError.d.ts +1 -0
- package/cjs/nodejs/isNodeError.d.ts.map +1 -0
- package/cjs/nominal-types/Brand.d.ts +3 -2
- package/cjs/nominal-types/Brand.d.ts.map +1 -0
- package/cjs/nominal-types/Brand.js +2 -2
- package/cjs/nominal-types/Brand.js.map +1 -1
- package/cjs/nominal-types/Flavor.d.ts +3 -2
- package/cjs/nominal-types/Flavor.d.ts.map +1 -0
- package/cjs/nominal-types/Flavor.js +2 -2
- package/cjs/nominal-types/Flavor.js.map +1 -1
- package/cjs/nominal-types/index.d.ts +4 -3
- package/cjs/nominal-types/index.d.ts.map +1 -0
- package/cjs/nominal-types/index.js +3 -3
- package/cjs/nominal-types/index.js.map +1 -1
- package/cjs/nominal-types/nominalMatch.d.ts +3 -2
- package/cjs/nominal-types/nominalMatch.d.ts.map +1 -0
- package/cjs/nominal-types/nominalMatch.js +2 -2
- package/cjs/nominal-types/nominalMatch.js.map +1 -1
- package/cjs/nominal-types/types.d.ts +1 -0
- package/cjs/nominal-types/types.d.ts.map +1 -0
- package/cjs/object/ANotB.d.ts +5 -4
- package/cjs/object/ANotB.d.ts.map +1 -0
- package/cjs/object/AnyRecord.d.ts +1 -0
- package/cjs/object/AnyRecord.d.ts.map +1 -0
- package/cjs/object/ExcludePropType.d.ts +1 -0
- package/cjs/object/ExcludePropType.d.ts.map +1 -0
- package/cjs/object/IsDisjoint.d.ts +4 -3
- package/cjs/object/IsDisjoint.d.ts.map +1 -0
- package/cjs/object/IsRecord.d.ts +1 -0
- package/cjs/object/IsRecord.d.ts.map +1 -0
- package/cjs/object/KeyTypes.d.ts +1 -0
- package/cjs/object/KeyTypes.d.ts.map +1 -0
- package/cjs/object/KeyofOptional.d.ts +1 -0
- package/cjs/object/KeyofOptional.d.ts.map +1 -0
- package/cjs/object/KeysWithDiffType.d.ts +4 -3
- package/cjs/object/KeysWithDiffType.d.ts.map +1 -0
- package/cjs/object/KnownKeys.d.ts +2 -1
- package/cjs/object/KnownKeys.d.ts.map +1 -0
- package/cjs/object/OptionalKeys.d.ts +2 -1
- package/cjs/object/OptionalKeys.d.ts.map +1 -0
- package/cjs/object/Partial.d.ts +4 -3
- package/cjs/object/Partial.d.ts.map +1 -0
- package/cjs/object/RecursiveIntersect.d.ts +2 -1
- package/cjs/object/RecursiveIntersect.d.ts.map +1 -0
- package/cjs/object/RecursivePartial.d.ts +2 -1
- package/cjs/object/RecursivePartial.d.ts.map +1 -0
- package/cjs/object/RecursiveRequired.d.ts +2 -1
- package/cjs/object/RecursiveRequired.d.ts.map +1 -0
- package/cjs/object/Required.d.ts +1 -0
- package/cjs/object/Required.d.ts.map +1 -0
- package/cjs/object/RequiredKeys.d.ts +3 -2
- package/cjs/object/RequiredKeys.d.ts.map +1 -0
- package/cjs/object/SpreadRecord.d.ts +2 -1
- package/cjs/object/SpreadRecord.d.ts.map +1 -0
- package/cjs/object/ValueOf.d.ts +1 -0
- package/cjs/object/ValueOf.d.ts.map +1 -0
- package/cjs/object/everyKey.d.ts +2 -1
- package/cjs/object/everyKey.d.ts.map +1 -0
- package/cjs/object/facade.d.ts +2 -1
- package/cjs/object/facade.d.ts.map +1 -0
- package/cjs/object/filterKey.d.ts +2 -1
- package/cjs/object/filterKey.d.ts.map +1 -0
- package/cjs/object/findKey.d.ts +2 -1
- package/cjs/object/findKey.d.ts.map +1 -0
- package/cjs/object/forEachKey.d.ts +2 -1
- package/cjs/object/forEachKey.d.ts.map +1 -0
- package/cjs/object/getField.d.ts +2 -1
- package/cjs/object/getField.d.ts.map +1 -0
- package/cjs/object/hasKey.d.ts +2 -1
- package/cjs/object/hasKey.d.ts.map +1 -0
- package/cjs/object/hasProperty.d.ts +2 -1
- package/cjs/object/hasProperty.d.ts.map +1 -0
- package/cjs/object/index.d.ts +37 -36
- package/cjs/object/index.d.ts.map +1 -0
- package/cjs/object/index.js +18 -18
- package/cjs/object/index.js.map +1 -1
- package/cjs/object/mapKey.d.ts +2 -1
- package/cjs/object/mapKey.d.ts.map +1 -0
- package/cjs/object/mapProperties.d.ts +3 -2
- package/cjs/object/mapProperties.d.ts.map +1 -0
- package/cjs/object/mapProperties.js +2 -2
- package/cjs/object/mapProperties.js.map +1 -1
- package/cjs/object/omit.d.ts +4 -3
- package/cjs/object/omit.d.ts.map +1 -0
- package/cjs/object/omit.js +2 -2
- package/cjs/object/omit.js.map +1 -1
- package/cjs/object/pick.d.ts +3 -2
- package/cjs/object/pick.d.ts.map +1 -0
- package/cjs/object/pick.js +2 -2
- package/cjs/object/pick.js.map +1 -1
- package/cjs/object/record.d.ts +3 -2
- package/cjs/object/record.d.ts.map +1 -0
- package/cjs/object/reduceKey.d.ts +2 -1
- package/cjs/object/reduceKey.d.ts.map +1 -0
- package/cjs/object/replaceProperty.d.ts +2 -1
- package/cjs/object/replaceProperty.d.ts.map +1 -0
- package/cjs/object/someKey.d.ts +2 -1
- package/cjs/object/someKey.d.ts.map +1 -0
- package/cjs/object/split.d.ts +3 -2
- package/cjs/object/split.d.ts.map +1 -0
- package/cjs/object/split.js +3 -3
- package/cjs/object/split.js.map +1 -1
- package/cjs/object/typeOverrideIncompatible.d.ts +2 -1
- package/cjs/object/typeOverrideIncompatible.d.ts.map +1 -0
- package/cjs/predicates/CanAssign.d.ts +3 -2
- package/cjs/predicates/CanAssign.d.ts.map +1 -0
- package/cjs/predicates/Equal.d.ts +1 -0
- package/cjs/predicates/Equal.d.ts.map +1 -0
- package/cjs/predicates/Extends.d.ts +1 -0
- package/cjs/predicates/Extends.d.ts.map +1 -0
- package/cjs/predicates/If.d.ts +1 -0
- package/cjs/predicates/If.d.ts.map +1 -0
- package/cjs/predicates/IsEmptyObject.d.ts +1 -0
- package/cjs/predicates/IsEmptyObject.d.ts.map +1 -0
- package/cjs/predicates/index.d.ts +9 -8
- package/cjs/predicates/index.d.ts.map +1 -0
- package/cjs/predicates/index.js +2 -2
- package/cjs/predicates/index.js.map +1 -1
- package/cjs/predicates/isType.d.ts +3 -2
- package/cjs/predicates/isType.d.ts.map +1 -0
- package/cjs/predicates/isType.js +2 -2
- package/cjs/predicates/isType.js.map +1 -1
- package/cjs/predicates/logical.d.ts +1 -0
- package/cjs/predicates/logical.d.ts.map +1 -0
- package/cjs/promise/PromiseValue.d.ts +1 -0
- package/cjs/promise/PromiseValue.d.ts.map +1 -0
- package/cjs/promise/PromiseValueMerge.d.ts +2 -1
- package/cjs/promise/PromiseValueMerge.d.ts.map +1 -0
- package/cjs/promise/index.d.ts +5 -4
- package/cjs/promise/index.d.ts.map +1 -0
- package/cjs/promise/index.js +2 -2
- package/cjs/promise/index.js.map +1 -1
- package/cjs/promise/isPromise.d.ts +1 -0
- package/cjs/promise/isPromise.d.ts.map +1 -0
- package/cjs/promise/mapSeries.d.ts +1 -0
- package/cjs/promise/mapSeries.d.ts.map +1 -0
- package/cjs/testing/index.d.ts +2 -1
- package/cjs/testing/index.d.ts.map +1 -0
- package/cjs/testing/index.js +1 -1
- package/cjs/testing/index.js.map +1 -1
- package/cjs/testing/stub.d.ts +3 -2
- package/cjs/testing/stub.d.ts.map +1 -0
- package/cjs/utils/NonNull.d.ts +1 -0
- package/cjs/utils/NonNull.d.ts.map +1 -0
- package/cjs/utils/NonUndefined.d.ts +1 -0
- package/cjs/utils/NonUndefined.d.ts.map +1 -0
- package/cjs/utils/Widen.d.ts +1 -0
- package/cjs/utils/Widen.d.ts.map +1 -0
- package/cjs/utils/as.d.ts +1 -0
- package/cjs/utils/as.d.ts.map +1 -0
- package/cjs/utils/index.d.ts +5 -4
- package/cjs/utils/index.d.ts.map +1 -0
- package/cjs/utils/index.js +1 -1
- package/cjs/utils/index.js.map +1 -1
- package/esm/ComposableTypes.d.ts +3 -0
- package/esm/ComposableTypes.d.ts.map +1 -0
- package/esm/JSONTypes.d.ts +12 -0
- package/esm/JSONTypes.d.ts.map +1 -0
- package/esm/JSONTypes.js.map +1 -1
- package/esm/PrimitiveTypes.d.ts +2 -0
- package/esm/PrimitiveTypes.d.ts.map +1 -0
- package/esm/UnionKeys.d.ts +2 -0
- package/esm/UnionKeys.d.ts.map +1 -0
- package/esm/array/CommonPropKeys.d.ts +4 -0
- package/esm/array/CommonPropKeys.d.ts.map +1 -0
- package/esm/array/Concat.d.ts +2 -0
- package/esm/array/Concat.d.ts.map +1 -0
- package/esm/array/CreateTuple.d.ts +3 -0
- package/esm/array/CreateTuple.d.ts.map +1 -0
- package/esm/array/Filter.d.ts +3 -0
- package/esm/array/Filter.d.ts.map +1 -0
- package/esm/array/FindFirst.d.ts +3 -0
- package/esm/array/FindFirst.d.ts.map +1 -0
- package/esm/array/FindLast.d.ts +2 -0
- package/esm/array/FindLast.d.ts.map +1 -0
- package/esm/array/Head.d.ts +2 -0
- package/esm/array/Head.d.ts.map +1 -0
- package/esm/array/IntersectOfProps.d.ts +5 -0
- package/esm/array/IntersectOfProps.d.ts.map +1 -0
- package/esm/array/IsArray.d.ts +2 -0
- package/esm/array/IsArray.d.ts.map +1 -0
- package/esm/array/Last.d.ts +2 -0
- package/esm/array/Last.d.ts.map +1 -0
- package/esm/array/PadLeft.d.ts +5 -0
- package/esm/array/PadLeft.d.ts.map +1 -0
- package/esm/array/Reverse.d.ts +2 -0
- package/esm/array/Reverse.d.ts.map +1 -0
- package/esm/array/Some.d.ts +8 -0
- package/esm/array/Some.d.ts.map +1 -0
- package/esm/array/Tail.d.ts +3 -0
- package/esm/array/Tail.d.ts.map +1 -0
- package/esm/array/UnionOfProps.d.ts +5 -0
- package/esm/array/UnionOfProps.d.ts.map +1 -0
- package/esm/array/UnionOfValues.d.ts +3 -0
- package/esm/array/UnionOfValues.d.ts.map +1 -0
- package/esm/array/drop.d.ts +13 -0
- package/esm/array/drop.d.ts.map +1 -0
- package/esm/array/index.d.ts +20 -0
- package/esm/array/index.d.ts.map +1 -0
- package/esm/array/index.js +3 -3
- package/esm/array/index.js.map +1 -1
- package/esm/array/literalArray.d.ts +3 -0
- package/esm/array/literalArray.d.ts.map +1 -0
- package/esm/array/reduceWhile.d.ts +2 -0
- package/esm/array/reduceWhile.d.ts.map +1 -0
- package/esm/assertion/assertType.d.ts +29 -0
- package/esm/assertion/assertType.d.ts.map +1 -0
- package/esm/assertion/assertType.js +1 -1
- package/esm/assertion/assertType.js.map +1 -1
- package/esm/assertion/index.d.ts +2 -0
- package/esm/assertion/index.d.ts.map +1 -0
- package/esm/assertion/index.js +1 -1
- package/esm/assertion/index.js.map +1 -1
- package/esm/class/AnyConstructor.d.ts +2 -0
- package/esm/class/AnyConstructor.d.ts.map +1 -0
- package/esm/class/index.d.ts +3 -0
- package/esm/class/index.d.ts.map +1 -0
- package/esm/class/index.js +1 -1
- package/esm/class/index.js.map +1 -1
- package/esm/class/isConstructor.d.ts +3 -0
- package/esm/class/isConstructor.d.ts.map +1 -0
- package/esm/function/AnyFunction.d.ts +2 -0
- package/esm/function/AnyFunction.d.ts.map +1 -0
- package/esm/function/index.d.ts +2 -0
- package/esm/function/index.d.ts.map +1 -0
- package/esm/functional/ChainFn.d.ts +3 -0
- package/esm/functional/ChainFn.d.ts.map +1 -0
- package/esm/functional/compose.d.ts +4 -0
- package/esm/functional/compose.d.ts.map +1 -0
- package/esm/functional/index.d.ts +3 -0
- package/esm/functional/index.d.ts.map +1 -0
- package/esm/functional/index.js +1 -1
- package/esm/functional/index.js.map +1 -1
- package/esm/index.d.ts +19 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +14 -14
- package/esm/index.js.map +1 -1
- package/esm/math/Abs.d.ts +3 -0
- package/esm/math/Abs.d.ts.map +1 -0
- package/esm/math/Add.d.ts +16 -0
- package/esm/math/Add.d.ts.map +1 -0
- package/esm/math/Digit.d.ts +97 -0
- package/esm/math/Digit.d.ts.map +1 -0
- package/esm/math/GreaterThan.d.ts +12 -0
- package/esm/math/GreaterThan.d.ts.map +1 -0
- package/esm/math/IsPositive.d.ts +2 -0
- package/esm/math/IsPositive.d.ts.map +1 -0
- package/esm/math/IsWhole.d.ts +2 -0
- package/esm/math/IsWhole.d.ts.map +1 -0
- package/esm/math/Max.d.ts +4 -0
- package/esm/math/Max.d.ts.map +1 -0
- package/esm/math/Subtract.d.ts +13 -0
- package/esm/math/Subtract.d.ts.map +1 -0
- package/esm/math/index.d.ts +9 -0
- package/esm/math/index.d.ts.map +1 -0
- package/esm/nodejs/index.d.ts +2 -0
- package/esm/nodejs/index.d.ts.map +1 -0
- package/esm/nodejs/index.js +1 -1
- package/esm/nodejs/index.js.map +1 -1
- package/esm/nodejs/isNodeError.d.ts +26 -0
- package/esm/nodejs/isNodeError.d.ts.map +1 -0
- package/esm/nominal-types/Brand.d.ts +11 -0
- package/esm/nominal-types/Brand.d.ts.map +1 -0
- package/esm/nominal-types/Brand.js +1 -1
- package/esm/nominal-types/Brand.js.map +1 -1
- package/esm/nominal-types/Flavor.d.ts +8 -0
- package/esm/nominal-types/Flavor.d.ts.map +1 -0
- package/esm/nominal-types/Flavor.js +1 -1
- package/esm/nominal-types/Flavor.js.map +1 -1
- package/esm/nominal-types/index.d.ts +4 -0
- package/esm/nominal-types/index.d.ts.map +1 -0
- package/esm/nominal-types/index.js +3 -3
- package/esm/nominal-types/index.js.map +1 -1
- package/esm/nominal-types/nominalMatch.d.ts +5 -0
- package/esm/nominal-types/nominalMatch.d.ts.map +1 -0
- package/esm/nominal-types/nominalMatch.js +1 -1
- package/esm/nominal-types/nominalMatch.js.map +1 -1
- package/esm/nominal-types/types.d.ts +3 -0
- package/esm/nominal-types/types.d.ts.map +1 -0
- package/esm/object/ANotB.d.ts +14 -0
- package/esm/object/ANotB.d.ts.map +1 -0
- package/esm/object/AnyRecord.d.ts +2 -0
- package/esm/object/AnyRecord.d.ts.map +1 -0
- package/esm/object/ExcludePropType.d.ts +4 -0
- package/esm/object/ExcludePropType.d.ts.map +1 -0
- package/esm/object/IsDisjoint.d.ts +5 -0
- package/esm/object/IsDisjoint.d.ts.map +1 -0
- package/esm/object/IsRecord.d.ts +2 -0
- package/esm/object/IsRecord.d.ts.map +1 -0
- package/esm/object/KeyTypes.d.ts +2 -0
- package/esm/object/KeyTypes.d.ts.map +1 -0
- package/esm/object/KeyofOptional.d.ts +3 -0
- package/esm/object/KeyofOptional.d.ts.map +1 -0
- package/esm/object/KeysWithDiffType.d.ts +7 -0
- package/esm/object/KeysWithDiffType.d.ts.map +1 -0
- package/esm/object/KnownKeys.d.ts +7 -0
- package/esm/object/KnownKeys.d.ts.map +1 -0
- package/esm/object/OptionalKeys.d.ts +8 -0
- package/esm/object/OptionalKeys.d.ts.map +1 -0
- package/esm/object/Partial.d.ts +7 -0
- package/esm/object/Partial.d.ts.map +1 -0
- package/esm/object/RecursiveIntersect.d.ts +5 -0
- package/esm/object/RecursiveIntersect.d.ts.map +1 -0
- package/esm/object/RecursivePartial.d.ts +5 -0
- package/esm/object/RecursivePartial.d.ts.map +1 -0
- package/esm/object/RecursiveRequired.d.ts +5 -0
- package/esm/object/RecursiveRequired.d.ts.map +1 -0
- package/esm/object/Required.d.ts +3 -0
- package/esm/object/Required.d.ts.map +1 -0
- package/esm/object/RequiredKeys.d.ts +7 -0
- package/esm/object/RequiredKeys.d.ts.map +1 -0
- package/esm/object/SpreadRecord.d.ts +3 -0
- package/esm/object/SpreadRecord.d.ts.map +1 -0
- package/esm/object/ValueOf.d.ts +2 -0
- package/esm/object/ValueOf.d.ts.map +1 -0
- package/esm/object/everyKey.d.ts +3 -0
- package/esm/object/everyKey.d.ts.map +1 -0
- package/esm/object/facade.d.ts +14 -0
- package/esm/object/facade.d.ts.map +1 -0
- package/esm/object/filterKey.d.ts +3 -0
- package/esm/object/filterKey.d.ts.map +1 -0
- package/esm/object/findKey.d.ts +3 -0
- package/esm/object/findKey.d.ts.map +1 -0
- package/esm/object/forEachKey.d.ts +3 -0
- package/esm/object/forEachKey.d.ts.map +1 -0
- package/esm/object/getField.d.ts +4 -0
- package/esm/object/getField.d.ts.map +1 -0
- package/esm/object/hasKey.d.ts +4 -0
- package/esm/object/hasKey.d.ts.map +1 -0
- package/esm/object/hasProperty.d.ts +3 -0
- package/esm/object/hasProperty.d.ts.map +1 -0
- package/esm/object/index.d.ts +37 -0
- package/esm/object/index.d.ts.map +1 -0
- package/esm/object/index.js +18 -18
- package/esm/object/index.js.map +1 -1
- package/esm/object/mapKey.d.ts +3 -0
- package/esm/object/mapKey.d.ts.map +1 -0
- package/esm/object/mapProperties.d.ts +6 -0
- package/esm/object/mapProperties.d.ts.map +1 -0
- package/esm/object/mapProperties.js +1 -1
- package/esm/object/mapProperties.js.map +1 -1
- package/esm/object/omit.d.ts +18 -0
- package/esm/object/omit.d.ts.map +1 -0
- package/esm/object/omit.js +1 -1
- package/esm/object/omit.js.map +1 -1
- package/esm/object/pick.d.ts +21 -0
- package/esm/object/pick.d.ts.map +1 -0
- package/esm/object/pick.js +1 -1
- package/esm/object/pick.js.map +1 -1
- package/esm/object/record.d.ts +4 -0
- package/esm/object/record.d.ts.map +1 -0
- package/esm/object/reduceKey.d.ts +4 -0
- package/esm/object/reduceKey.d.ts.map +1 -0
- package/esm/object/replaceProperty.d.ts +6 -0
- package/esm/object/replaceProperty.d.ts.map +1 -0
- package/esm/object/someKey.d.ts +3 -0
- package/esm/object/someKey.d.ts.map +1 -0
- package/esm/object/split.d.ts +82 -0
- package/esm/object/split.d.ts.map +1 -0
- package/esm/object/split.js +1 -1
- package/esm/object/split.js.map +1 -1
- package/esm/object/typeOverrideIncompatible.d.ts +3 -0
- package/esm/object/typeOverrideIncompatible.d.ts.map +1 -0
- package/esm/predicates/CanAssign.d.ts +7 -0
- package/esm/predicates/CanAssign.d.ts.map +1 -0
- package/esm/predicates/Equal.d.ts +5 -0
- package/esm/predicates/Equal.d.ts.map +1 -0
- package/esm/predicates/Extends.d.ts +5 -0
- package/esm/predicates/Extends.d.ts.map +1 -0
- package/esm/predicates/If.d.ts +2 -0
- package/esm/predicates/If.d.ts.map +1 -0
- package/esm/predicates/IsEmptyObject.d.ts +2 -0
- package/esm/predicates/IsEmptyObject.d.ts.map +1 -0
- package/esm/predicates/index.d.ts +12 -0
- package/esm/predicates/index.d.ts.map +1 -0
- package/esm/predicates/index.js +2 -2
- package/esm/predicates/index.js.map +1 -1
- package/esm/predicates/isType.d.ts +11 -0
- package/esm/predicates/isType.d.ts.map +1 -0
- package/esm/predicates/isType.js +1 -1
- package/esm/predicates/isType.js.map +1 -1
- package/esm/predicates/logical.d.ts +5 -0
- package/esm/predicates/logical.d.ts.map +1 -0
- package/esm/promise/PromiseValue.d.ts +2 -0
- package/esm/promise/PromiseValue.d.ts.map +1 -0
- package/esm/promise/PromiseValueMerge.d.ts +3 -0
- package/esm/promise/PromiseValueMerge.d.ts.map +1 -0
- package/esm/promise/index.d.ts +5 -0
- package/esm/promise/index.d.ts.map +1 -0
- package/esm/promise/index.js +2 -2
- package/esm/promise/index.js.map +1 -1
- package/esm/promise/isPromise.d.ts +2 -0
- package/esm/promise/isPromise.d.ts.map +1 -0
- package/esm/promise/mapSeries.d.ts +2 -0
- package/esm/promise/mapSeries.d.ts.map +1 -0
- package/esm/testing/index.d.ts +2 -0
- package/esm/testing/index.d.ts.map +1 -0
- package/esm/testing/index.js +1 -1
- package/esm/testing/index.js.map +1 -1
- package/esm/testing/stub.d.ts +10 -0
- package/esm/testing/stub.d.ts.map +1 -0
- package/esm/utils/NonNull.d.ts +2 -0
- package/esm/utils/NonNull.d.ts.map +1 -0
- package/esm/utils/NonUndefined.d.ts +2 -0
- package/esm/utils/NonUndefined.d.ts.map +1 -0
- package/esm/utils/Widen.d.ts +2 -0
- package/esm/utils/Widen.d.ts.map +1 -0
- package/esm/utils/as.d.ts +7 -0
- package/esm/utils/as.d.ts.map +1 -0
- package/esm/utils/index.d.ts +5 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +1 -1
- package/esm/utils/index.js.map +1 -1
- package/package.json +47 -44
- package/ts/JSONTypes.ts +17 -18
- package/ts/array/CommonPropKeys.ts +18 -18
- package/ts/array/CreateTuple.ts +1 -1
- package/ts/array/IntersectOfProps.ts +20 -20
- package/ts/array/PadLeft.ts +3 -3
- package/ts/array/Some.ts +3 -3
- package/ts/array/Tail.ts +1 -1
- package/ts/array/UnionOfProps.ts +18 -18
- package/ts/array/drop.ts +2 -2
- package/ts/array/index.ts +19 -19
- package/ts/array/literalArray.ts +1 -1
- package/ts/assertion/assertType.ts +105 -105
- package/ts/assertion/index.ts +1 -1
- package/ts/binary/_binary.ts +1 -1
- package/ts/binary/index.ts +2 -2
- package/ts/class/index.ts +2 -2
- package/ts/class/isConstructor.ts +1 -1
- package/ts/function/index.ts +1 -1
- package/ts/functional/Maybe.ts +19 -19
- package/ts/functional/compose.ts +2 -2
- package/ts/functional/index.ts +3 -3
- package/ts/index.ts +19 -19
- package/ts/math/Abs.ts +1 -1
- package/ts/math/Add.ts +6 -6
- package/ts/math/Digit.ts +4 -4
- package/ts/math/GreaterThan.ts +6 -6
- package/ts/math/Max.ts +2 -2
- package/ts/math/Subtract.ts +6 -6
- package/ts/math/index.ts +8 -8
- package/ts/nodejs/index.ts +1 -1
- package/ts/nominal-types/Brand.ts +2 -2
- package/ts/nominal-types/Flavor.ts +32 -32
- package/ts/nominal-types/index.ts +3 -3
- package/ts/nominal-types/nominalMatch.ts +3 -3
- package/ts/object/ANotB.ts +21 -21
- package/ts/object/IsDisjoint.ts +12 -12
- package/ts/object/KeysWithDiffType.ts +3 -3
- package/ts/object/KnownKeys.ts +1 -1
- package/ts/object/OptionalKeys.ts +1 -1
- package/ts/object/Partial.ts +3 -3
- package/ts/object/RecursiveIntersect.ts +1 -1
- package/ts/object/RecursivePartial.ts +1 -1
- package/ts/object/RecursiveRequired.ts +1 -1
- package/ts/object/RequiredKeys.ts +2 -2
- package/ts/object/SpreadRecord.ts +6 -6
- package/ts/object/everyKey.ts +1 -1
- package/ts/object/facade.ts +39 -39
- package/ts/object/filterKey.ts +1 -1
- package/ts/object/findKey.ts +1 -1
- package/ts/object/forEachKey.ts +1 -1
- package/ts/object/getField.ts +1 -1
- package/ts/object/hasKey.ts +7 -7
- package/ts/object/hasProperty.ts +1 -1
- package/ts/object/index.ts +36 -36
- package/ts/object/mapKey.ts +1 -1
- package/ts/object/mapProperties.ts +3 -3
- package/ts/object/omit.ts +36 -36
- package/ts/object/pick.ts +35 -35
- package/ts/object/record.ts +3 -3
- package/ts/object/reduceKey.ts +1 -1
- package/ts/object/replaceProperty.ts +1 -1
- package/ts/object/someKey.ts +1 -1
- package/ts/object/split.ts +3 -3
- package/ts/object/typeOverrideIncompatible.ts +10 -10
- package/ts/predicates/CanAssign.ts +2 -2
- package/ts/predicates/index.ts +8 -8
- package/ts/predicates/isType.ts +30 -30
- package/ts/promise/PromiseValueMerge.ts +1 -1
- package/ts/promise/index.ts +4 -4
- package/ts/testing/index.ts +1 -1
- package/ts/testing/stub.ts +2 -2
- package/ts/utils/index.ts +4 -4
- package/ts/ComposableTypes.spec.ts +0 -29
- package/ts/JSONTypes.spec.ts +0 -43
- package/ts/array/CommonPropKeys.spec.ts +0 -20
- package/ts/array/Concat.spec.ts +0 -21
- package/ts/array/CreateTuple.spec.ts +0 -46
- package/ts/array/DropFirst.spec.ts +0 -21
- package/ts/array/DropLast.spec.ts +0 -21
- package/ts/array/DropMatch.spec.ts +0 -234
- package/ts/array/Filter.spec.ts +0 -107
- package/ts/array/FindFirst.spec.ts +0 -27
- package/ts/array/FindLast.spec.ts +0 -27
- package/ts/array/Head.spec.ts +0 -21
- package/ts/array/IntersectOfProps.spec.ts +0 -14
- package/ts/array/Last.spec.ts +0 -32
- package/ts/array/PadLeft.spec.ts +0 -26
- package/ts/array/Reverse.spec.ts +0 -17
- package/ts/array/Some.spec.ts +0 -79
- package/ts/array/Tail.spec.ts +0 -32
- package/ts/array/UnionOfProps.spec.ts +0 -14
- package/ts/array/UnionOfValues.spec.ts +0 -11
- package/ts/array/literalArray.spec.ts +0 -7
- package/ts/array/reduceWhile.spec.ts +0 -27
- package/ts/assertion/assertType.spec.ts +0 -507
- package/ts/binary/index.spec.ts +0 -28
- package/ts/class/AnyConstructor.spec.ts +0 -13
- package/ts/class/isConstructor.spec.ts +0 -35
- package/ts/function/AnyFunction.spec.ts +0 -21
- package/ts/functional/ChainFn.spec.ts +0 -7
- package/ts/functional/Maybe.spec.ts +0 -42
- package/ts/functional/compose.spec.ts +0 -32
- package/ts/index.spec.ts +0 -7
- package/ts/math/Abs.spec.ts +0 -14
- package/ts/math/Add.spec.ts +0 -82
- package/ts/math/Digit.spec.ts +0 -184
- package/ts/math/GreaterThan.spec.ts +0 -75
- package/ts/math/IsPositive.spec.ts +0 -15
- package/ts/math/IsWhole.spec.ts +0 -19
- package/ts/math/Max.spec.ts +0 -59
- package/ts/math/Subtract.spec.ts +0 -40
- package/ts/nodejs/isNodeError.spec.ts +0 -11
- package/ts/nominal-types/Brand.spec.ts +0 -43
- package/ts/nominal-types/Flavor.spec.ts +0 -51
- package/ts/nominal-types/nominalMatch.spec.ts +0 -54
- package/ts/object/ANotB.spec.ts +0 -78
- package/ts/object/ExcludePropType.spec.ts +0 -13
- package/ts/object/IsDisjoint.spec.ts +0 -25
- package/ts/object/IsRecord.spec.ts +0 -22
- package/ts/object/KeyTypes.spec.ts +0 -9
- package/ts/object/KeyofOptional.spec.ts +0 -8
- package/ts/object/KeysWithDiffType.spec.ts +0 -21
- package/ts/object/KnownKeys.spec.ts +0 -39
- package/ts/object/OptionalKeys.spec.ts +0 -23
- package/ts/object/Partial.spec.ts +0 -49
- package/ts/object/RecursiveIntersect.spec.ts +0 -39
- package/ts/object/RecursiveRequired.spec.ts +0 -57
- package/ts/object/Required.spec.ts +0 -29
- package/ts/object/RequiredKeys.spec.ts +0 -24
- package/ts/object/SpreadRecord.spec.ts +0 -14
- package/ts/object/ValueOf.spec.ts +0 -36
- package/ts/object/everyKey.spec.ts +0 -11
- package/ts/object/facade.spec.ts +0 -22
- package/ts/object/filterKey.spec.ts +0 -8
- package/ts/object/findKey.spec.ts +0 -8
- package/ts/object/forEachKey.spec.ts +0 -9
- package/ts/object/getField.spec.ts +0 -21
- package/ts/object/hasKey.spec.ts +0 -29
- package/ts/object/hasProperty.spec.ts +0 -15
- package/ts/object/mapKey.spec.ts +0 -8
- package/ts/object/mapProperties.spec.ts +0 -27
- package/ts/object/omit.spec.ts +0 -104
- package/ts/object/pick.spec.ts +0 -66
- package/ts/object/record.spec.ts +0 -54
- package/ts/object/reduceKey.spec.ts +0 -18
- package/ts/object/replaceProperty.spec.ts +0 -16
- package/ts/object/run.ts +0 -0
- package/ts/object/someKey.spec.ts +0 -6
- package/ts/object/split.spec.ts +0 -119
- package/ts/object/typeOverrideIncompatible.spec.ts +0 -24
- package/ts/predicates/CanAssign.spec.ts +0 -57
- package/ts/predicates/Equal.spec.ts +0 -71
- package/ts/predicates/If.spec.ts +0 -14
- package/ts/predicates/IsEmptyObject.spec.ts +0 -15
- package/ts/predicates/index.spec.ts +0 -73
- package/ts/predicates/isType.spec.ts +0 -106
- package/ts/predicates/logical.spec.ts +0 -59
- package/ts/promise/PromiseValue.spec.ts +0 -6
- package/ts/promise/PromiseValueMerge.spec.ts +0 -7
- package/ts/promise/isPromise.spec.ts +0 -26
- package/ts/promise/mapSeries.spec.ts +0 -12
- package/ts/testing/stub.spec.ts +0 -58
- package/ts/type-checker/.eslintrc.json +0 -7
- package/ts/type-checker/AnyType.ts +0 -13
- package/ts/type-checker/Boolean.ts +0 -34
- package/ts/type-checker/Tuple.spec.ts +0 -15
- package/ts/type-checker/Tuple.ts +0 -14
- package/ts/type-checker/buildTypes.spec.ts +0 -28
- package/ts/type-checker/index.ts +0 -0
- package/ts/type-checker/typeChecker.spec.ts +0 -14
- package/ts/type-checker/typeChecker.ts +0 -52
- package/ts/type-checker/types.ts +0 -19
- package/ts/types/.eslintrc.json +0 -7
- package/ts/types/AllType.ts +0 -31
- package/ts/types/Any.ts +0 -7
- package/ts/types/Array.ts +0 -43
- package/ts/types/BigInt.ts +0 -36
- package/ts/types/Boolean.ts +0 -36
- package/ts/types/Generate.ts +0 -48
- package/ts/types/Null.ts +0 -14
- package/ts/types/Number.ts +0 -56
- package/ts/types/Object.ts +0 -53
- package/ts/types/Record.ts +0 -25
- package/ts/types/String.ts +0 -56
- package/ts/types/Symbol.ts +0 -19
- package/ts/types/Tuple.ts +0 -50
- package/ts/types/Undefined.ts +0 -8
- package/ts/types/Union.ts +0 -46
- package/ts/types/Unknown.ts +0 -9
- package/ts/types/analyze.spec.ts +0 -979
- package/ts/types/analyze.ts +0 -170
- package/ts/types/check.spec.ts +0 -12
- package/ts/types/check.ts +0 -26
- package/ts/types/conform.spec.ts +0 -7
- package/ts/types/conform.ts +0 -27
- package/ts/types/getPlainAnalysisReport.spec.ts +0 -365
- package/ts/types/getPlainAnalysisReport.ts +0 -115
- package/ts/types/index.ts +0 -28
- package/ts/types/optional.ts +0 -30
- package/ts/types/required.ts +0 -30
- package/ts/types/satisfy.accept.ts +0 -39
- package/ts/types/satisfy.spec.ts +0 -600
- package/ts/types/satisfy.ts +0 -27
- package/ts/types/types.ts +0 -10
- package/ts/utils/as.spec.ts +0 -46
package/ts/functional/Maybe.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Brand } from '../nominal-types'
|
|
2
|
-
import { Equal } from '../predicates'
|
|
3
|
-
import { Widen } from '../utils'
|
|
4
|
-
|
|
5
|
-
export type Maybe<T> = Just<T> | None<T>
|
|
6
|
-
export type Just<T> = Brand<'maybe', T> & { unwrap(): T }
|
|
7
|
-
export type None<T> = Brand<'maybe', void> & { unwrap(): T }
|
|
8
|
-
|
|
9
|
-
export function just<T>(value: T):
|
|
10
|
-
Equal<T, undefined | null> extends true ?
|
|
11
|
-
None<T> :
|
|
12
|
-
Just<Widen<NonNullable<T>>> {
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
14
|
-
return { unwrap() { return value } } as any
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function none<T>(): None<T> {
|
|
18
|
-
return { unwrap() { } } as None<T>
|
|
19
|
-
}
|
|
1
|
+
import type { Brand } from '../nominal-types/index.js'
|
|
2
|
+
import type { Equal } from '../predicates/index.js'
|
|
3
|
+
import type { Widen } from '../utils/index.js'
|
|
4
|
+
|
|
5
|
+
export type Maybe<T> = Just<T> | None<T>
|
|
6
|
+
export type Just<T> = Brand<'maybe', T> & { unwrap(): T }
|
|
7
|
+
export type None<T> = Brand<'maybe', void> & { unwrap(): T }
|
|
8
|
+
|
|
9
|
+
export function just<T>(value: T):
|
|
10
|
+
Equal<T, undefined | null> extends true ?
|
|
11
|
+
None<T> :
|
|
12
|
+
Just<Widen<NonNullable<T>>> {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
14
|
+
return { unwrap() { return value } } as any
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function none<T>(): None<T> {
|
|
18
|
+
return { unwrap() { } } as None<T>
|
|
19
|
+
}
|
package/ts/functional/compose.ts
CHANGED
package/ts/functional/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
// export * from './Maybe'
|
|
2
|
-
export type { ChainFn, EndoFn } from './ChainFn'
|
|
3
|
-
export * from './compose'
|
|
1
|
+
// export * from './Maybe.js'
|
|
2
|
+
export type { ChainFn, EndoFn } from './ChainFn.js'
|
|
3
|
+
export * from './compose.js'
|
package/ts/index.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
// import * as types from './types'
|
|
1
|
+
// import * as types from './types/index.js'
|
|
2
2
|
export { required, requiredDeep } from 'unpartial'
|
|
3
|
-
export * from './array'
|
|
4
|
-
export * from './assertion'
|
|
5
|
-
export * from './class'
|
|
6
|
-
export type { ComposableTypes, NonComposableTypes } from './ComposableTypes'
|
|
7
|
-
export * from './function'
|
|
8
|
-
export * from './functional'
|
|
9
|
-
export * from './JSONTypes'
|
|
10
|
-
export * from './math'
|
|
11
|
-
export * from './nodejs'
|
|
12
|
-
export * from './nominal-types'
|
|
13
|
-
export * from './object'
|
|
14
|
-
export * from './predicates'
|
|
15
|
-
export type { PrimitiveTypes } from './PrimitiveTypes'
|
|
16
|
-
export * from './promise'
|
|
17
|
-
export * from './testing'
|
|
18
|
-
// export * from './types/optional'
|
|
3
|
+
export * from './array/index.js'
|
|
4
|
+
export * from './assertion/index.js'
|
|
5
|
+
export * from './class/index.js'
|
|
6
|
+
export type { ComposableTypes, NonComposableTypes } from './ComposableTypes.js'
|
|
7
|
+
export * from './function/index.js'
|
|
8
|
+
export * from './functional/index.js'
|
|
9
|
+
export * from './JSONTypes.js'
|
|
10
|
+
export * from './math/index.js'
|
|
11
|
+
export * from './nodejs/index.js'
|
|
12
|
+
export * from './nominal-types/index.js'
|
|
13
|
+
export * from './object/index.js'
|
|
14
|
+
export * from './predicates/index.js'
|
|
15
|
+
export type { PrimitiveTypes } from './PrimitiveTypes.js'
|
|
16
|
+
export * from './promise/index.js'
|
|
17
|
+
export * from './testing/index.js'
|
|
18
|
+
// export * from './types/optional.js'
|
|
19
19
|
// export * from './types/required'
|
|
20
|
-
export type { UnionKeys } from './UnionKeys'
|
|
21
|
-
export * from './utils'
|
|
20
|
+
export type { UnionKeys } from './UnionKeys.js'
|
|
21
|
+
export * from './utils/index.js'
|
|
22
22
|
// export { types, types as T }
|
package/ts/math/Abs.ts
CHANGED
package/ts/math/Add.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { PadLeft } from '../array'
|
|
2
|
-
import type { And } from '../predicates'
|
|
1
|
+
import type { PadLeft } from '../array/index.js'
|
|
2
|
+
import type { And } from '../predicates/index.js'
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
|
-
import type { Digit, DigitArray } from './Digit'
|
|
5
|
-
import type { IsPositive } from './IsPositive'
|
|
6
|
-
import type { IsWhole } from './IsWhole'
|
|
7
|
-
import type { Max } from './Max'
|
|
4
|
+
import type { Digit, DigitArray } from './Digit.js'
|
|
5
|
+
import type { IsPositive } from './IsPositive.js'
|
|
6
|
+
import type { IsWhole } from './IsWhole.js'
|
|
7
|
+
import type { Max } from './Max.js'
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Add two number literals.
|
package/ts/math/Digit.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Tail } from '../array'
|
|
2
|
-
import { And } from '../predicates'
|
|
3
|
-
import { IsPositive } from './IsPositive'
|
|
4
|
-
import { IsWhole } from './IsWhole'
|
|
1
|
+
import type { Tail } from '../array/index.js'
|
|
2
|
+
import type { And } from '../predicates/index.js'
|
|
3
|
+
import type { IsPositive } from './IsPositive.js'
|
|
4
|
+
import type { IsWhole } from './IsWhole.js'
|
|
5
5
|
|
|
6
6
|
export namespace Digit {
|
|
7
7
|
export type ToTuple<T = 1> = {
|
package/ts/math/GreaterThan.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { Head, PadLeft, Tail } from '../array'
|
|
2
|
-
import type { And, Equal, Or, Xor } from '../predicates'
|
|
3
|
-
import type { Digit, DigitArray } from './Digit'
|
|
4
|
-
import type { IsPositive } from './IsPositive'
|
|
5
|
-
import type { IsWhole } from './IsWhole'
|
|
6
|
-
import type { Max } from './Max'
|
|
1
|
+
import type { Head, PadLeft, Tail } from '../array/index.js'
|
|
2
|
+
import type { And, Equal, Or, Xor } from '../predicates/index.js'
|
|
3
|
+
import type { Digit, DigitArray } from './Digit.js'
|
|
4
|
+
import type { IsPositive } from './IsPositive.js'
|
|
5
|
+
import type { IsWhole } from './IsWhole.js'
|
|
6
|
+
import type { Max } from './Max.js'
|
|
7
7
|
|
|
8
8
|
export type GreaterThan<A extends number, B extends number, Fail = never> =
|
|
9
9
|
And<IsWhole<A>, IsWhole<B>> extends false ? Fail :
|
package/ts/math/Max.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Equal } from '../predicates'
|
|
2
|
-
import { GreaterThan } from './GreaterThan'
|
|
1
|
+
import type { Equal } from '../predicates/index.js'
|
|
2
|
+
import { GreaterThan } from './GreaterThan.js'
|
|
3
3
|
|
|
4
4
|
export type Max<A extends number, B extends number, Fail = never> =
|
|
5
5
|
GreaterThan<A, B> extends infer Result ?
|
package/ts/math/Subtract.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { PadLeft, Some, Tail } from '../array'
|
|
2
|
-
import type { And } from '../predicates'
|
|
1
|
+
import type { PadLeft, Some, Tail } from '../array/index.js'
|
|
2
|
+
import type { And } from '../predicates/index.js'
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
|
-
import type { Digit, DigitArray } from './Digit'
|
|
5
|
-
import type { IsPositive } from './IsPositive'
|
|
6
|
-
import type { IsWhole } from './IsWhole'
|
|
7
|
-
import type { Max } from './Max'
|
|
4
|
+
import type { Digit, DigitArray } from './Digit.js'
|
|
5
|
+
import type { IsPositive } from './IsPositive.js'
|
|
6
|
+
import type { IsWhole } from './IsWhole.js'
|
|
7
|
+
import type { Max } from './Max.js'
|
|
8
8
|
|
|
9
9
|
export type Subtract<A extends number, B extends number, Fail = never> =
|
|
10
10
|
And<
|
package/ts/math/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export type { Abs } from './Abs'
|
|
2
|
-
export type { Add, Increment } from './Add'
|
|
3
|
-
export type { Digit, DigitArray } from './Digit'
|
|
4
|
-
export type { GreaterThan } from './GreaterThan'
|
|
5
|
-
export type { IsPositive } from './IsPositive'
|
|
6
|
-
export type { IsWhole } from './IsWhole'
|
|
7
|
-
export type { Max } from './Max'
|
|
8
|
-
export type { Decrement, Subtract } from './Subtract'
|
|
1
|
+
export type { Abs } from './Abs.js'
|
|
2
|
+
export type { Add, Increment } from './Add.js'
|
|
3
|
+
export type { Digit, DigitArray } from './Digit.js'
|
|
4
|
+
export type { GreaterThan } from './GreaterThan.js'
|
|
5
|
+
export type { IsPositive } from './IsPositive.js'
|
|
6
|
+
export type { IsWhole } from './IsWhole.js'
|
|
7
|
+
export type { Max } from './Max.js'
|
|
8
|
+
export type { Decrement, Subtract } from './Subtract.js'
|
package/ts/nodejs/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './isNodeError'
|
|
1
|
+
export * from './isNodeError.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// By Drew Colthorp, <https://spin.atomicobject.com/2018/01/15/typescript-flexible-nominal-typing/#comment-604580>
|
|
2
2
|
// <https://gist.github.com/dcolthorp/aa21cf87d847ae9942106435bf47565d>
|
|
3
3
|
|
|
4
|
-
import { Widen } from '../utils'
|
|
5
|
-
import { typeSym, valueSym } from './types'
|
|
4
|
+
import { Widen } from '../utils/index.js'
|
|
5
|
+
import { typeSym, valueSym } from './types.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Create a "branded" version of a type.
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
// By Drew Colthorp, <https://spin.atomicobject.com/2018/01/15/typescript-flexible-nominal-typing/#comment-604580>
|
|
2
|
-
// <https://gist.github.com/dcolthorp/aa21cf87d847ae9942106435bf47565d>
|
|
3
|
-
|
|
4
|
-
import { Widen } from '../utils'
|
|
5
|
-
import { typeSym } from './types'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create a "flavored" version of a type.
|
|
9
|
-
* TypeScript will disallow mixing flavors,
|
|
10
|
-
* but will allow unflavored values of that type to be passed in where a flavored version is expected.
|
|
11
|
-
* This is a less restrictive form of branding.
|
|
12
|
-
*/
|
|
13
|
-
export type Flavor<F extends string, T> = T & {
|
|
14
|
-
[typeSym]?: F
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Creates a brand creator with the specified type.
|
|
19
|
-
*/
|
|
20
|
-
export function flavor<F extends string>(type: F): <T>(subject: T) => Flavor<F, Widen<T>>
|
|
21
|
-
/**
|
|
22
|
-
* Creates a branded value of specified type.
|
|
23
|
-
*/
|
|
24
|
-
export function flavor<F extends string, T>(type: F, subject: T): Flavor<F, Widen<T>>
|
|
25
|
-
export function flavor(type: string, subject?: unknown) {
|
|
26
|
-
if (subject === undefined) return function <T>(subject: T) { return flavor(type, subject) }
|
|
27
|
-
if (typeof subject === 'object' && subject !== null) {
|
|
28
|
-
// if subject is not an object, the branding will exist only in type-level.
|
|
29
|
-
(subject as { [typeSym]: string })[typeSym] = type
|
|
30
|
-
}
|
|
31
|
-
return subject
|
|
32
|
-
}
|
|
1
|
+
// By Drew Colthorp, <https://spin.atomicobject.com/2018/01/15/typescript-flexible-nominal-typing/#comment-604580>
|
|
2
|
+
// <https://gist.github.com/dcolthorp/aa21cf87d847ae9942106435bf47565d>
|
|
3
|
+
|
|
4
|
+
import type { Widen } from '../utils/index.js'
|
|
5
|
+
import { typeSym } from './types.js'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Create a "flavored" version of a type.
|
|
9
|
+
* TypeScript will disallow mixing flavors,
|
|
10
|
+
* but will allow unflavored values of that type to be passed in where a flavored version is expected.
|
|
11
|
+
* This is a less restrictive form of branding.
|
|
12
|
+
*/
|
|
13
|
+
export type Flavor<F extends string, T> = T & {
|
|
14
|
+
[typeSym]?: F
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates a brand creator with the specified type.
|
|
19
|
+
*/
|
|
20
|
+
export function flavor<F extends string>(type: F): <T>(subject: T) => Flavor<F, Widen<T>>
|
|
21
|
+
/**
|
|
22
|
+
* Creates a branded value of specified type.
|
|
23
|
+
*/
|
|
24
|
+
export function flavor<F extends string, T>(type: F, subject: T): Flavor<F, Widen<T>>
|
|
25
|
+
export function flavor(type: string, subject?: unknown) {
|
|
26
|
+
if (subject === undefined) return function <T>(subject: T) { return flavor(type, subject) }
|
|
27
|
+
if (typeof subject === 'object' && subject !== null) {
|
|
28
|
+
// if subject is not an object, the branding will exist only in type-level.
|
|
29
|
+
(subject as { [typeSym]: string })[typeSym] = type
|
|
30
|
+
}
|
|
31
|
+
return subject
|
|
32
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './Brand'
|
|
2
|
-
export * from './Flavor'
|
|
3
|
-
export * from './nominalMatch'
|
|
1
|
+
export * from './Brand.js'
|
|
2
|
+
export * from './Flavor.js'
|
|
3
|
+
export * from './nominalMatch.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Brand } from './Brand'
|
|
2
|
-
import { Flavor } from './Flavor'
|
|
3
|
-
import { typeSym } from './types'
|
|
1
|
+
import type { Brand } from './Brand.js'
|
|
2
|
+
import type { Flavor } from './Flavor.js'
|
|
3
|
+
import { typeSym } from './types.js'
|
|
4
4
|
|
|
5
5
|
export function nominalMatch<A extends string, B extends A>(a: Brand<A, unknown>, b: Brand<B, unknown>): boolean
|
|
6
6
|
export function nominalMatch<A extends string, B extends A>(a: Flavor<A, unknown>, b: Flavor<B, unknown>): boolean
|
package/ts/object/ANotB.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { Equal } from '../predicates'
|
|
2
|
-
import { AnyRecord } from './AnyRecord'
|
|
3
|
-
import { IsDisjoint } from './IsDisjoint'
|
|
4
|
-
import { KeysWithDiffType } from './KeysWithDiffType'
|
|
5
|
-
|
|
6
|
-
export type ANotB<A extends AnyRecord, B extends AnyRecord> =
|
|
7
|
-
Equal<A, B> extends true
|
|
8
|
-
? never
|
|
9
|
-
: (IsDisjoint<A, B> extends true
|
|
10
|
-
? A
|
|
11
|
-
: { [k in Exclude<keyof A, keyof B> | KeysWithDiffType<A, B>]: A[k] })
|
|
12
|
-
|
|
13
|
-
export type BNotA<A extends AnyRecord, B extends AnyRecord> = ANotB<B, A>
|
|
14
|
-
|
|
15
|
-
export type LeftJoin<A extends AnyRecord, B extends AnyRecord> =
|
|
16
|
-
Equal<A, B> extends true
|
|
17
|
-
? A
|
|
18
|
-
: (IsDisjoint<A, B> extends true
|
|
19
|
-
? A & B
|
|
20
|
-
: { [k in Exclude<keyof A, keyof B>]: A[k] } & { [k in keyof B]: B[k] }
|
|
21
|
-
)
|
|
1
|
+
import type { Equal } from '../predicates/index.js'
|
|
2
|
+
import type { AnyRecord } from './AnyRecord.js'
|
|
3
|
+
import type { IsDisjoint } from './IsDisjoint.js'
|
|
4
|
+
import type { KeysWithDiffType } from './KeysWithDiffType.js'
|
|
5
|
+
|
|
6
|
+
export type ANotB<A extends AnyRecord, B extends AnyRecord> =
|
|
7
|
+
Equal<A, B> extends true
|
|
8
|
+
? never
|
|
9
|
+
: (IsDisjoint<A, B> extends true
|
|
10
|
+
? A
|
|
11
|
+
: { [k in Exclude<keyof A, keyof B> | KeysWithDiffType<A, B>]: A[k] })
|
|
12
|
+
|
|
13
|
+
export type BNotA<A extends AnyRecord, B extends AnyRecord> = ANotB<B, A>
|
|
14
|
+
|
|
15
|
+
export type LeftJoin<A extends AnyRecord, B extends AnyRecord> =
|
|
16
|
+
Equal<A, B> extends true
|
|
17
|
+
? A
|
|
18
|
+
: (IsDisjoint<A, B> extends true
|
|
19
|
+
? A & B
|
|
20
|
+
: { [k in Exclude<keyof A, keyof B>]: A[k] } & { [k in keyof B]: B[k] }
|
|
21
|
+
)
|
package/ts/object/IsDisjoint.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { And, Not } from '../predicates'
|
|
2
|
-
import { AnyRecord } from './AnyRecord'
|
|
3
|
-
import { HasKey } from './hasKey'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Are the two records disjoint from each other.
|
|
7
|
-
* Disjoint means no common property.
|
|
8
|
-
*/
|
|
9
|
-
export type IsDisjoint<
|
|
10
|
-
A extends AnyRecord,
|
|
11
|
-
B extends AnyRecord
|
|
12
|
-
> = And<Not<HasKey<A, keyof B>>, Not<HasKey<B, keyof A>>>
|
|
1
|
+
import { And, Not } from '../predicates/index.js'
|
|
2
|
+
import type { AnyRecord } from './AnyRecord.js'
|
|
3
|
+
import { HasKey } from './hasKey.js'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Are the two records disjoint from each other.
|
|
7
|
+
* Disjoint means no common property.
|
|
8
|
+
*/
|
|
9
|
+
export type IsDisjoint<
|
|
10
|
+
A extends AnyRecord,
|
|
11
|
+
B extends AnyRecord
|
|
12
|
+
> = And<Not<HasKey<A, keyof B>>, Not<HasKey<B, keyof A>>>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ValueOf } from './ValueOf'
|
|
2
|
-
import { IsDisjoint } from './IsDisjoint'
|
|
3
|
-
import { AnyRecord } from './AnyRecord'
|
|
1
|
+
import { ValueOf } from './ValueOf.js'
|
|
2
|
+
import type { IsDisjoint } from './IsDisjoint.js'
|
|
3
|
+
import type { AnyRecord } from './AnyRecord.js'
|
|
4
4
|
|
|
5
5
|
export type KeysWithDiffType<A extends AnyRecord, B extends AnyRecord> =
|
|
6
6
|
IsDisjoint<A, B> extends true ? never :
|
package/ts/object/KnownKeys.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// known from Gerrit Birkeland @Gerrit0
|
|
3
3
|
// https://github.com/Microsoft/TypeScript/issues/25987#issuecomment-408339599
|
|
4
4
|
|
|
5
|
-
import { PrimitiveTypes } from '../PrimitiveTypes'
|
|
5
|
+
import { PrimitiveTypes } from '../PrimitiveTypes.js'
|
|
6
6
|
|
|
7
7
|
// https://github.com/microsoft/TypeScript/issues/25987#issuecomment-441224690
|
|
8
8
|
export type KnownKeys<T> =
|
package/ts/object/Partial.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { UnionKeys } from '../UnionKeys'
|
|
2
|
-
import { Omit } from './omit'
|
|
3
|
-
import { Pick } from './pick'
|
|
1
|
+
import { UnionKeys } from '../UnionKeys.js'
|
|
2
|
+
import { Omit } from './omit.js'
|
|
3
|
+
import { Pick } from './pick.js'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Apply `Partial<>` on the selected properties.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { KeyTypes } from './KeyTypes'
|
|
2
|
-
import { OptionalKeys } from './OptionalKeys'
|
|
1
|
+
import type { KeyTypes } from './KeyTypes.js'
|
|
2
|
+
import type { OptionalKeys } from './OptionalKeys.js'
|
|
3
3
|
|
|
4
4
|
export type RequiredKeys<T extends Record<KeyTypes, any>> = T extends unknown
|
|
5
5
|
? RequiredKeys._<T> : never
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Omit } from '../object'
|
|
2
|
-
|
|
3
|
-
export type SpreadRecord<
|
|
4
|
-
A extends Record<any, any>,
|
|
5
|
-
B extends Record<any, any>
|
|
6
|
-
> = Omit<A, Extract<keyof A, keyof B>> & B
|
|
1
|
+
import type { Omit } from '../object/index.js'
|
|
2
|
+
|
|
3
|
+
export type SpreadRecord<
|
|
4
|
+
A extends Record<any, any>,
|
|
5
|
+
B extends Record<any, any>
|
|
6
|
+
> = Omit<A, Extract<keyof A, keyof B>> & B
|
package/ts/object/everyKey.ts
CHANGED
package/ts/object/facade.ts
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { AnyRecord } from './AnyRecord'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* creates a facade of the subject.
|
|
5
|
-
*/
|
|
6
|
-
export function facade<T extends AnyRecord, P1 extends keyof T>(subject: T, prop1: P1): Pick<T, P1>
|
|
7
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T>(subject: T, prop1: P1, prop2: P2): Pick<T, P1 | P2>
|
|
8
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3): Pick<T, P1 | P2 | P3>
|
|
9
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Pick<T, P1 | P2 | P3 | P4>
|
|
10
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Pick<T, P1 | P2 | P3 | P4 | P5>
|
|
11
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Pick<T, P1 | P2 | P3 | P4 | P5 | P6>
|
|
12
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof 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>
|
|
13
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof 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>
|
|
14
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof 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>
|
|
15
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof 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>
|
|
16
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof T, P11 extends keyof 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>
|
|
17
|
-
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof T, P11 extends keyof T, P12 extends keyof 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>
|
|
18
|
-
export function facade<T extends AnyRecord>(subject: T, ...props: (keyof T)[]) {
|
|
19
|
-
return props.reduce((p, k) => {
|
|
20
|
-
const prop = subject[k]
|
|
21
|
-
if (typeof prop === 'function') {
|
|
22
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
|
23
|
-
p[k] = prop.bind(subject)
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
Object.defineProperty(p, k, {
|
|
27
|
-
get() {
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
29
|
-
return subject[k]
|
|
30
|
-
},
|
|
31
|
-
set(value: any) {
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment
|
|
33
|
-
return subject[k] = value
|
|
34
|
-
},
|
|
35
|
-
})
|
|
36
|
-
}
|
|
37
|
-
return p
|
|
38
|
-
}, {} as T)
|
|
39
|
-
}
|
|
1
|
+
import type { AnyRecord } from './AnyRecord.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* creates a facade of the subject.
|
|
5
|
+
*/
|
|
6
|
+
export function facade<T extends AnyRecord, P1 extends keyof T>(subject: T, prop1: P1): Pick<T, P1>
|
|
7
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T>(subject: T, prop1: P1, prop2: P2): Pick<T, P1 | P2>
|
|
8
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3): Pick<T, P1 | P2 | P3>
|
|
9
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4): Pick<T, P1 | P2 | P3 | P4>
|
|
10
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5): Pick<T, P1 | P2 | P3 | P4 | P5>
|
|
11
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6): Pick<T, P1 | P2 | P3 | P4 | P5 | P6>
|
|
12
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof 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>
|
|
13
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof 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>
|
|
14
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof 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>
|
|
15
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof 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>
|
|
16
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof T, P11 extends keyof 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>
|
|
17
|
+
export function facade<T extends AnyRecord, P1 extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T, P6 extends keyof T, P7 extends keyof T, P8 extends keyof T, P9 extends keyof T, P10 extends keyof T, P11 extends keyof T, P12 extends keyof 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>
|
|
18
|
+
export function facade<T extends AnyRecord>(subject: T, ...props: (keyof T)[]) {
|
|
19
|
+
return props.reduce((p, k) => {
|
|
20
|
+
const prop = subject[k]
|
|
21
|
+
if (typeof prop === 'function') {
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
|
23
|
+
p[k] = prop.bind(subject)
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
Object.defineProperty(p, k, {
|
|
27
|
+
get() {
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
29
|
+
return subject[k]
|
|
30
|
+
},
|
|
31
|
+
set(value: any) {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment
|
|
33
|
+
return subject[k] = value
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
return p
|
|
38
|
+
}, {} as T)
|
|
39
|
+
}
|
package/ts/object/filterKey.ts
CHANGED
package/ts/object/findKey.ts
CHANGED
package/ts/object/forEachKey.ts
CHANGED
package/ts/object/getField.ts
CHANGED
package/ts/object/hasKey.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AnyRecord } from './AnyRecord'
|
|
2
|
-
|
|
3
|
-
export type HasKey<T, K, Then = true, Else = false> = K extends keyof T ? Then : Else
|
|
4
|
-
|
|
5
|
-
export function hasKey<T extends AnyRecord, K extends string>(subject: T, ...keys: K[]): HasKey<T, K> {
|
|
6
|
-
return !keys.some(key => !subject[key]) as unknown as HasKey<T, K>
|
|
7
|
-
}
|
|
1
|
+
import type { AnyRecord } from './AnyRecord.js'
|
|
2
|
+
|
|
3
|
+
export type HasKey<T, K, Then = true, Else = false> = K extends keyof T ? Then : Else
|
|
4
|
+
|
|
5
|
+
export function hasKey<T extends AnyRecord, K extends string>(subject: T, ...keys: K[]): HasKey<T, K> {
|
|
6
|
+
return !keys.some(key => !subject[key]) as unknown as HasKey<T, K>
|
|
7
|
+
}
|
package/ts/object/hasProperty.ts
CHANGED