@@ -55,6 +55,36 @@ function authDataValidator(adapter, appIds, options) {
55
55
}
56
56
}
57
57
58
+ function loadAuthAdapter ( provider , authOptions ) {
59
+ const defaultAdapter = providers [ provider ] ;
60
+ const adapter = Object . assign ( { } , defaultAdapter ) ;
61
+ const providerOptions = authOptions [ provider ] ;
62
+
63
+ if ( ! defaultAdapter && ! providerOptions ) {
64
+ return ;
65
+ }
66
+
67
+ const appIds = providerOptions ? providerOptions . appIds : undefined ;
68
+
69
+ // Try the configuration methods
70
+ if ( providerOptions ) {
71
+ const optionalAdapter = loadAdapter ( providerOptions , undefined , providerOptions ) ;
72
+ if ( optionalAdapter ) {
73
+ [ 'validateAuthData' , 'validateAppId' ] . forEach ( ( key ) => {
74
+ if ( optionalAdapter [ key ] ) {
75
+ adapter [ key ] = optionalAdapter [ key ] ;
76
+ }
77
+ } ) ;
78
+ }
79
+ }
80
+
81
+ if ( ! adapter . validateAuthData || ! adapter . validateAppId ) {
82
+ return ;
83
+ }
84
+
85
+ return { adapter, appIds, providerOptions} ;
86
+ }
87
+
58
88
module . exports = function ( authOptions = { } , enableAnonymousUsers = true ) {
59
89
let _enableAnonymousUsers = enableAnonymousUsers ;
60
90
const setEnableAnonymousUsers = function ( enable ) {
@@ -67,33 +97,19 @@ module.exports = function(authOptions = {}, enableAnonymousUsers = true) {
67
97
return ;
68
98
}
69
99
70
- const defaultAdapter = providers [ provider ] ;
71
- let adapter = defaultAdapter ;
72
- const providerOptions = authOptions [ provider ] ;
73
-
74
- if ( ! defaultAdapter && ! providerOptions ) {
75
- return ;
76
- }
77
-
78
- const appIds = providerOptions ? providerOptions . appIds : undefined ;
79
-
80
- // Try the configuration methods
81
- if ( providerOptions ) {
82
- const optionalAdapter = loadAdapter ( providerOptions , undefined , providerOptions ) ;
83
- if ( optionalAdapter ) {
84
- adapter = optionalAdapter ;
85
- }
86
- }
87
-
88
- if ( ! adapter . validateAuthData || ! adapter . validateAppId ) {
89
- return ;
90
- }
100
+ const {
101
+ adapter,
102
+ appIds,
103
+ providerOptions
104
+ } = loadAuthAdapter ( provider , authOptions ) ;
91
105
92
106
return authDataValidator ( adapter , appIds , providerOptions ) ;
93
107
}
94
108
95
109
return Object . freeze ( {
96
110
getValidatorForProvider,
97
- setEnableAnonymousUsers,
111
+ setEnableAnonymousUsers
98
112
} )
99
113
}
114
+
115
+ module . exports . loadAuthAdapter = loadAuthAdapter ;
0 commit comments