-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
Describe the bug
The LDContextCommon type allows invalid contexts. The key field is required unless anonymous is set to true and this can be enforced at the type level. In the case key is not set and anonymous is undefined or false, the error may be missed during testing resulting in targeted features being unavailable.
This type would catch this issue for a multi-kind context:
interface LDMultiKindContext {
kind: "multi";
[kind: string]:
| "multi"
| (Omit<LDContextCommon, "key" | "anonymous"> & { key: string; anonymous?: false })
| (Omit<LDContextCommon, "key" | "anonymous"> & { key?: string; anonymous: true });
}To reproduce
In React:
const ldClient = useLDClient();
ldClient?.identify({ kind: "multi", user: { kind: "user", userId: "1234" } }, undefined, (error, flags) => {
console.error("failed to initialize!", { error, flags });
});Expected behavior
I would expect this to be caught by types.
Logs
N/A
SDK version
We're using js-sdk-common 5.2.0 at the moment, but the problem is present in js-sdk-common 5.3.0 as well.
Language version, developer tools
Node 20
OS/platform
macos, but this would happen on any platform.
Additional context
None
Metadata
Metadata
Assignees
Labels
No labels