You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-28 05:03:59 +03:00
only store serializable options (string, boolean, number)
This commit is contained in:
@@ -3135,8 +3135,7 @@ MatrixClient.prototype.startClient = async function(opts) {
|
|||||||
return this._canResetTimelineCallback(roomId);
|
return this._canResetTimelineCallback(roomId);
|
||||||
};
|
};
|
||||||
this._clientOpts = opts;
|
this._clientOpts = opts;
|
||||||
await this.store.storeClientOptions(this._clientOpts);
|
await this._storeClientOptions(this._clientOpts);
|
||||||
|
|
||||||
this._syncApi = new SyncApi(this, opts);
|
this._syncApi = new SyncApi(this, opts);
|
||||||
this._syncApi.sync();
|
this._syncApi.sync();
|
||||||
};
|
};
|
||||||
@@ -3157,6 +3156,25 @@ MatrixClient.prototype._shouldClearSyncDataIfLL = async function() {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* store client options with boolean/string/numeric values
|
||||||
|
* to know in the next session what flags the sync data was
|
||||||
|
* created with (e.g. lazy loading)
|
||||||
|
* @param {object} opts the complete set of client options
|
||||||
|
* @return {Promise} for store operation */
|
||||||
|
MatrixClient.prototype._storeClientOptions = function(opts) {
|
||||||
|
const primTypes = ["boolean", "string", "number"];
|
||||||
|
const serializableOpts = Object.entries(opts)
|
||||||
|
.filter(([key, value]) => {
|
||||||
|
return primTypes.includes(typeof value);
|
||||||
|
})
|
||||||
|
.reduce((obj, [key, value]) => {
|
||||||
|
obj[key] = value;
|
||||||
|
return obj;
|
||||||
|
}, {});
|
||||||
|
return this.store.storeClientOptions(serializableOpts);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* High level helper method to stop the client from polling and allow a
|
* High level helper method to stop the client from polling and allow a
|
||||||
* clean shutdown.
|
* clean shutdown.
|
||||||
|
|||||||
Reference in New Issue
Block a user