forked from mystiq/hydrogen-web
Extract ctor types out
This commit is contained in:
parent
238b9aafb1
commit
a8870f2d24
2 changed files with 15 additions and 2 deletions
|
@ -27,13 +27,20 @@ type RequestMethod = "POST" | "GET" | "PUT";
|
|||
const CS_R0_PREFIX = "/_matrix/client/r0";
|
||||
const DEHYDRATION_PREFIX = "/_matrix/client/unstable/org.matrix.msc2697.v2";
|
||||
|
||||
type Ctor = {
|
||||
homeserver: string;
|
||||
accessToken: string;
|
||||
request: RequestFunction;
|
||||
reconnector: Reconnector;
|
||||
};
|
||||
|
||||
export class HomeServerApi {
|
||||
private readonly _homeserver: string;
|
||||
private readonly _accessToken: string;
|
||||
private readonly _requestFn: RequestFunction;
|
||||
private readonly _reconnector: Reconnector;
|
||||
|
||||
constructor({homeserver, accessToken, request, reconnector}: {homeserver: string, accessToken: string, request: RequestFunction, reconnector: Reconnector}) {
|
||||
constructor({homeserver, accessToken, request, reconnector}: Ctor) {
|
||||
// store these both in a closure somehow so it's harder to get at in case of XSS?
|
||||
// one could change the homeserver as well so the token gets sent there, so both must be protected from read/write
|
||||
this._homeserver = homeserver;
|
||||
|
|
|
@ -27,6 +27,12 @@ export enum ConnectionStatus {
|
|||
"Online"
|
||||
};
|
||||
|
||||
type Ctor = {
|
||||
retryDelay: ExponentialRetryDelay;
|
||||
createMeasure: () => TimeMeasure;
|
||||
onlineStatus: OnlineStatus
|
||||
};
|
||||
|
||||
export class Reconnector {
|
||||
private readonly _retryDelay: ExponentialRetryDelay;
|
||||
private readonly _createTimeMeasure: () => TimeMeasure;
|
||||
|
@ -36,7 +42,7 @@ export class Reconnector {
|
|||
private _versionsResponse?: IVersionResponse;
|
||||
private _stateSince: TimeMeasure;
|
||||
|
||||
constructor({retryDelay, createMeasure, onlineStatus}: {retryDelay: ExponentialRetryDelay, createMeasure: () => TimeMeasure, onlineStatus: OnlineStatus}) {
|
||||
constructor({retryDelay, createMeasure, onlineStatus}: Ctor) {
|
||||
this._onlineStatus = onlineStatus;
|
||||
this._retryDelay = retryDelay;
|
||||
this._createTimeMeasure = createMeasure;
|
||||
|
|
Loading…
Reference in a new issue