fix(deps): update dependency ts-pattern to v5 #344
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^4.2.2
->^5.0.0
Release Notes
gvergnaud/ts-pattern (ts-pattern)
v5.6.0
Compare Source
This release contains two changes:
Typecheck pattern when using isMatching with 2 parameter.
It used to be possible to pass a pattern than could never match to
isMatching
. The new version checks that the provide pattern does match the value in second parameter:Do not use
P.infer
as an inference pointWhen using
P.infer<Pattern>
to type a function argument, like in the following example:TypeScript could get confused and find type errors in the wrong spot:
This new version fixes this problem.
What's Changed
P.infer
andisMatching
by @gvergnaud in https://github.com/gvergnaud/ts-pattern/pull/302Full Changelog: gvergnaud/ts-pattern@v5.5.0...v5.6.0
v5.5.0
Compare Source
What's Changed
New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.4.0...v5.5.0
v5.4.0
Compare Source
The main thing — Faster type checking 🚀
This release brings a significant perf improvement to exhaustiveness checking, which led to a ~16% decrease in the time to type-check the full test suite of TS-Pattern:
What's Changed
InvertPatternForExcludeInternal
to work with readonly array by @changwoolab in https://github.com/gvergnaud/ts-pattern/pull/284New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.3.1...v5.4.0
v5.3.1
Compare Source
Pattern-matching on symbol keys
Symbols used to be ignored in object patterns. They are now taken into account:
.exhaustive
now throws a custom errorPeople have expressed the need to differentiate runtime errors that
.exhaustive()
might throw when the input is of an unexpected type from other runtime errors that could have happened in the same match expression. It's now possible witherr instanceof NonExhaustiveError
:What's Changed
ExhaustiveError
when no matched pattern by @adamhamlin in https://github.com/gvergnaud/ts-pattern/pull/270New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.2.0...v5.3.1
v5.3.0
Compare Source
v5.2.0
Compare Source
The main thing
new
P.string.length(n)
patternP.string.length(len)
matches strings with exactlylen
characters.What's Changed
P.when
patterns code example by @grigorischristainas in https://github.com/gvergnaud/ts-pattern/pull/260New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.1.2...v5.2.0
v5.1.2
Compare Source
The main thing
When combining
P.nonNullable
andP.nullish
, you should get an exhaustive pattern matching expression, but the following case was incorrectly considered non-exhaustive:This is fixed now.
What's Changed
New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.1.1...v5.1.2
v5.1.1
Compare Source
What's Changed
Full Changelog: gvergnaud/ts-pattern@v5.1.0...v5.1.1
v5.1.0
Compare Source
New features
P.nonNullable
wildcardAdd a new
P.nonNullable
pattern that will match any value exceptnull
orundefined
.Closes #60 #154 #190 and will be a work-around for #143.
What's Changed
Full Changelog: gvergnaud/ts-pattern@v5.0.8...v5.1.0
v5.0.8
Compare Source
The main thing
This release includes type narrowing improvement to
isMatching
when used in its curried form:This also improves type checking performance for complex patterns and fixes a small bug in the ES5 build of TS-Pattern.
What's Changed
Full Changelog: gvergnaud/ts-pattern@v5.0.6...v5.0.8
v5.0.7
Compare Source
v5.0.6
Compare Source
Close issue issues
What's Changed
New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.0.5...v5.0.6
v5.0.5
Compare Source
Bug fixes
The
P
module was mistakenly exposing some pattern methods that were intended to be namespaced by type. This release fixes this problem.If you happened to use on of those following methods, here is where to find them now:
v5.0.4
Compare Source
What's Changed
Full Changelog: gvergnaud/ts-pattern@v5.0.3...v5.0.4
v5.0.3
Compare Source
What's Changed
Full Changelog: gvergnaud/ts-pattern@v5.0.2...v5.0.3
v5.0.2
Compare Source
What's Changed
Symbol.for
to make sure two concurrent versions of ts-pattern are compatible with one-another in gvergnaud/ts-pattern@d6d2e23New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.0.0...v5.0.2
v5.0.1
Compare Source
v5.0.0
: ❤️Compare Source
TS-Pattern v5 is finally out ❤️
Breaking changes
.with
is now evaluated eagerlyIn the previous version of TS-Pattern, no code would execute until you called
.exhaustive()
or.otherwise(...)
. For example, in the following code block, nothing would be logged to the console or thrown:In TS-Pattern v5, however, the library will execute the matching handler as soon as it finds it:
Handlers are now evaluated eagerly instead of lazily. In practice, this shouldn't change anything as long as you always finish your pattern matching expressions by either
.exhaustive
or.otherwise
.Matching on Maps and Sets
Matching
Set
andMap
instances using.with(new Set(...))
and.with(new Map(...))
is no longer supported. If you want to match specific sets and maps, you should now use theP.map(keyPattern, valuePattern)
andP.set(valuePattern)
patterns:P.set(subpattern)
should match all values in the set.P.map(keyPattern, subpattern)
should only match the values matchingkeyPattern
for the wholeP.map(..)
pattern to match the input.New features
chainable methods
TS-Pattern v5's major addition is the ability to chain methods to narrow down the values matched by primitive patterns, like
P.string
orP.number
.Since a few examples is worth a thousand words, here are a few ways you can use chainable methods:
P.number methods
Here is the full list of number methods:
P.number.between(min, max)
: matches numbers betweenmin
andmax
.P.number.lt(max)
: matches numbers smaller thanmax
.P.number.gt(min)
: matches numbers greater thanmin
.P.number.lte(max)
: matches numbers smaller than or equal tomax
.P.number.gte(min)
: matches numbers greater than or equal tomin
.P.number.int()
: matches integers.P.number.finite()
: matches all numbers exceptInfinity
and-Infinity
P.number.positive()
: matches positive numbers.P.number.negative()
: matches negative numbers.P.string methods
Here is the full list of string methods:
P.string.startsWith(str)
: matches strings that start withstr
.P.string.endsWith(str)
: matches strings that end withstr
.P.string.minLength(min)
: matches strings with at leastmin
characters.P.string.maxLength(max)
: matches strings with at mostmax
characters.P.string.includes(str)
: matches strings that containstr
.P.string.regex(RegExp)
: matches strings if they match this regular expression.Global methods
Some methods are available for all primitive type patterns:
P.{..}.optional()
: matches even if this property isn't present on the input object.P.{..}.select()
: injects the matched value into the handler function.P.{..}.and(pattern)
: matches if the current pattern and the provided pattern match.P.{..}.or(pattern)
: matches if either the current pattern or the provided pattern match.Variadic tuple patterns
With TS-Pattern, you are now able to create array (or more accurately tuple) pattern with a variable number of elements:
Array patterns that include a
...P.array
are called variadic tuple patterns. You may only have a single...P.array
, but as many fixed-index patterns as you want:Fixed-index patterns can also be set after the
...P.array
variadic, or on both sides!Lastly, argument of
P.array
is now optional, and will default toP._
, which matches anything:.returnType
In TS-Pattern v4, the only way to explicitly set the return type of your
match
expression is to set the two<Input, Output>
type parameters ofmatch
:the main drawback is that you need to set the input type explicitly too, even though TypeScript should be able to infer it.
In TS-Pattern v5, you can use the
.returnType<Type>()
method to only set the return type:What's Changed
Full Changelog: gvergnaud/ts-pattern@v4.3.0...v5.0.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.