Skip to content

Commit 348ec52

Browse files
authored
Merge pull request element-hq#4565 from vector-im/rav/bluebird
Switch riot-web to bluebird
2 parents a303e1e + 76181f4 commit 348ec52

13 files changed

Lines changed: 64 additions & 62 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"dependencies": {
5555
"babel-polyfill": "^6.5.0",
5656
"babel-runtime": "^6.11.6",
57+
"bluebird": "^3.5.0",
5758
"browser-request": "^0.3.3",
5859
"classnames": "^2.1.2",
5960
"draft-js": "^0.8.1",
@@ -69,7 +70,6 @@
6970
"matrix-react-sdk": "0.9.7",
7071
"modernizr": "^3.1.0",
7172
"pako": "^1.0.5",
72-
"q": "^1.4.1",
7373
"react": "^15.4.0",
7474
"react-dnd": "^2.1.4",
7575
"react-dnd-html5-backend": "^2.1.2",

src/VectorConferenceHandler.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ limitations under the License.
1616

1717
"use strict";
1818

19-
var q = require("q");
19+
import Promise from 'bluebird';
2020
var Matrix = require("matrix-js-sdk");
2121
var Room = Matrix.Room;
2222
var CallHandler = require('matrix-react-sdk/lib/CallHandler');
@@ -53,11 +53,11 @@ ConferenceCall.prototype._joinConferenceUser = function() {
5353
// Make sure the conference user is in the group chat room
5454
var groupRoom = this.client.getRoom(this.groupRoomId);
5555
if (!groupRoom) {
56-
return q.reject("Bad group room ID");
56+
return Promise.reject("Bad group room ID");
5757
}
5858
var member = groupRoom.getMember(this.confUserId);
5959
if (member && member.membership === "join") {
60-
return q();
60+
return Promise.resolve();
6161
}
6262
return this.client.invite(this.groupRoomId, this.confUserId);
6363
};
@@ -75,7 +75,7 @@ ConferenceCall.prototype._getConferenceUserRoom = function() {
7575
}
7676
}
7777
if (confRoom) {
78-
return q(confRoom);
78+
return Promise.resolve(confRoom);
7979
}
8080
return this.client.createRoom({
8181
preset: "private_chat",

src/components/structures/RoomDirectory.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var linkify = require('linkifyjs');
2828
var linkifyString = require('linkifyjs/string');
2929
var linkifyMatrix = require('matrix-react-sdk/lib/linkify-matrix');
3030
var sanitizeHtml = require('sanitize-html');
31-
var q = require('q');
31+
import Promise from 'bluebird';
3232

3333
import { _t } from 'matrix-react-sdk/lib/languageHandler';
3434

@@ -117,7 +117,7 @@ module.exports = React.createClass({
117117
},
118118

119119
getMoreRooms: function() {
120-
if (!MatrixClientPeg.get()) return q();
120+
if (!MatrixClientPeg.get()) return Promise.resolve();
121121

122122
const my_filter_string = this.state.filterString;
123123
const my_server = this.state.roomServer;
@@ -266,7 +266,7 @@ module.exports = React.createClass({
266266
},
267267

268268
onFillRequest: function(backwards) {
269-
if (backwards || !this.nextBatch) return q(false);
269+
if (backwards || !this.nextBatch) return Promise.resolve(false);
270270

271271
return this.getMoreRooms();
272272
},

src/components/views/context_menus/RoomTileContextMenu.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limitations under the License.
1717

1818
'use strict';
1919

20-
import q from 'q';
20+
import Promise from 'bluebird';
2121
import React from 'react';
2222
import classNames from 'classnames';
2323
import sdk from 'matrix-react-sdk';
@@ -61,7 +61,7 @@ module.exports = React.createClass({
6161
const roomId = this.props.room.roomId;
6262
var cli = MatrixClientPeg.get();
6363
if (!cli.isGuest()) {
64-
q.delay(500).then(function() {
64+
Promise.delay(500).then(function() {
6565
if (tagNameOff !== null && tagNameOff !== undefined) {
6666
cli.deleteRoomTag(roomId, tagNameOff).finally(function() {
6767
// Close the context menu
@@ -212,7 +212,7 @@ module.exports = React.createClass({
212212
RoomNotifs.setRoomNotifsState(this.props.room.roomId, newState).done(() => {
213213
// delay slightly so that the user can see their state change
214214
// before closing the menu
215-
return q.delay(500).then(() => {
215+
return Promise.delay(500).then(() => {
216216
if (this._unmounted) return;
217217
// Close the context menu
218218
if (this.props.onFinished) {

src/components/views/settings/Notifications.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limitations under the License.
1717
'use strict';
1818
var React = require('react');
1919
import { _t, _tJsx } from 'matrix-react-sdk/lib/languageHandler';
20-
var q = require("q");
20+
import Promise from 'bluebird';
2121
var sdk = require('matrix-react-sdk');
2222
var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg');
2323
var UserSettingsStore = require('matrix-react-sdk/lib/UserSettingsStore');
@@ -236,7 +236,7 @@ module.exports = React.createClass({
236236
}
237237
}
238238

239-
q.all(deferreds).done(function() {
239+
Promise.all(deferreds).done(function() {
240240
self._refreshFromServer();
241241
}, function(error) {
242242
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
@@ -306,7 +306,7 @@ module.exports = React.createClass({
306306
}
307307
}
308308

309-
q.all(deferreds).done(function(resps) {
309+
Promise.all(deferreds).done(function(resps) {
310310
self._refreshFromServer();
311311
}, function(error) {
312312
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
@@ -361,7 +361,7 @@ module.exports = React.createClass({
361361
}
362362

363363
// Then, add the new ones
364-
q.all(removeDeferreds).done(function(resps) {
364+
Promise.all(removeDeferreds).done(function(resps) {
365365
var deferreds = [];
366366

367367
var pushRuleVectorStateKind = self.state.vectorContentRules.vectorState;
@@ -399,7 +399,7 @@ module.exports = React.createClass({
399399
}
400400
}
401401

402-
q.all(deferreds).done(function(resps) {
402+
Promise.all(deferreds).done(function(resps) {
403403
self._refreshFromServer();
404404
}, onError);
405405
}, onError);
@@ -431,7 +431,9 @@ module.exports = React.createClass({
431431
'global', kind, LEGACY_RULES[rule.rule_id], portLegacyActions(rule.actions)
432432
).then( function() {
433433
return cli.deletePushRule('global', kind, rule.rule_id);
434-
})
434+
}).catch( (e) => {
435+
console.warn(`Error when porting legacy rule: ${e}`);
436+
});
435437
}(kind, rule));
436438
}
437439
}
@@ -440,7 +442,7 @@ module.exports = React.createClass({
440442
if (needsUpdate.length > 0) {
441443
// If some of the rules need to be ported then wait for the porting
442444
// to happen and then fetch the rules again.
443-
return q.allSettled(needsUpdate).then( function() {
445+
return Promise.all(needsUpdate).then( function() {
444446
return cli.getPushRules();
445447
});
446448
} else {
@@ -594,7 +596,7 @@ module.exports = React.createClass({
594596
self.setState({pushers: resp.pushers});
595597
});
596598

597-
q.all([pushRulesPromise, pushersPromise]).then(function() {
599+
Promise.all([pushRulesPromise, pushersPromise]).then(function() {
598600
self.setState({
599601
phase: self.phases.DISPLAY
600602
});

src/vector/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ var sdk = require("matrix-react-sdk");
6565
const PlatformPeg = require("matrix-react-sdk/lib/PlatformPeg");
6666
sdk.loadSkin(require('../component-index'));
6767
var VectorConferenceHandler = require('../VectorConferenceHandler');
68-
var q = require('q');
68+
import Promise from 'bluebird';
6969
var request = require('browser-request');
7070
import * as UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore';
7171
import * as languageHandler from 'matrix-react-sdk/lib/languageHandler';
@@ -188,7 +188,7 @@ var makeRegistrationUrl = function(params) {
188188
window.addEventListener('hashchange', onHashChange);
189189

190190
function getConfig() {
191-
let deferred = q.defer();
191+
let deferred = Promise.defer();
192192

193193
request(
194194
{ method: "GET", url: "config.json" },

src/vector/platform/ElectronPlatform.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ limitations under the License.
2020
import VectorBasePlatform, {updateCheckStatusEnum} from './VectorBasePlatform';
2121
import dis from 'matrix-react-sdk/lib/dispatcher';
2222
import { _t } from 'matrix-react-sdk/lib/languageHandler';
23-
import q from 'q';
23+
import Promise from 'bluebird';
2424
import {remote, ipcRenderer} from 'electron';
2525
import rageshake from '../rageshake';
2626

@@ -173,7 +173,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
173173
}
174174

175175
getAppVersion(): Promise<string> {
176-
return q(remote.app.getVersion());
176+
return Promise.resolve(remote.app.getVersion());
177177
}
178178

179179
startUpdateCheck() {
@@ -201,7 +201,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
201201
isElectron(): boolean { return true; }
202202

203203
requestNotificationPermission(): Promise<string> {
204-
return q('granted');
204+
return Promise.resolve('granted');
205205
}
206206

207207
reload() {

src/vector/platform/WebPlatform.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import VectorBasePlatform, {updateCheckStatusEnum} from './VectorBasePlatform';
2121
import request from 'browser-request';
2222
import dis from 'matrix-react-sdk/lib/dispatcher.js';
2323
import { _t } from 'matrix-react-sdk/lib/languageHandler';
24-
import q from 'q';
24+
import Promise from 'bluebird';
2525

2626
import url from 'url';
2727
import UAParser from 'ua-parser-js';
@@ -68,7 +68,7 @@ export default class WebPlatform extends VectorBasePlatform {
6868
// annoyingly, the latest spec says this returns a
6969
// promise, but this is only supported in Chrome 46
7070
// and Firefox 47, so adapt the callback API.
71-
const defer = q.defer();
71+
const defer = Promise.defer();
7272
global.Notification.requestPermission((result) => {
7373
defer.resolve(result);
7474
});
@@ -103,7 +103,7 @@ export default class WebPlatform extends VectorBasePlatform {
103103
}
104104

105105
_getVersion(): Promise<string> {
106-
const deferred = q.defer();
106+
const deferred = Promise.defer();
107107

108108
// We add a cachebuster to the request to make sure that we know about
109109
// the most recent version on the origin server. That might not
@@ -132,7 +132,7 @@ export default class WebPlatform extends VectorBasePlatform {
132132

133133
getAppVersion(): Promise<string> {
134134
if (this.runningVersion !== null) {
135-
return q(this.runningVersion);
135+
return Promise.resolve(this.runningVersion);
136136
}
137137
return this._getVersion();
138138
}

src/vector/rageshake.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
import q from "q";
17+
import Promise from 'bluebird';
1818

1919
// This module contains all the code needed to log the console, persist it to
2020
// disk and submit bug reports. Rationale is as follows:
@@ -116,7 +116,7 @@ class IndexedDBLogStore {
116116
*/
117117
connect() {
118118
let req = this.indexedDB.open("logs");
119-
return q.Promise((resolve, reject) => {
119+
return new Promise((resolve, reject) => {
120120
req.onsuccess = (event) => {
121121
this.db = event.target.result;
122122
// Periodically flush logs to local storage / indexeddb
@@ -193,7 +193,7 @@ class IndexedDBLogStore {
193193
}
194194
// there is no flush promise or there was but it has finished, so do
195195
// a brand new one, destroying the chain which may have been built up.
196-
this.flushPromise = q.Promise((resolve, reject) => {
196+
this.flushPromise = new Promise((resolve, reject) => {
197197
if (!this.db) {
198198
// not connected yet or user rejected access for us to r/w to
199199
// the db.
@@ -277,7 +277,7 @@ class IndexedDBLogStore {
277277
}
278278

279279
function deleteLogs(id) {
280-
return q.Promise((resolve, reject) => {
280+
return new Promise((resolve, reject) => {
281281
const txn = db.transaction(
282282
["logs", "logslastmod"], "readwrite"
283283
);
@@ -375,7 +375,7 @@ class IndexedDBLogStore {
375375
*/
376376
function selectQuery(store, keyRange, resultMapper) {
377377
const query = store.openCursor(keyRange);
378-
return q.Promise((resolve, reject) => {
378+
return new Promise((resolve, reject) => {
379379
let results = [];
380380
query.onerror = (event) => {
381381
reject(new Error("Query failed: " + event.target.errorCode));

src/vector/submit-rageshake.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ limitations under the License.
1515
*/
1616

1717
import pako from 'pako';
18-
import q from "q";
18+
import Promise from 'bluebird';
1919

2020
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
2121
import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
@@ -100,7 +100,7 @@ export default async function sendBugReport(bugReportEndpoint, opts) {
100100
}
101101

102102
function _submitReport(endpoint, body, progressCallback) {
103-
const deferred = q.defer();
103+
const deferred = Promise.defer();
104104

105105
const req = new XMLHttpRequest();
106106
req.open("POST", endpoint);

0 commit comments

Comments
 (0)