jazz
jazz copied to clipboard
Feature request: chainable methods
I'm curious what ya'll think of chainable methods for better ergonomics in common patterns.
Currently, if I want to make a write-only list, I'd do something like
export const FriendRequests = co.list(co.account());
const friendRequestsGroup = co.group().create();
friendRequestsGroup.addMember("everyone", "writeOnly");
const friendRequests = FriendRequests.create([], friendRequestsGroup);
But if methods like .addMember returned this group, I could additionally do
const friendRequests = FriendRequests.create([], co.group().create().addMember("everyone", "writeOnly"));
I'm happy to take a stab at a PR if ya'll are aligned with this direction.
In the meantime, I am using this
export function createEveryoneGroup(role: "writer" | "reader" | "writeOnly") {
const group = co.group().create();
group.addMember("everyone", role);
return group;
}
const friendRequests = FriendRequests.create([], createEveryoneGroup("writeOnly"));
from guido:
Looks good to me.
Feel free to open a PR.