Typed Object Paths for TypeScript

Build paths from lambdas. Use them as strings, accessors, or composable algebra.

Before — strings the compiler cannot see
// String literals, invisible to the compiler
register("users.0.profile.firstName");
table.getColumn("contact.email");
After — typed, refactor-safe
// Typed, autocompleted, refactor-safe
register(path((u: FormData) => u.users[0].profile.firstName).$);
table.getColumn(emailPath.$);

What it is

A zero-dependency TypeScript library that captures object property paths via proxy-based lambdas. Build a path once — use it as a string, read and write data through it, compose paths together, or match one against another.

  • Typed root to leaf — renaming a property breaks the path at compile time
  • Safe reads, immutable writes, structural clones
  • Template paths for bulk operations across collections and trees
  • Path algebra and relational queries

Feature areas

Next steps