@@ -88,17 +88,8 @@ export class MongoDBOIDC extends AuthProvider {
88
88
return callback ( new MongoMissingCredentialsError ( 'AuthContext must provide credentials.' ) ) ;
89
89
}
90
90
91
- getWorkflow ( credentials , ( error , workflow ) => {
92
- if ( error ) {
93
- return callback ( error ) ;
94
- }
95
- if ( ! workflow ) {
96
- return callback (
97
- new MongoRuntimeError (
98
- `Could not load workflow for device ${ credentials . mechanismProperties . PROVIDER_NAME } `
99
- )
100
- ) ;
101
- }
91
+ try {
92
+ const workflow = getWorkflow ( credentials ) ;
102
93
workflow . execute ( connection , credentials , reauthenticating ) . then (
103
94
result => {
104
95
return callback ( undefined , result ) ;
@@ -107,7 +98,9 @@ export class MongoDBOIDC extends AuthProvider {
107
98
callback ( error ) ;
108
99
}
109
100
) ;
110
- } ) ;
101
+ } catch ( error ) {
102
+ callback ( error ) ;
103
+ }
111
104
}
112
105
113
106
/**
@@ -150,15 +143,13 @@ export class MongoDBOIDC extends AuthProvider {
150
143
/**
151
144
* Gets either a device workflow or callback workflow.
152
145
*/
153
- function getWorkflow ( credentials : MongoCredentials , callback : Callback < Workflow > ) : void {
146
+ function getWorkflow ( credentials : MongoCredentials ) : Workflow {
154
147
const providerName = credentials . mechanismProperties . PROVIDER_NAME ;
155
148
const workflow = OIDC_WORKFLOWS . get ( providerName || 'callback' ) ;
156
149
if ( ! workflow ) {
157
- return callback (
158
- new MongoInvalidArgumentError (
159
- `Could not load workflow for provider ${ credentials . mechanismProperties . PROVIDER_NAME } `
160
- )
150
+ throw new MongoInvalidArgumentError (
151
+ `Could not load workflow for provider ${ credentials . mechanismProperties . PROVIDER_NAME } `
161
152
) ;
162
153
}
163
- callback ( undefined , workflow ) ;
154
+ return workflow ;
164
155
}
0 commit comments