auth-backend: tweak auth provider integration to allow no resolvers

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2022-04-08 14:19:16 +02:00
parent e5c533e6c3
commit 55b2abac93
@@ -25,18 +25,20 @@ import { AuthProviderFactory, SignInResolver } from './types';
*/
export function createAuthProviderIntegration<
TCreateOptions extends unknown[],
TResolvers extends {
[name in string]: (...args: any[]) => SignInResolver<any>;
},
TResolvers extends
| {
[name in string]: (...args: any[]) => SignInResolver<any>;
},
>(config: {
create: (...args: TCreateOptions) => AuthProviderFactory;
resolvers: TResolvers;
resolvers?: TResolvers;
}): Readonly<{
create: (...args: TCreateOptions) => AuthProviderFactory;
resolvers: Readonly<TResolvers>;
// If no resolvers are defined, this receives the type `never`
resolvers: Readonly<string extends keyof TResolvers ? never : TResolvers>;
}> {
return Object.freeze({
...config,
resolvers: Object.freeze(config.resolvers),
resolvers: Object.freeze(config.resolvers ?? ({} as any)),
});
}