Skip to content

Commit 80d7969

Browse files
geroplroboquat
authored andcommitted
[server] AuthProviderService.getAllAuthProviders: avoid O(n^2)
1 parent 0d82725 commit 80d7969

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

components/server/src/auth/auth-provider-service.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,16 @@ export class AuthProviderService {
3131
const transformed = all.map(this.toAuthProviderParams.bind(this));
3232

3333
// as a precaution, let's remove duplicates
34-
const unique = transformed.reduce((prev, current) => {
35-
const duplicate = prev.some(a => a.host === current.host);
34+
const unique = new Map<string, AuthProviderParams>();
35+
for (const current of transformed) {
36+
const duplicate = unique.get(current.host);
3637
if (duplicate) {
3738
log.warn(`Duplicate dynamic Auth Provider detected.`, { rawResult: all, duplicate: current.host });
39+
continue;
3840
}
39-
return duplicate ? prev : [...prev, current];
40-
}, [] as AuthProviderParams[]);
41-
return unique;
41+
unique.set(current.host, current);
42+
}
43+
return Array.from(unique.values());
4244
}
4345

4446
protected toAuthProviderParams = (oap: AuthProviderEntry) => <AuthProviderParams>{

0 commit comments

Comments
 (0)