Use @converse/openpromise
This commit is contained in:
parent
57ccf4c20e
commit
3d58b67517
|
@ -590,7 +590,7 @@ window.addEventListener('converse-loaded', () => {
|
|||
};
|
||||
|
||||
function clearIndexedDB () {
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = u.getOpenPromise();
|
||||
const db_request = window.indexedDB.open("converse-test-persistent");
|
||||
db_request.onsuccess = function () {
|
||||
const db = db_request.result;
|
||||
|
|
|
@ -35,6 +35,7 @@ import { Model } from '@converse/skeletor/src/model.js';
|
|||
import { Strophe, $build, $iq, $msg, $pres } from 'strophe.js/src/strophe';
|
||||
import { TimeoutError } from '@converse/headless/shared/errors';
|
||||
import { createStore, replacePromise } from '@converse/headless/shared/utils';
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
import { html } from 'lit-element';
|
||||
import { sprintf } from 'sprintf-js';
|
||||
|
||||
|
@ -355,7 +356,7 @@ export const api = _converse.api = {
|
|||
*/
|
||||
await api.trigger('beforeLogout', {'synchronous': true});
|
||||
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = getOpenPromise();
|
||||
const complete = () => {
|
||||
// Recreate all the promises
|
||||
Object.keys(_converse.promises).forEach(replacePromise);
|
||||
|
@ -563,7 +564,7 @@ export const api = _converse.api = {
|
|||
add (promises, replace=true) {
|
||||
promises = Array.isArray(promises) ? promises : [promises];
|
||||
promises.forEach(name => {
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = getOpenPromise();
|
||||
promise.replace = replace;
|
||||
_converse.promises[name] = promise;
|
||||
});
|
||||
|
|
|
@ -3,6 +3,7 @@ import Bookmark from './model.js';
|
|||
import log from "@converse/headless/log.js";
|
||||
import { __ } from 'i18n';
|
||||
import { _converse, api, converse } from "@converse/headless/core";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
import { initStorage } from '@converse/headless/shared/utils.js';
|
||||
|
||||
const { Strophe, $iq, sizzle } = converse.env;
|
||||
|
@ -40,7 +41,7 @@ const Bookmarks = {
|
|||
},
|
||||
|
||||
fetchBookmarks () {
|
||||
const deferred = u.getResolveablePromise();
|
||||
const deferred = getOpenPromise();
|
||||
if (window.sessionStorage.getItem(this.fetched_flag)) {
|
||||
this.fetch({
|
||||
'success': () => deferred.resolve(),
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import ModelWithContact from './model-with-contact.js';
|
||||
import log from '../../log.js';
|
||||
import { _converse, api, converse } from '../../core.js';
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
const u = converse.env.utils;
|
||||
const { Strophe } = converse.env;
|
||||
|
@ -26,7 +27,7 @@ const MessageMixin = {
|
|||
if (!this.checkValidity()) {
|
||||
return;
|
||||
}
|
||||
this.initialized = u.getResolveablePromise();
|
||||
this.initialized = getOpenPromise();
|
||||
if (this.get('type') === 'chat') {
|
||||
ModelWithContact.prototype.initialize.apply(this, arguments);
|
||||
this.setRosterContact(Strophe.getBareJidFromJid(this.get('from')));
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import { api, converse } from "../../core.js";
|
||||
import { Model } from '@converse/skeletor/src/model.js';
|
||||
|
||||
const u = converse.env.utils;
|
||||
|
||||
import { api } from "../../core.js";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
const ModelWithContact = Model.extend({
|
||||
|
||||
initialize () {
|
||||
this.rosterContactAdded = u.getResolveablePromise();
|
||||
this.rosterContactAdded = getOpenPromise();
|
||||
},
|
||||
|
||||
async setRosterContact (jid) {
|
||||
|
|
|
@ -6,6 +6,7 @@ import log from '@converse/headless/log';
|
|||
import pick from "lodash/pick";
|
||||
import { Model } from '@converse/skeletor/src/model.js';
|
||||
import { _converse, api, converse } from "../../core.js";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
import { initStorage } from '@converse/headless/shared/utils.js';
|
||||
import { parseMessage } from './parsers.js';
|
||||
import { sendMarker } from '@converse/headless/shared/actions';
|
||||
|
@ -39,7 +40,7 @@ const ChatBox = ModelWithContact.extend({
|
|||
},
|
||||
|
||||
async initialize () {
|
||||
this.initialized = u.getResolveablePromise();
|
||||
this.initialized = getOpenPromise();
|
||||
ModelWithContact.prototype.initialize.apply(this, arguments);
|
||||
|
||||
const jid = this.get('jid');
|
||||
|
@ -84,7 +85,7 @@ const ChatBox = ModelWithContact.extend({
|
|||
|
||||
initMessages () {
|
||||
this.messages = this.getMessagesCollection();
|
||||
this.messages.fetched = u.getResolveablePromise();
|
||||
this.messages.fetched = getOpenPromise();
|
||||
this.messages.fetched.then(() => {
|
||||
/**
|
||||
* Triggered whenever a `_converse.ChatBox` instance has fetched its messages from
|
||||
|
@ -244,7 +245,7 @@ const ChatBox = ModelWithContact.extend({
|
|||
} finally {
|
||||
delete this.msg_chain;
|
||||
delete this.messages.fetched_flag;
|
||||
this.messages.fetched = u.getResolveablePromise();
|
||||
this.messages.fetched = getOpenPromise();
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { _converse, api, converse } from "@converse/headless/core.js";
|
||||
import isObject from "lodash-es/isObject";
|
||||
import log from "@converse/headless/log.js";
|
||||
import { _converse, api, converse } from "@converse/headless/core.js";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
const { Strophe, $iq, utils } = converse.env;
|
||||
const { Strophe, $iq } = converse.env;
|
||||
|
||||
|
||||
export default {
|
||||
|
@ -310,7 +311,7 @@ export default {
|
|||
entity.fields.reset();
|
||||
entity.identities.reset();
|
||||
if (!entity.waitUntilFeaturesDiscovered.isPending) {
|
||||
entity.waitUntilFeaturesDiscovered = utils.getResolveablePromise()
|
||||
entity.waitUntilFeaturesDiscovered = getOpenPromise()
|
||||
}
|
||||
entity.queryInfo();
|
||||
} else {
|
||||
|
|
|
@ -3,8 +3,9 @@ import sizzle from "sizzle";
|
|||
import { Collection } from "@converse/skeletor/src/collection";
|
||||
import { Model } from '@converse/skeletor/src/model.js';
|
||||
import { _converse, api, converse } from "@converse/headless/core.js";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
const { Strophe, utils } = converse.env;
|
||||
const { Strophe } = converse.env;
|
||||
|
||||
/**
|
||||
* @class
|
||||
|
@ -19,7 +20,7 @@ const DiscoEntity = Model.extend({
|
|||
idAttribute: 'jid',
|
||||
|
||||
initialize (attrs, options) {
|
||||
this.waitUntilFeaturesDiscovered = utils.getResolveablePromise();
|
||||
this.waitUntilFeaturesDiscovered = getOpenPromise();
|
||||
|
||||
this.dataforms = new Collection();
|
||||
let id = `converse.dataforms-${this.get('jid')}`;
|
||||
|
|
|
@ -6,13 +6,14 @@
|
|||
import { ASCII_REPLACE_REGEX, CODEPOINTS_REGEX } from './regexes.js';
|
||||
import { Model } from '@converse/skeletor/src/model.js';
|
||||
import { _converse, api, converse } from "../../core.js";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
import { html } from 'lit-html';
|
||||
|
||||
const u = converse.env.utils;
|
||||
|
||||
converse.emojis = {
|
||||
'initialized': false,
|
||||
'initialized_promise': u.getResolveablePromise()
|
||||
'initialized_promise': getOpenPromise()
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import { Model } from '@converse/skeletor/src/model.js';
|
|||
import { Strophe, $build, $iq, $msg, $pres } from 'strophe.js/src/strophe';
|
||||
import { _converse, api, converse } from '../../core.js';
|
||||
import { computeAffiliationsDelta, setAffiliations, getAffiliationList } from './affiliations/utils.js';
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
import { initStorage } from '@converse/headless/shared/utils.js';
|
||||
import { isArchived } from '@converse/headless/shared/parsers';
|
||||
import { parseMUCMessage, parseMUCPresence } from './parsers.js';
|
||||
|
@ -84,7 +85,7 @@ const ChatRoomMixin = {
|
|||
},
|
||||
|
||||
async initialize () {
|
||||
this.initialized = u.getResolveablePromise();
|
||||
this.initialized = getOpenPromise();
|
||||
this.debouncedRejoin = debounce(this.rejoin, 250);
|
||||
this.set('box_id', `box-${this.get('jid')}`);
|
||||
this.initNotifications();
|
||||
|
@ -674,7 +675,7 @@ const ChatRoomMixin = {
|
|||
id = this.getUniqueId('sendIQ');
|
||||
el.setAttribute('id', id);
|
||||
}
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = getOpenPromise();
|
||||
const timeoutHandler = _converse.connection.addTimedHandler(_converse.STANZA_TIMEOUT, () => {
|
||||
_converse.connection.deleteHandler(handler);
|
||||
promise.reject(new _converse.TimeoutError('Timeout Error: No response from server'));
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import { _converse, api, converse } from "@converse/headless/core";
|
||||
import { Model } from '@converse/skeletor/src/model.js';
|
||||
import { _converse, api, converse } from "@converse/headless/core";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
const { Strophe, $iq, $pres, u } = converse.env;
|
||||
const { Strophe, $iq, $pres } = converse.env;
|
||||
|
||||
/**
|
||||
* @class
|
||||
|
@ -17,7 +18,7 @@ const RosterContact = Model.extend({
|
|||
},
|
||||
|
||||
async initialize (attributes) {
|
||||
this.initialized = u.getResolveablePromise();
|
||||
this.initialized = getOpenPromise();
|
||||
this.setPresence();
|
||||
const { jid } = attributes;
|
||||
const bare_jid = Strophe.getBareJidFromJid(jid).toLowerCase();
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
/**
|
||||
* @module converse-smacks
|
||||
* @copyright The Converse.js contributors
|
||||
* @license Mozilla Public License (MPLv2)
|
||||
* @description Converse.js plugin which adds support for XEP-0198: Stream Management
|
||||
*/
|
||||
import { _converse, api, converse } from "../core.js";
|
||||
import log from "../log.js";
|
||||
import { _converse, api, converse } from "../core.js";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
const { Strophe } = converse.env;
|
||||
const u = converse.env.utils;
|
||||
|
@ -158,7 +158,7 @@ function onResumedStanza (el) {
|
|||
}
|
||||
|
||||
async function sendResumeStanza () {
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = getOpenPromise();
|
||||
_converse.connection._addSysHandler(el => promise.resolve(onResumedStanza(el)), Strophe.NS.SM, 'resumed');
|
||||
_converse.connection._addSysHandler(el => promise.resolve(onFailedStanza(el)), Strophe.NS.SM, 'failed');
|
||||
|
||||
|
@ -175,7 +175,7 @@ async function sendEnableStanza () {
|
|||
return;
|
||||
}
|
||||
if (await isStreamManagementSupported()) {
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = getOpenPromise();
|
||||
_converse.connection._addSysHandler(el => promise.resolve(saveSessionData(el)), Strophe.NS.SM, 'enabled');
|
||||
_converse.connection._addSysHandler(el => promise.resolve(onFailedStanza(el)), Strophe.NS.SM, 'failed');
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import i18n from '@converse/headless/shared/i18n';
|
||||
import log from '@converse/headless/log';
|
||||
import u from '@converse/headless/utils/core';
|
||||
import { CONNECTION_STATUS } from '@converse/headless/shared/constants';
|
||||
import { Router } from '@converse/skeletor/src/router.js';
|
||||
import { TimeoutError } from '@converse/headless/shared/errors';
|
||||
import { createStore, getDefaultStore } from '@converse/headless/shared/utils.js';
|
||||
import { getInitSettings } from '@converse/headless/shared/settings';
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
|
||||
/**
|
||||
|
@ -19,7 +19,7 @@ const _converse = {
|
|||
CONNECTION_STATUS,
|
||||
templates: {},
|
||||
promises: {
|
||||
'initialized': u.getResolveablePromise()
|
||||
'initialized': getOpenPromise()
|
||||
},
|
||||
|
||||
STATUS_WEIGHTS: {
|
||||
|
|
|
@ -2,9 +2,9 @@ import debounce from 'lodash/debounce';
|
|||
import isElement from 'lodash/isElement';
|
||||
import log from "../log.js";
|
||||
import sizzle from 'sizzle';
|
||||
import u from '@converse/headless/utils/core';
|
||||
import { Strophe } from 'strophe.js/src/core';
|
||||
import { _converse, api, clearSession, tearDown } from "../core.js";
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
|
||||
const BOSH_WAIT = 59;
|
||||
|
@ -331,7 +331,7 @@ export class Connection extends Strophe.Connection {
|
|||
|
||||
restoreWorkerSession () {
|
||||
this.attach(this.onConnectStatusChanged);
|
||||
this.worker_attach_promise = u.getResolveablePromise();
|
||||
this.worker_attach_promise = getOpenPromise();
|
||||
return this.worker_attach_promise;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Storage from '@converse/skeletor/src/storage.js';
|
||||
import log from '@converse/headless/log';
|
||||
import u from '@converse/headless/utils/core';
|
||||
import { _converse, api } from '@converse/headless/core';
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
export function getDefaultStore () {
|
||||
if (_converse.config.get('trusted')) {
|
||||
|
@ -38,7 +38,7 @@ export function replacePromise (name) {
|
|||
throw new Error(`Tried to replace non-existing promise: ${name}`);
|
||||
}
|
||||
if (existing_promise.replace) {
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = getOpenPromise();
|
||||
promise.replace = existing_promise.replace;
|
||||
_converse.promises[name] = promise;
|
||||
} else {
|
||||
|
|
|
@ -11,6 +11,7 @@ import log from "@converse/headless/log";
|
|||
import sizzle from "sizzle";
|
||||
import { Model } from '@converse/skeletor/src/model.js';
|
||||
import { Strophe } from 'strophe.js/src/strophe';
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
/**
|
||||
* The utils object
|
||||
|
@ -328,38 +329,8 @@ u.isPersistableModel = function (model) {
|
|||
return model.collection && model.collection.browserStorage;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns a promise object on which `resolve` or `reject` can be called.
|
||||
* @private
|
||||
* @method u#getResolveablePromise
|
||||
*/
|
||||
u.getResolveablePromise = function () {
|
||||
const wrapper = {
|
||||
isResolved: false,
|
||||
isPending: true,
|
||||
isRejected: false
|
||||
};
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
wrapper.resolve = resolve;
|
||||
wrapper.reject = reject;
|
||||
})
|
||||
Object.assign(promise, wrapper);
|
||||
promise.then(
|
||||
function (v) {
|
||||
promise.isResolved = true;
|
||||
promise.isPending = false;
|
||||
promise.isRejected = false;
|
||||
return v;
|
||||
},
|
||||
function (e) {
|
||||
promise.isResolved = false;
|
||||
promise.isPending = false;
|
||||
promise.isRejected = true;
|
||||
throw (e);
|
||||
}
|
||||
);
|
||||
return promise;
|
||||
};
|
||||
u.getResolveablePromise = getOpenPromise;
|
||||
u.getOpenPromise = getOpenPromise;
|
||||
|
||||
u.interpolate = function (string, o) {
|
||||
return string.replace(/{{{([^{}]*)}}}/g,
|
||||
|
@ -576,7 +547,7 @@ u.waitUntil = function (func, max_wait=300, check_delay=3) {
|
|||
return Promise.reject(e);
|
||||
}
|
||||
|
||||
const promise = u.getResolveablePromise();
|
||||
const promise = getOpenPromise();
|
||||
const timeout_err = new Error();
|
||||
|
||||
function checker () {
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
import BootstrapModal from './base.js';
|
||||
import tpl_prompt from "./templates/prompt.js";
|
||||
import { converse } from "@converse/headless/core";
|
||||
|
||||
const u = converse.env.utils;
|
||||
import { getOpenPromise } from '@converse/openpromise';
|
||||
|
||||
|
||||
const Confirm = BootstrapModal.extend({
|
||||
|
@ -12,7 +10,7 @@ const Confirm = BootstrapModal.extend({
|
|||
},
|
||||
|
||||
initialize () {
|
||||
this.confirmation = u.getResolveablePromise();
|
||||
this.confirmation = getOpenPromise();
|
||||
BootstrapModal.prototype.initialize.apply(this, arguments);
|
||||
this.listenTo(this.model, 'change', this.render)
|
||||
this.el.addEventListener('closed.bs.modal', () => this.confirmation.reject(), false);
|
||||
|
|
Loading…
Reference in New Issue
Block a user