fix(deps): update dependency ts-pattern to v5 #51
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.1.4
->^5.0.0
Release Notes
gvergnaud/ts-pattern (ts-pattern)
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
v4.3.0
Compare Source
TS-Pattern and node16
TS-Pattern now fully supports
moduleResolution: node16
, with both ES and CommonJS modules. This resolves the long standing issue number #110. Special thanks to @Andarist and @frankie303 for helping me understand and fix this issue ❤️What's Changed
Full Changelog: gvergnaud/ts-pattern@v4.2.2...v4.3.0
v4.2.3
Compare Source
v4.2.2
Compare Source
Bug fixes:
v4.2.1
Compare Source
Bug fixes
This release fixes inference of
P.array
when the input is a readonly array (issue #148)v4.2.0
Compare Source
Features
Better inference for
match
and.with
match
When using match with an inline array, it will now infer its type as tuple automatically, even when not using
as const
. This means that exhaustiveness checking will also improve in this case:.with(...)
Thanks to the help of @Andarist, this release fixes a long-standing issue of
.with
.Until now, patterns like
P.array
,P.union
orP.when
didn't have proper type inference when used in.with()
directly. Here are a few behaviors that use to be incorrect and work now:This also fixes the following issue: https://github.com/gvergnaud/ts-pattern/issues/140
Configuration
📅 Schedule: Branch creation - "after 1pm and before 5pm on Friday" in timezone Asia/Tokyo, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.