31 lines
855 B
TypeScript
31 lines
855 B
TypeScript
|
// Copyright 2021 Signal Messenger, LLC
|
||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||
|
|
||
|
import type { WebAPIConnectType, WebAPIType } from '../textsecure/WebAPI';
|
||
|
|
||
|
// We define a stricter storage here that returns `unknown` instead of `any`.
|
||
|
type Storage = {
|
||
|
get(key: string): unknown;
|
||
|
};
|
||
|
|
||
|
export function connectToServerWithStoredCredentials(
|
||
|
WebAPI: WebAPIConnectType,
|
||
|
storage: Storage
|
||
|
): WebAPIType {
|
||
|
const username = storage.get('uuid_id') || storage.get('number_id');
|
||
|
if (typeof username !== 'string') {
|
||
|
throw new Error(
|
||
|
'Username in storage was not a string. Cannot connect to WebAPI'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
const password = storage.get('password');
|
||
|
if (typeof password !== 'string') {
|
||
|
throw new Error(
|
||
|
'Password in storage was not a string. Cannot connect to WebAPI'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return WebAPI.connect({ username, password });
|
||
|
}
|