131 lines
4.9 KiB
Markdown
131 lines
4.9 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0/).
|
|
|
|
## [Unreleased]
|
|
|
|
## [0.8.2] - 2026-09-25
|
|
|
|
- write the README's Synopsis and Examples sections
|
|
- document the public API in the README
|
|
- add TSDoc to the four public matcher factories
|
|
- document alternatives
|
|
|
|
## [0.8.1] - 2026-09-23
|
|
|
|
- gate CI at 100% coverage: `test:ci` runs c8 with `--all --100` over `src/`,
|
|
and a test loads the `index.ts` barrel so it is measured
|
|
- pin the duplicate-tag union collapse (members sharing a tag dispatch through
|
|
one handler) with tests
|
|
|
|
## [0.8.0] - 2026-09-23
|
|
|
|
- reject a universe that mixes a literal with a broad type (e.g.
|
|
`"a" | \`x-${number}\``), which the finite-literal gate let through
|
|
- narrow the tagged-union matcher's handler parameters for a union-valued or
|
|
optional discriminant, and its fallback to the unhandled tags, instead of
|
|
passing `never`
|
|
|
|
## [0.7.1] - 2026-09-23
|
|
|
|
- upgrade dependencies
|
|
|
|
## [0.7.0] - 2026-09-23
|
|
|
|
- reject broad universes (`string`, `number`, template literals) and
|
|
value/stringification collisions (`true | "true"`, `1 | "1"`) at the factory
|
|
- type handler parameters by the matched member, so a
|
|
standalone `"true"` universe is typed `"true"` rather than `true`
|
|
|
|
## [0.6.0] - 2026-09-22
|
|
|
|
- add `getTaggedUnionMatcher` / `getTaggedUnionMatcherW` for discriminated unions
|
|
- rename the primitive matcher to primitive-union: `getMatcher` /
|
|
`getMatcherW` → `getPrimitiveUnionMatcher` / `getPrimitiveUnionMatcherW`, and
|
|
`src/primitive.ts` / `src/primitive.test.ts` → `src/primitive-union.*`
|
|
|
|
## [0.5.0] - 2026-09-21
|
|
|
|
- reject a fallback when the handler map already covers the universe
|
|
- allow boolean, null and undefined in the matcher universe
|
|
|
|
## [0.4.0] - 2026-09-20
|
|
|
|
- move the `_` fallback out of handlers
|
|
|
|
## [0.3.0] - 2026-09-18
|
|
|
|
- condensed primitive matcher factories down to 2 from formerly 4
|
|
- house shared test helpers under `src/util/__tests__/`
|
|
|
|
## [0.2.0] - 2026-09-16
|
|
|
|
- allow ternaries and lowercase comments in oxlint
|
|
- switch `src/primitive.ts` prose from block comments to line comments
|
|
- remove the template's `match`/`P` example modules and their documentation, and point `src/index.ts` at the primitive matchers
|
|
|
|
## [0.1.8] - 2026-09-16
|
|
|
|
- upgrade dependencies
|
|
- ignore `@types/node` in `maintain:outdated` (misleading `latest` dist-tag)
|
|
- require extremely concise prose in `development/`
|
|
|
|
## [0.1.7] - 2026-09-16
|
|
|
|
- require a short summary under `[Unreleased]` in the changelog before a branch is finished
|
|
- let `create:branch` start from a `main` that is ahead of its upstream, so a finished merge no longer blocks the next branch until it is pushed
|
|
|
|
## [0.1.6] - 2026-09-15
|
|
|
|
- restructure the documentation: README.md for users, CONTRIBUTING.md for contributors, and development/ for the decisions, rejected alternatives and known issues
|
|
- document the decisions and known issues for CI, tooling, testing, publishing and the workflow
|
|
|
|
## [0.1.5] - 2026-09-15
|
|
|
|
- improve CI configuration
|
|
|
|
## [0.1.4] - 2026-09-14
|
|
|
|
- fix CI to node from custom image
|
|
- upgrade dependencies
|
|
|
|
## [0.1.3] - 2026-09-14
|
|
|
|
- change to custom image for CI
|
|
|
|
## [0.1.2] - 2026-09-14
|
|
|
|
- upgrade dependencies
|
|
|
|
## [0.1.1] - 2026-09-14
|
|
|
|
- upgrade dependencies
|
|
|
|
## [0.1.0] - 2026-09-14
|
|
|
|
- basic setup
|
|
|
|
[Unreleased]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.8.2...main
|
|
[0.8.2]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.8.1...0.8.2
|
|
[0.8.1]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.8.0...0.8.1
|
|
[0.8.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.7.1...0.8.0
|
|
[0.7.1]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.7.0...0.7.1
|
|
[0.7.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.6.0...0.7.0
|
|
[0.6.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.5.0...0.6.0
|
|
[0.5.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.4.0...0.5.0
|
|
[0.4.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.3.0...0.4.0
|
|
[0.3.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.2.0...0.3.0
|
|
[0.2.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.8...0.2.0
|
|
[0.1.8]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.7...0.1.8
|
|
[0.1.7]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.6...0.1.7
|
|
[0.1.6]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.5...0.1.6
|
|
[0.1.5]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.4...0.1.5
|
|
[0.1.4]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.3...0.1.4
|
|
[0.1.3]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.2...0.1.3
|
|
[0.1.2]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.1...0.1.2
|
|
[0.1.1]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/0.1.0...0.1.1
|
|
[0.1.0]: https://gitea.e1nsnull.de/tmu/tiny-pattern-ts/compare/20308c5a6d8cccfb09b02ac2ebebd8055e91cd11...0.1.0
|