Use async/await instead of explicit promises
This commit is contained in:
parent
d9093c09ee
commit
461ebc0aea
57
dist/converse.js
vendored
57
dist/converse.js
vendored
@ -65812,21 +65812,21 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|||||||
return _converse.getDevicesForContact(jid).then(devices => devices.get(device_id));
|
return _converse.getDevicesForContact(jid).then(devices => devices.get(device_id));
|
||||||
};
|
};
|
||||||
|
|
||||||
_converse.getDevicesForContact = function (jid) {
|
_converse.getDevicesForContact = async function (jid) {
|
||||||
let devicelist;
|
await _converse.api.waitUntil('OMEMOInitialized');
|
||||||
return _converse.api.waitUntil('OMEMOInitialized').then(() => {
|
|
||||||
devicelist = _converse.devicelists.get(jid) || _converse.devicelists.create({
|
const devicelist = _converse.devicelists.get(jid) || _converse.devicelists.create({
|
||||||
'jid': jid
|
'jid': jid
|
||||||
});
|
});
|
||||||
return devicelist.fetchDevices();
|
|
||||||
}).then(() => devicelist.devices);
|
await devicelist.fetchDevices();
|
||||||
|
return devicelist.devices;
|
||||||
};
|
};
|
||||||
|
|
||||||
_converse.contactHasOMEMOSupport = function (jid) {
|
_converse.contactHasOMEMOSupport = async function (jid) {
|
||||||
/* Checks whether the contact advertises any OMEMO-compatible devices. */
|
/* Checks whether the contact advertises any OMEMO-compatible devices. */
|
||||||
return new Promise((resolve, reject) => {
|
const devices = await _converse.getDevicesForContact(jid);
|
||||||
_converse.getDevicesForContact(jid).then(devices => resolve(devices.length > 0)).catch(_.partial(_converse.log, _, Strophe.LogLevel.ERROR));
|
return devices.length > 0;
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function generateDeviceID() {
|
function generateDeviceID() {
|
||||||
@ -66192,22 +66192,23 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|||||||
|
|
||||||
fetchDevices() {
|
fetchDevices() {
|
||||||
if (_.isUndefined(this._devices_promise)) {
|
if (_.isUndefined(this._devices_promise)) {
|
||||||
this._devices_promise = new Promise((resolve, reject) => {
|
const options = {
|
||||||
this.devices.fetch({
|
'success': c => this.onCachedDevicesFetched(c),
|
||||||
'success': collection => {
|
'error': e => _converse.log(e, Strophe.LogLevel.ERROR)
|
||||||
if (collection.length === 0) {
|
};
|
||||||
this.fetchDevicesFromServer().then(ids => this.publishCurrentDevice(ids)).finally(resolve);
|
this._devices_promise = this.devices.fetch(options);
|
||||||
} else {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this._devices_promise;
|
return this._devices_promise;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async onCachedDevicesFetched(collection) {
|
||||||
|
if (collection.length === 0) {
|
||||||
|
const ids = await this.fetchDevicesFromServer();
|
||||||
|
this.publishCurrentDevice(ids);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
async publishCurrentDevice(device_ids) {
|
async publishCurrentDevice(device_ids) {
|
||||||
if (this.get('jid') !== _converse.bare_jid) {
|
if (this.get('jid') !== _converse.bare_jid) {
|
||||||
// We only publish for ourselves.
|
// We only publish for ourselves.
|
||||||
@ -66231,7 +66232,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
fetchDevicesFromServer() {
|
async fetchDevicesFromServer() {
|
||||||
const stanza = $iq({
|
const stanza = $iq({
|
||||||
'type': 'get',
|
'type': 'get',
|
||||||
'from': _converse.bare_jid,
|
'from': _converse.bare_jid,
|
||||||
@ -66241,7 +66242,16 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|||||||
}).c('items', {
|
}).c('items', {
|
||||||
'node': Strophe.NS.OMEMO_DEVICELIST
|
'node': Strophe.NS.OMEMO_DEVICELIST
|
||||||
});
|
});
|
||||||
return _converse.api.sendIQ(stanza).then(iq => {
|
let iq;
|
||||||
|
|
||||||
|
try {
|
||||||
|
iq = await _converse.api.sendIQ(stanza);
|
||||||
|
} catch (e) {
|
||||||
|
_converse.log(e, Strophe.LogLevel.ERROR);
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
const device_ids = _.map(sizzle(`list[xmlns="${Strophe.NS.OMEMO}"] device`, iq), dev => dev.getAttribute('id'));
|
const device_ids = _.map(sizzle(`list[xmlns="${Strophe.NS.OMEMO}"] device`, iq), dev => dev.getAttribute('id'));
|
||||||
|
|
||||||
_.forEach(device_ids, id => this.devices.create({
|
_.forEach(device_ids, id => this.devices.create({
|
||||||
@ -66250,7 +66260,6 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
return device_ids;
|
return device_ids;
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
publishDevices() {
|
publishDevices() {
|
||||||
|
@ -497,22 +497,17 @@ converse.plugins.add('converse-omemo', {
|
|||||||
return _converse.getDevicesForContact(jid).then(devices => devices.get(device_id));
|
return _converse.getDevicesForContact(jid).then(devices => devices.get(device_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
_converse.getDevicesForContact = function (jid) {
|
_converse.getDevicesForContact = async function (jid) {
|
||||||
let devicelist;
|
await _converse.api.waitUntil('OMEMOInitialized');
|
||||||
return _converse.api.waitUntil('OMEMOInitialized')
|
const devicelist = _converse.devicelists.get(jid) || _converse.devicelists.create({'jid': jid});
|
||||||
.then(() => {
|
await devicelist.fetchDevices();
|
||||||
devicelist = _converse.devicelists.get(jid) || _converse.devicelists.create({'jid': jid});
|
return devicelist.devices;
|
||||||
return devicelist.fetchDevices();
|
|
||||||
}).then(() => devicelist.devices);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_converse.contactHasOMEMOSupport = function (jid) {
|
_converse.contactHasOMEMOSupport = async function (jid) {
|
||||||
/* Checks whether the contact advertises any OMEMO-compatible devices. */
|
/* Checks whether the contact advertises any OMEMO-compatible devices. */
|
||||||
return new Promise((resolve, reject) => {
|
const devices = await _converse.getDevicesForContact(jid);
|
||||||
_converse.getDevicesForContact(jid)
|
return devices.length > 0;
|
||||||
.then((devices) => resolve(devices.length > 0))
|
|
||||||
.catch(_.partial(_converse.log, _, Strophe.LogLevel.ERROR));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -845,23 +840,22 @@ converse.plugins.add('converse-omemo', {
|
|||||||
|
|
||||||
fetchDevices () {
|
fetchDevices () {
|
||||||
if (_.isUndefined(this._devices_promise)) {
|
if (_.isUndefined(this._devices_promise)) {
|
||||||
this._devices_promise = new Promise((resolve, reject) => {
|
const options = {
|
||||||
this.devices.fetch({
|
'success': c => this.onCachedDevicesFetched(c),
|
||||||
'success': (collection) => {
|
'error': e => _converse.log(e, Strophe.LogLevel.ERROR)
|
||||||
if (collection.length === 0) {
|
|
||||||
this.fetchDevicesFromServer()
|
|
||||||
.then(ids => this.publishCurrentDevice(ids))
|
|
||||||
.finally(resolve)
|
|
||||||
} else {
|
|
||||||
resolve();
|
|
||||||
}
|
}
|
||||||
}
|
this._devices_promise = this.devices.fetch(options);
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return this._devices_promise;
|
return this._devices_promise;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async onCachedDevicesFetched (collection) {
|
||||||
|
if (collection.length === 0) {
|
||||||
|
const ids = await this.fetchDevicesFromServer()
|
||||||
|
this.publishCurrentDevice(ids);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
async publishCurrentDevice (device_ids) {
|
async publishCurrentDevice (device_ids) {
|
||||||
if (this.get('jid') !== _converse.bare_jid) {
|
if (this.get('jid') !== _converse.bare_jid) {
|
||||||
// We only publish for ourselves.
|
// We only publish for ourselves.
|
||||||
@ -879,19 +873,24 @@ converse.plugins.add('converse-omemo', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
fetchDevicesFromServer () {
|
async fetchDevicesFromServer () {
|
||||||
const stanza = $iq({
|
const stanza = $iq({
|
||||||
'type': 'get',
|
'type': 'get',
|
||||||
'from': _converse.bare_jid,
|
'from': _converse.bare_jid,
|
||||||
'to': this.get('jid')
|
'to': this.get('jid')
|
||||||
}).c('pubsub', {'xmlns': Strophe.NS.PUBSUB})
|
}).c('pubsub', {'xmlns': Strophe.NS.PUBSUB})
|
||||||
.c('items', {'node': Strophe.NS.OMEMO_DEVICELIST});
|
.c('items', {'node': Strophe.NS.OMEMO_DEVICELIST});
|
||||||
return _converse.api.sendIQ(stanza)
|
|
||||||
.then(iq => {
|
let iq;
|
||||||
|
try {
|
||||||
|
iq = await _converse.api.sendIQ(stanza);
|
||||||
|
} catch (e) {
|
||||||
|
_converse.log(e, Strophe.LogLevel.ERROR);
|
||||||
|
return [];
|
||||||
|
}
|
||||||
const device_ids = _.map(sizzle(`list[xmlns="${Strophe.NS.OMEMO}"] device`, iq), dev => dev.getAttribute('id'));
|
const device_ids = _.map(sizzle(`list[xmlns="${Strophe.NS.OMEMO}"] device`, iq), dev => dev.getAttribute('id'));
|
||||||
_.forEach(device_ids, id => this.devices.create({'id': id, 'jid': this.get('jid')}));
|
_.forEach(device_ids, id => this.devices.create({'id': id, 'jid': this.get('jid')}));
|
||||||
return device_ids;
|
return device_ids;
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
publishDevices () {
|
publishDevices () {
|
||||||
|
Loading…
Reference in New Issue
Block a user