tmu a4b4618c9f
CI / release-gate (push) Successful in 2s
CI / build (push) Successful in 30s
CI / maintain (push) Failing after 14s
CI / publish (push) Failing after 17s
🚀 Release 0.5.0
2026-09-21 13:11:27 +00:00
2026-09-08 20:47:22 +02:00
2026-09-21 12:52:58 +00:00
2026-09-14 12:37:58 +00:00
2026-09-06 00:13:12 +02:00
2026-09-21 09:44:44 +00:00
2026-09-21 13:11:27 +00:00
2026-02-02 13:38:42 +01:00
2025-04-29 13:43:07 +02:00
2026-09-21 13:11:27 +00:00
2026-09-21 13:11:27 +00:00
2026-09-21 10:33:36 +00:00

tiny-pattern-ts

Pattern matching for TypeScript/ESM environments (F#-style, not regex).

Description

tiny-pattern-ts brings F#-style pattern matching to TypeScript. Patterns are ordinary objects whose matches method is a TypeScript type guard, so narrowing composes the way any other guard does. It is deliberately not a regex engine and not a macro: there is no transpiler and no DSL to learn, and the type-level contract is the feature — see development/library.md for the design decisions and Caveats for the limits.

Requirements

  • Node.js >= 26 (engines field; pinned via .node-version).
  • TypeScript >= 5.0 to consume the published declarations. The emitted .d.ts use const type parameters (TS 5.0) and keep their relative .ts specifiers; both resolve on TS >= 5.0 in node10 / node16 / nodenext / bundler.
  • The package is ESM-only (no CommonJS shim).

API

Yet to be implemented

Caveats

  • A value and its stringification collide. Object keys stringify, so a universe that mixes a member with the string it stringifies to — 1 | "1", true | "true", null | "null" — collapses to a single handler key and both members are routed to it. Use one form or the other.
  • symbol and bigint are not supported. A symbol brand is a compile-time phantom with nothing to match at runtime, and a bigint is not a valid property key; neither satisfies the matcher's universe constraint.
  • NaN and -0 cannot be matched specifically. They have no literal type, so both stay part of number.

License

MIT © 2025 tmu. See LICENSE.

Contributing

Contributions are documented in CONTRIBUTING.md; the reasons behind the project's decisions, rejected alternatives, and known issues live in development/. AI coding agents start at AGENTS.md.

S
Description
No description provided
Readme MIT
1.5 MiB
0 Stars 1 Watchers 0 Forks
0.9.0
Latest
2026-09-29 23:57:54 +02:00
Languages
TypeScript 88.4%
Shell 9.9%
Dockerfile 1.7%