Our current TypeScript setup has no way to enforce required options on an integration.
Ideally we need to make IntegrationConfig a generic to be able to accomodate for different required options. But that means we need to be able to distinguish between the different passed integrations.
e.g.
export interface IntegrationConfig<
O extends IntegrationConfigOptions = IntegrationConfigOptions
> {}
export function useIntegration<O extends IntegrationConfigOptions>() {}
Our current TypeScript setup has no way to enforce required options on an integration.
Ideally we need to make IntegrationConfig a generic to be able to accomodate for different required options. But that means we need to be able to distinguish between the different passed integrations.
e.g.