Files
tiny-pattern-ts/CHANGELOG.md
T
tmu 8261759190 📝 Restore and rewrite the README entry point
The README collapsed to API-only prose once the old match/P surface was
dropped. Rebuild its entry-point shape: a quick-start Synopsis walked through
a Contact union, a dedicated Installation section, and a real-world Examples
section (primitive-union dispatch, a fallback, a property union narrowed by
the tagged-union matcher, and the widening variant).

Set the tagline and Description to the library's identity — exhaustive,
type-safe pattern matching for TypeScript — and state the goal Moose-style:
type-safe pattern matching with a lean syntax, accomplished by exhaustive
branches and typed per-branch handler parameters, backed by autocomplete and
a tiny footprint. Drop the F#-style framing and the stale "matches method is
a type guard" and "(not regex)" copy from the README, AGENTS.md and the
package.json description. Every fence is a doc-test, so the examples cannot
drift from the API.
2026-09-24 21:55:51 +00:00

5.1 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

  • restore the README's Synopsis and Examples sections: a quick-start recipe plus real-world examples (primitive-union dispatch, a fallback, a property union narrowed by the tagged-union matcher, and a widening variant)
  • document the public API in the README: the four factories, when to use each, what the W (widening) suffix means, and examples that bind the handler-map function once
  • add TSDoc to the four public matcher factories

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