Skip to content

Playground

Example Key Hierarchy

ts
import { defineKeyHierarchy } from 'key-hierarchy'

const keys = defineKeyHierarchy((dynamic) => ({
  users: {
    getAll: true,
    create: true,
    byId: dynamic<string>().extend({
      get: true,
      update: true,
      delete: true,
      posts: {
        getAll: true,
        byId: dynamic<string>().extend({
          get: true,
          update: true,
          delete: true,
        }),
      },
    }),
  },
}))

Interactive Visualizer

📁users["users"]
📄getAll["users","getAll"]
📄create["users","create"]
⚙️byId( ) ["users",["byId","user-123"]]
📄get["users",["byId","user-123"],"get"]
📄update["users",["byId","user-123"],"update"]
📄delete["users",["byId","user-123"],"delete"]
📁posts["users",["byId","user-123"],"posts",["byId","post-456"]]
📄getAll["users",["byId","user-123"],"posts","getAll"]
⚙️byId( ) ["users",["byId","user-123"],"posts",["byId","post-456"]]
📄get["users",["byId","user-123"],"posts",["byId","post-456"],"get"]
📄update["users",["byId","user-123"],"posts",["byId","post-456"],"update"]
📄delete["users",["byId","user-123"],"posts",["byId","post-456"],"delete"]

Released under the MIT License.