Thank you! Bookmarking these now.
I was looking at the breaking changes for createMembership() and it's fine that url is now optional but it's frustrating to keep having to check for the order of the parameters. For instance, on version 9.0.0, the order is createMembership(teamId, roles, url, email, ...) but on version 11.0.0 the order of parameters got switched all over: createMembership(teamId, roles, email, userId, phone, url, ...). Also, now I have to supply a bunch of undefined parameters just to get to the url towards the very end.
I didn't get any indication that something was wrong because Typescript just validates the types and email, userId, and url are all a bunch of string | undefined types so switching them around doesn't trigger any warnings from Typescript. Why couldn't the parameters just be made into an object? Something like:
type CreateMembershipProps = {
teamId: string;
roles: string[];
email: string | undefined;
userId: string | undefined;
phone: string | undefined;
url: string | undefined;
...
}
That way, developers can supply the parameters in any order and it wouldn't break anything and won't have to deal with parameter order gymnastics. I believe Appwrite is written in PHP but I'm sure something like this is also possible.