This repository was archived by the owner on Nov 1, 2025. It is now read-only.
fix(deps): update dependency ts-pattern to v5#51
Merged
Conversation
0820db3 to
44717bd
Compare
44717bd to
e73f658
Compare
e73f658 to
4374c82
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.0Release Notes
gvergnaud/ts-pattern (ts-pattern)
v5.0.6Compare Source
Close issue issues
What's Changed
New Contributors
Full Changelog: gvergnaud/ts-pattern@v5.0.5...v5.0.6
v5.0.5Compare Source
Bug fixes
The
Pmodule 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.4Compare Source
What's Changed
Full Changelog: gvergnaud/ts-pattern@v5.0.3...v5.0.4
v5.0.3Compare Source
What's Changed
Full Changelog: gvergnaud/ts-pattern@v5.0.2...v5.0.3
v5.0.2Compare Source
What's Changed
Symbol.forto 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.1Compare Source
v5.0.0: ❤️Compare Source
TS-Pattern v5 is finally out ❤️
Breaking changes
.withis 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
.exhaustiveor.otherwise.Matching on Maps and Sets
Matching
SetandMapinstances 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 matchingkeyPatternfor 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.stringorP.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 betweenminandmax.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 exceptInfinityand-InfinityP.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 leastmincharacters.P.string.maxLength(max): matches strings with at mostmaxcharacters.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.arrayare 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.arrayvariadic, or on both sides!Lastly, argument of
P.arrayis now optional, and will default toP._, which matches anything:.returnTypeIn TS-Pattern v4, the only way to explicitly set the return type of your
matchexpression 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.0Compare 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.3Compare Source
v4.2.2Compare Source
Bug fixes:
v4.2.1Compare Source
Bug fixes
This release fixes inference of
P.arraywhen the input is a readonly array (issue #148)v4.2.0Compare Source
Features
Better inference for
matchand.withmatch
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.unionorP.whendidn'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.