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"]