matrix-react-sdk
Version:
SDK for matrix.org using React
62 lines (58 loc) • 8.93 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createMatrixClient;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _matrix = require("matrix-js-sdk/src/matrix");
var _indexeddbWorkerFactory = _interopRequireDefault(require("../workers/indexeddbWorkerFactory"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /*
Copyright 2024 New Vector Ltd.
Copyright 2017-2021 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const localStorage = window.localStorage;
// just *accessing* indexedDB throws an exception in firefox with
// indexeddb disabled.
let indexedDB;
try {
indexedDB = window.indexedDB;
} catch (e) {}
/**
* Create a new matrix client, with the persistent stores set up appropriately
* (using localstorage/indexeddb, etc)
*
* @param {Object} opts options to pass to Matrix.createClient. This will be
* extended with `sessionStore` and `store` members.
*
* @returns {MatrixClient} the newly-created MatrixClient
*/
function createMatrixClient(opts) {
const storeOpts = {
useAuthorizationHeader: true
};
if (indexedDB && localStorage) {
storeOpts.store = new _matrix.IndexedDBStore({
indexedDB: indexedDB,
dbName: "riot-web-sync",
localStorage,
workerFactory: _indexeddbWorkerFactory.default
});
} else if (localStorage) {
storeOpts.store = new _matrix.MemoryStore({
localStorage
});
}
if (indexedDB) {
storeOpts.cryptoStore = new _matrix.IndexedDBCryptoStore(indexedDB, "matrix-js-sdk:crypto");
} else if (localStorage) {
storeOpts.cryptoStore = new _matrix.LocalStorageCryptoStore(localStorage);
} else {
storeOpts.cryptoStore = new _matrix.MemoryCryptoStore();
}
return (0, _matrix.createClient)(_objectSpread(_objectSpread({}, storeOpts), opts));
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsIl9pbmRleGVkZGJXb3JrZXJGYWN0b3J5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImxvY2FsU3RvcmFnZSIsIndpbmRvdyIsImluZGV4ZWREQiIsImNyZWF0ZU1hdHJpeENsaWVudCIsIm9wdHMiLCJzdG9yZU9wdHMiLCJ1c2VBdXRob3JpemF0aW9uSGVhZGVyIiwic3RvcmUiLCJJbmRleGVkREJTdG9yZSIsImRiTmFtZSIsIndvcmtlckZhY3RvcnkiLCJpbmRleGVkZGJXb3JrZXJGYWN0b3J5IiwiTWVtb3J5U3RvcmUiLCJjcnlwdG9TdG9yZSIsIkluZGV4ZWREQkNyeXB0b1N0b3JlIiwiTG9jYWxTdG9yYWdlQ3J5cHRvU3RvcmUiLCJNZW1vcnlDcnlwdG9TdG9yZSIsImNyZWF0ZUNsaWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jcmVhdGVNYXRyaXhDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTctMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuaW1wb3J0IHtcbiAgICBNYXRyaXhDbGllbnQsXG4gICAgY3JlYXRlQ2xpZW50LFxuICAgIElDcmVhdGVDbGllbnRPcHRzLFxuICAgIE1lbW9yeUNyeXB0b1N0b3JlLFxuICAgIE1lbW9yeVN0b3JlLFxuICAgIEluZGV4ZWREQkNyeXB0b1N0b3JlLFxuICAgIEluZGV4ZWREQlN0b3JlLFxuICAgIExvY2FsU3RvcmFnZUNyeXB0b1N0b3JlLFxufSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmltcG9ydCBpbmRleGVkZGJXb3JrZXJGYWN0b3J5IGZyb20gXCIuLi93b3JrZXJzL2luZGV4ZWRkYldvcmtlckZhY3RvcnlcIjtcblxuY29uc3QgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZTtcblxuLy8ganVzdCAqYWNjZXNzaW5nKiBpbmRleGVkREIgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBmaXJlZm94IHdpdGhcbi8vIGluZGV4ZWRkYiBkaXNhYmxlZC5cbmxldCBpbmRleGVkREI6IElEQkZhY3Rvcnk7XG50cnkge1xuICAgIGluZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREI7XG59IGNhdGNoIChlKSB7fVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBtYXRyaXggY2xpZW50LCB3aXRoIHRoZSBwZXJzaXN0ZW50IHN0b3JlcyBzZXQgdXAgYXBwcm9wcmlhdGVseVxuICogKHVzaW5nIGxvY2Fsc3RvcmFnZS9pbmRleGVkZGIsIGV0YylcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyAgb3B0aW9ucyB0byBwYXNzIHRvIE1hdHJpeC5jcmVhdGVDbGllbnQuIFRoaXMgd2lsbCBiZVxuICogICAgZXh0ZW5kZWQgd2l0aCBgc2Vzc2lvblN0b3JlYCBhbmQgYHN0b3JlYCBtZW1iZXJzLlxuICpcbiAqIEByZXR1cm5zIHtNYXRyaXhDbGllbnR9IHRoZSBuZXdseS1jcmVhdGVkIE1hdHJpeENsaWVudFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVNYXRyaXhDbGllbnQob3B0czogSUNyZWF0ZUNsaWVudE9wdHMpOiBNYXRyaXhDbGllbnQge1xuICAgIGNvbnN0IHN0b3JlT3B0czogUGFydGlhbDxJQ3JlYXRlQ2xpZW50T3B0cz4gPSB7XG4gICAgICAgIHVzZUF1dGhvcml6YXRpb25IZWFkZXI6IHRydWUsXG4gICAgfTtcblxuICAgIGlmIChpbmRleGVkREIgJiYgbG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIHN0b3JlT3B0cy5zdG9yZSA9IG5ldyBJbmRleGVkREJTdG9yZSh7XG4gICAgICAgICAgICBpbmRleGVkREI6IGluZGV4ZWREQixcbiAgICAgICAgICAgIGRiTmFtZTogXCJyaW90LXdlYi1zeW5jXCIsXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UsXG4gICAgICAgICAgICB3b3JrZXJGYWN0b3J5OiBpbmRleGVkZGJXb3JrZXJGYWN0b3J5LFxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGxvY2FsU3RvcmFnZSkge1xuICAgICAgICBzdG9yZU9wdHMuc3RvcmUgPSBuZXcgTWVtb3J5U3RvcmUoeyBsb2NhbFN0b3JhZ2UgfSk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ZWREQikge1xuICAgICAgICBzdG9yZU9wdHMuY3J5cHRvU3RvcmUgPSBuZXcgSW5kZXhlZERCQ3J5cHRvU3RvcmUoaW5kZXhlZERCLCBcIm1hdHJpeC1qcy1zZGs6Y3J5cHRvXCIpO1xuICAgIH0gZWxzZSBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIHN0b3JlT3B0cy5jcnlwdG9TdG9yZSA9IG5ldyBMb2NhbFN0b3JhZ2VDcnlwdG9TdG9yZShsb2NhbFN0b3JhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHN0b3JlT3B0cy5jcnlwdG9TdG9yZSA9IG5ldyBNZW1vcnlDcnlwdG9TdG9yZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBjcmVhdGVDbGllbnQoe1xuICAgICAgICAuLi5zdG9y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