Releases: true-myth/true-myth
Release 7.3.0
🚀 Enhancement
-
#756 Forbid
null
andundefined
as arguments toMaybe.just
(@chriskrycho)Note: This is not a breaking change, but a feature: it is what we always wanted, and aligns the types with the runtime behavior. However, it may in some cases require additional type annotations when working directly with a
Result
and using toolbelt functions. Specifically, there were some cases where the old implementation unsafely allowedunknown
, which necessarily includesnull | undefined
, and could therefore end up with aMaybe<unknown>
, and indeed via the unconstrained generic could move fromResult<null, string>
toMaybe<null>
using e.g. thetransposeResult
method. This is no longer possible! 🎉
Committers: 1
- Chris Krycho (@chriskrycho)
Release 7.2.1
🐛 Bug Fix
- #755 Correctly handle
null
andundefined
in function return types (@chriskrycho)
🏠 Internal
- #754 infra: update to actions/checkout@v4 for GHA (@chriskrycho)
Committers: 1
- Chris Krycho (@chriskrycho)
Release 7.2.0
🚀 Enhancement
- #749 Allow readonly Arrays in
find()
(@screendriver) - #720 Add (tested) support for Node 20 (@chriskrycho)
- #719 Add support for TypeScript 5.4 (@chriskrycho)
- #650 Add support for TypeScript 5.3 (@dependabot[bot])
🏠 Internal
- #751 Supply an
AnyArray
type in maybe.ts (@chriskrycho) - #750 infra: update to latest pnpm (@chriskrycho)
- #631 Simplify CI test matrix (@chriskrycho)
Committers: 2
- Chris Krycho (@chriskrycho)
- Christian Rackerseder (@screendriver)
Release 7.1.0
🚀 Enhancement
- #609 Add support for TypeScript 5.2 (@chriskrycho)
📝 Documentation
- #572 Fix docs for
transposeArray
(@chriskrycho)
🏠 Internal
- #601 refactor: Remove duplicate tests in '/test/result.test.ts' (@royiro10)
- #585 Further work to fix pnpm usage in TS nightly (@chriskrycho)
- #584 More cleanup: pnpm references and prettierignore (@chriskrycho)
- #583 Fix CI for nightly TS run (@chriskrycho)
Committers: 2
- Chris Krycho (@chriskrycho)
- @royiro10
Release 7.0.1
🐛 Bug Fix
- #570 Fix CJS import location in package
exports
map (@chriskrycho)
🏠 Internal
- #569 Fix docs publishing GH Action (@chriskrycho)
Committers: 1
- Chris Krycho (@chriskrycho)
Release 7.0.0
There is only one actual breaking change since 6.x: dropping support for Node versions earlier than Node 18 LTS. (While that is a small breaking change, around here we like taking care of technical details and SemVer.)
The main benefit here is adding back support for CJS consumption—though it still requires using a recent TS version with support for exports
maps and using an appropriate module resolution mode. (We may be able to add support for more "classic" module resolution modes later, as a non-breaking change, with this in place—but make no guarantees!)
💥 Breaking Change
- #562 [Breaking] Require Node 18, adopt pnpm, use latest release-it (@chriskrycho)
🚀 Enhancement
- #567 Publish True Myth as a dual-mode package (ESM + CJS) (@chriskrycho)
- #561 Add type-safe
Ok.cast()
andErr.cast()
methods (@chriskrycho) - #552 Add support for TypeScript 5.0 and 5.1 (@dependabot[bot])
- #469 Add support for TypeScript 4.9 (@dependabot[bot])
📝 Documentation
- #568 Upgrade to latest TypeDoc (@chriskrycho)
🏠 Internal
- #566 Use pnpm in CI (@chriskrycho)
Committers: 3
- Chris Krycho (@chriskrycho)
- Josh Martinez (@jm4rtinez)
- @DaviDevMod
Release 6.2.0
🚀 Enhancement
- #438 Add explicit support for TS 4.8 (@chriskrycho)
🐛 Bug Fix
- #437 docs: include doc comments in published types (@chriskrycho)
📝 Documentation
- #437 docs: include doc comments in published types (@chriskrycho)
- #434 Update readme with v6.x requirements (@bmakuh)
🏠 Internal
- #436 chore: remove defunct parts of package (@chriskrycho)
Committers: 2
- Ben Makuh (@bmakuh)
- Chris Krycho (@chriskrycho)
Release 6.1.0
🚀 Enhancement
- Re-export
Toolbelt
from root for consumers not using TS 4.7’sexports
support (@chriskrycho)
🏠 Internal
- #388 Remove v5 CI configuration (@chriskrycho)
Committers: 1
- Chris Krycho (@chriskrycho)
v6.0.0
There are two significant breaking changes in v6.0:
- It now requires TypeScript 4.7+ and Node 14+. This allows us to use Node's
exports
syntax without hacks. - It removes items deprecated in the 4.x and 5.x cycles. This allows us to provide better tree-shaking. Previously, using either the
Result
orMaybe
classes meant you also pulled in the other, since they had code to interoperate with each other. These now live only in thetoolbelt
module, along with theArray
helpers.
To upgrade:
-
Update your project to at least Node 14 and TypeScript 4.7.
-
Switch from using any deprecated code to the supported replacements (as described in the docs for each deprecated function).
-
Set
compilerOptions.module
toNode16
ornodenext
in yourtsconfig.json
. Note: this is the most significant breaking change here: it requires that every other TS package you consume also be compatible with the new mode, and if you are using True Myth in a library, cascades that requirement to your consumers as well. -
Update to True Myth v6. 🎉
💥 Breaking Change
- #357 Update publication mechanics with "exports" (@chriskrycho)
- #352 Update minimum Node to v14, add v18 (@chriskrycho)
- #252 Enable tree-shaking by removing deprecated code (@chriskrycho)
- #242 Improve performance by switching to a 'methods-first' implementation (@chriskrycho)
🚀 Enhancement
- #360 Decrease Unit implementation runtime size (@chriskrycho)
- #356 Improve
toString
handling (forward-port from v5) (@chriskrycho) - #351 More forward ports (@chriskrycho)
- #275 One fewer assignment in Nothing construction (@chriskrycho)
- #252 Enable tree-shaking by removing deprecated code (@chriskrycho)
- #251 [Forward] Deprecate Maybe.head for 6.0, preferring Maybe.first (@chriskrycho)
- #250 [Forward] Deprecate non-Toolbelt versions of toolbelt utils (@chriskrycho)
- #249 [Forward] Introduce
true-myth/toolbelt
module for better tree shaking (@chriskrycho) - #242 Improve performance by switching to a 'methods-first' implementation (@chriskrycho)
🐛 Bug Fix
- #351 More forward ports (@chriskrycho)
- #276 Finish forward-porting null/undefined reversion (@chriskrycho)
- #274 Forward port more fixes (@chriskrycho)
- 5.1.1 regression: type inference for Result.ok (@krivachy)
📝 Documentation
- #387 Prep for v6 release (@chriskrycho)
- #383 Incorporate TS 4.7 and next in support matrix (@chriskrycho)
- #355 Update the CHANGELOG and
package.json
to actual current (@chriskrycho) - #350 Improve doc comments on Maybe and Toolbelt (@chriskrycho)
- #317 Forward-port CI, docs updates (@chriskrycho)
- #267 [Forward] Fix out-of-date parts of README (@chriskrycho)
🏠 Internal
- #387 Final updates (@chriskrycho)
- #386 Drop
preversion
npm script (@chriskrycho) - #384 Simplify
exports
definitions for types (@chriskrycho) - #383 Incorporate TS 4.7 and next in support matrix (@chriskrycho)
- #377 Add option to run Nightly TS run manually (@chriskrycho)
- #376 Use 'Node16' to support TS 4.7 (@chriskrycho)
- #362 Add Code of Conduct and Contributing guide (@chriskrycho)
- #359 Actually run yarn so TypeDoc is available (@chriskrycho)
- #358 Switch docs publishing to use gh-pages on release (@chriskrycho)
- #353 Use
Omit
rather thanExclude
+keyof
in Maybe (@chriskrycho) - #354 Use
Omit
rather thanExclude
+keyof
in Maybe (@chriskrycho) - #264 [Forward] no ESLint (@chriskrycho)
- #242 Improve performance by switching to a 'methods-first' implementation (@chriskrycho)
Committers: 2
- Akos Krivachy (@krivachy)
- Chris Krycho (@chriskrycho)
v5.4.0
This is the final release for v5.x, and only exists to make sure there are fully overlapping supported TypeScript versions for True Myth v5 and v6. See the release notes for the upcoming v6.0 release for upgrade notes.
🚀 Enhancement
- #382 v5.x: Add Node 18 and TS 4.7 (@chriskrycho)
🏠 Internal
- #385 v5.x: Drop
preversion
npm script (@chriskrycho) - #361 Add conduct and contributing (v5.x) (@chriskrycho)
- #354 Use
Omit
rather thanExclude
+keyof
in Maybe (@chriskrycho)
Committers: 1
- Chris Krycho (@chriskrycho)