DEV: Try reducing RSVP usage

Native Promises ftw?
This commit is contained in:
Jarek Radosz 2022-08-17 12:54:35 +02:00
parent 83a975a28b
commit 87a6cf0133
No known key found for this signature in database
GPG Key ID: 62D0FBAE5BF9B953
83 changed files with 2 additions and 87 deletions

View File

@ -1,7 +1,6 @@
import I18n from "I18n";
import Mixin from "@ember/object/mixin";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { Promise } from "rsvp";
import bootbox from "bootbox";
import { extractError } from "discourse/lib/ajax-error";
import { next } from "@ember/runloop";

View File

@ -3,7 +3,6 @@ import { fmt, propertyNotEqual } from "discourse/lib/computed";
import { alias, oneWay } from "@ember/object/computed";
import I18n from "I18n";
import Mixin from "@ember/object/mixin";
import { Promise } from "rsvp";
import { ajax } from "discourse/lib/ajax";
import { categoryLinkHTML } from "discourse/helpers/category-link";
import discourseComputed, { bind } from "discourse-common/utils/decorators";

View File

@ -1,7 +1,6 @@
import { filter, gt, lt, not, or } from "@ember/object/computed";
import Group from "discourse/models/group";
import I18n from "I18n";
import { Promise } from "rsvp";
import User from "discourse/models/user";
import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";

View File

@ -1,6 +1,5 @@
import AdminUser from "admin/models/admin-user";
import I18n from "I18n";
import { Promise } from "rsvp";
import Service from "@ember/service";
import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";

View File

@ -10,7 +10,6 @@ import {
} from "discourse/lib/click-track";
import Scrolling from "discourse/mixins/scrolling";
import I18n from "I18n";
import { Promise } from "rsvp";
export default Component.extend(Scrolling, {
classNames: ["bookmark-list-wrapper"],

View File

@ -4,7 +4,6 @@ import Component from "@ember/component";
import I18n from "I18n";
import KeyboardShortcuts from "discourse/lib/keyboard-shortcuts";
import ItsATrap from "@discourse/itsatrap";
import { Promise } from "rsvp";
import {
TIME_SHORTCUT_TYPES,
defaultTimeShortcuts,

View File

@ -15,7 +15,6 @@ import { schedule, scheduleOnce } from "@ember/runloop";
import Component from "@ember/component";
import I18n from "I18n";
import ItsATrap from "@discourse/itsatrap";
import { Promise } from "rsvp";
import { SKIP } from "discourse/lib/autocomplete";
import { categoryHashtagTriggerRule } from "discourse/lib/category-hashtags";
import deprecated from "discourse-common/lib/deprecated";

View File

@ -2,7 +2,6 @@
import discourseComputed, { on } from "discourse-common/utils/decorators";
import Component from "@ember/component";
import I18n from "I18n";
import { Promise } from "rsvp";
import { action } from "@ember/object";
import loadScript from "discourse/lib/load-script";
import { schedule } from "@ember/runloop";

View File

@ -2,7 +2,6 @@ import { alias, gt } from "@ember/object/computed";
import CardContentsBase from "discourse/mixins/card-contents-base";
import CleansUp from "discourse/mixins/cleans-up";
import Component from "@ember/component";
import { Promise } from "rsvp";
import discourseComputed from "discourse-common/utils/decorators";
import { groupPath } from "discourse/lib/url";
import { setting } from "discourse/lib/computed";

View File

@ -2,7 +2,6 @@ import Controller from "@ember/controller";
import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { action } from "@ember/object";
import { Promise } from "rsvp";
import showModal from "discourse/lib/show-modal";
export function openBookmarkModal(

View File

@ -19,7 +19,6 @@ import DiscourseURL from "discourse/lib/url";
import Draft from "discourse/models/draft";
import I18n from "I18n";
import { iconHTML } from "discourse-common/lib/icon-library";
import { Promise } from "rsvp";
import bootbox from "bootbox";
import { buildQuote } from "discourse/lib/quote";
import deprecated from "discourse-common/lib/deprecated";

View File

@ -10,7 +10,6 @@ import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import NameValidation from "discourse/mixins/name-validation";
import PasswordValidation from "discourse/mixins/password-validation";
import { Promise } from "rsvp";
import User from "discourse/models/user";
import UserFieldsValidation from "discourse/mixins/user-fields-validation";
import UsernameValidation from "discourse/mixins/username-validation";

View File

@ -5,7 +5,6 @@ import EmberObject from "@ember/object";
import I18n from "I18n";
import { MAX_MESSAGE_LENGTH } from "discourse/models/post-action-type";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { Promise } from "rsvp";
import User from "discourse/models/user";
import discourseComputed, { bind } from "discourse-common/utils/decorators";
import { not } from "@ember/object/computed";

View File

@ -17,7 +17,6 @@ import { isEmpty } from "@ember/utils";
import { gt, or } from "@ember/object/computed";
import { scrollTop } from "discourse/mixins/scroll-top";
import { setTransient } from "discourse/lib/page-tracker";
import { Promise } from "rsvp";
import { search as searchCategoryTag } from "discourse/lib/category-tag-search";
import showModal from "discourse/lib/show-modal";
import userSearch from "discourse/lib/user-search";

View File

@ -4,7 +4,6 @@ import GrantBadgeController from "discourse/mixins/grant-badge-controller";
import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import UserBadge from "discourse/models/user-badge";
import { all } from "rsvp";
import discourseComputed from "discourse-common/utils/decorators";
import { extractError } from "discourse/lib/ajax-error";
@ -43,7 +42,7 @@ export default Controller.extend(ModalFunctionality, GrantBadgeController, {
onShow() {
this.set("loading", true);
all([
Promise.all([
Badge.findAll(),
UserBadge.findByUsername(this.get("post.username")),
]).then(([allBadges, userBadges]) => {

View File

@ -2,7 +2,6 @@ import { alias, empty } from "@ember/object/computed";
import Controller, { inject as controller } from "@ember/controller";
import I18n from "I18n";
import ModalFunctionality from "discourse/mixins/modal-functionality";
import { Promise } from "rsvp";
import Topic from "discourse/models/topic";
import bootbox from "bootbox";

View File

@ -11,7 +11,6 @@ import Composer from "discourse/models/composer";
import EmberObject, { action } from "@ember/object";
import I18n from "I18n";
import Post from "discourse/models/post";
import { Promise } from "rsvp";
import QuoteState from "discourse/lib/quote-state";
import Topic from "discourse/models/topic";
import TopicTimer from "discourse/models/topic-timer";

View File

@ -6,7 +6,6 @@ import discourseComputed from "discourse-common/utils/decorators";
import { ajax } from "discourse/lib/ajax";
import Bookmark from "discourse/models/bookmark";
import I18n from "I18n";
import { Promise } from "rsvp";
import { htmlSafe } from "@ember/template";
export default Controller.extend({

View File

@ -1,4 +1,3 @@
import { Promise } from "rsvp";
import Session from "discourse/models/session";
import Site from "discourse/models/site";
import User from "discourse/models/user";

View File

@ -2,7 +2,6 @@ import { cancel } from "@ember/runloop";
import discourseLater from "discourse-common/lib/later";
import { CANCELLED_STATUS } from "discourse/lib/autocomplete";
import Category from "discourse/models/category";
import { Promise } from "rsvp";
import { SEPARATOR } from "discourse/lib/category-hashtags";
import { TAG_HASHTAG_POSTFIX } from "discourse/lib/tag-hashtags";
import discourseDebounce from "discourse-common/lib/debounce";

View File

@ -1,6 +1,5 @@
import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import { Promise } from "rsvp";
import User from "discourse/models/user";
import { ajax } from "discourse/lib/ajax";
import bootbox from "bootbox";

View File

@ -1,7 +1,6 @@
import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import KeyValueStore from "discourse/lib/key-value-store";
import { Promise } from "rsvp";
import Site from "discourse/models/site";
import User from "discourse/models/user";
import { formatUsername } from "discourse/lib/utilities";

View File

@ -1,6 +1,5 @@
import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
import { PUBLIC_JS_VERSIONS } from "discourse/lib/public-js-versions";
import { Promise } from "rsvp";
import { ajax } from "discourse/lib/ajax";
import { run } from "@ember/runloop";
import { isTesting } from "discourse-common/config/environment";

View File

@ -1,4 +1,3 @@
import { Promise } from "rsvp";
import { helperContext } from "discourse-common/lib/helpers";
// Chrome and Firefox use a native method to do Image -> Bitmap Array (it happens of the main thread!)

View File

@ -1,6 +1,5 @@
// We can insert data into the PreloadStore when the document is loaded.
// The data can be accessed once by a key, after which it is removed
import { Promise } from "rsvp";
export default {
data: new Map(),

View File

@ -1,5 +1,3 @@
import { Promise } from "rsvp";
export function nativeShare(caps, data) {
return new Promise((resolve, reject) => {
if (!(caps.isIOS || caps.isAndroid || caps.isWinphone)) {

View File

@ -1,7 +1,6 @@
import Category from "discourse/models/category";
import EmberObject from "@ember/object";
import I18n from "I18n";
import { Promise } from "rsvp";
import Post from "discourse/models/post";
import Topic from "discourse/models/topic";
import User from "discourse/models/user";

View File

@ -1,7 +1,6 @@
import PrettyText, { buildOptions } from "pretty-text/pretty-text";
import { buildEmojiUrl, performEmojiUnescape } from "pretty-text/emoji";
import AllowLister from "pretty-text/allow-lister";
import { Promise } from "rsvp";
import Session from "discourse/models/session";
import { formatUsername } from "discourse/lib/utilities";
import { getURLWithCDN } from "discourse-common/lib/get-url";

View File

@ -1,4 +1,3 @@
import { Promise } from "rsvp";
import { NotificationLevels } from "discourse/lib/notification-levels";
let model, currentTopicId;

View File

@ -1,5 +1,4 @@
import { UploadPreProcessorPlugin } from "discourse/lib/uppy-plugin-base";
import { Promise } from "rsvp";
import { HUGE_FILE_THRESHOLD_BYTES } from "discourse/mixins/uppy-upload";
import { bind } from "discourse-common/utils/decorators";

View File

@ -1,4 +1,3 @@
import { Promise } from "rsvp";
import delay from "@uppy/utils/lib/delay";
import {
AbortController,

View File

@ -1,7 +1,6 @@
import { UploaderPlugin } from "discourse/lib/uppy-plugin-base";
import { next } from "@ember/runloop";
import getURL from "discourse-common/lib/get-url";
import { Promise } from "rsvp";
import UppyChunkedUpload from "discourse/lib/uppy-chunked-upload";
import EventTracker from "@uppy/utils/lib/EventTracker";

View File

@ -1,5 +1,4 @@
import { UploadPreProcessorPlugin } from "discourse/lib/uppy-plugin-base";
import { Promise } from "rsvp";
import { bind } from "discourse-common/utils/decorators";
export default class UppyMediaOptimization extends UploadPreProcessorPlugin {

View File

@ -1,5 +1,4 @@
import { BasePlugin } from "@uppy/core";
import { Promise } from "rsvp";
import { warn } from "@ember/debug";
import { isTesting } from "discourse-common/config/environment";

View File

@ -1,7 +1,6 @@
import { cancel } from "@ember/runloop";
import discourseLater from "discourse-common/lib/later";
import { CANCELLED_STATUS } from "discourse/lib/autocomplete";
import { Promise } from "rsvp";
import discourseDebounce from "discourse-common/lib/debounce";
import { emailValid } from "discourse/lib/utilities";
import { isTesting } from "discourse-common/config/environment";

View File

@ -1,7 +1,6 @@
import Mixin from "@ember/object/mixin";
import getUrl from "discourse-common/lib/get-url";
import { bind } from "discourse-common/utils/decorators";
import { Promise } from "rsvp";
import { ajax } from "discourse/lib/ajax";
import AwsS3Multipart from "@uppy/aws-s3-multipart";
const RETRY_DELAYS = [0, 1000, 3000, 5000];

View File

@ -1,6 +1,5 @@
import BadgeGrouping from "discourse/models/badge-grouping";
import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";

View File

@ -1,6 +1,5 @@
import categoryFromId from "discourse-common/utils/category-macro";
import I18n from "I18n";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import User from "discourse/models/user";
import Topic from "discourse/models/topic";

View File

@ -12,7 +12,6 @@ import {
} from "discourse/lib/utilities";
import Draft from "discourse/models/draft";
import I18n from "I18n";
import { Promise } from "rsvp";
import { QUOTE_REGEXP } from "discourse/lib/quote";
import RestModel from "discourse/models/rest";
import Site from "discourse/models/site";

View File

@ -2,7 +2,6 @@ import discourseComputed, { observes } from "discourse-common/utils/decorators";
import Category from "discourse/models/category";
import EmberObject from "@ember/object";
import GroupHistory from "discourse/models/group-history";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import Topic from "discourse/models/topic";
import User from "discourse/models/user";

View File

@ -1,6 +1,5 @@
import EmberObject from "@ember/object";
import { alias } from "@ember/object/computed";
import { Promise } from "rsvp";
import discourseComputed from "discourse-common/utils/decorators";
import Topic from "discourse/models/topic";
import User from "discourse/models/user";

View File

@ -1,6 +1,5 @@
import EmberObject from "@ember/object";
import I18n from "I18n";
import { Promise } from "rsvp";
import Session from "discourse/models/session";
import Site from "discourse/models/site";
import discourseComputed from "discourse-common/utils/decorators";

View File

@ -2,7 +2,6 @@ import { and, equal, not, or } from "@ember/object/computed";
import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import PostsWithPlaceholders from "discourse/lib/posts-with-placeholders";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import User from "discourse/models/user";
import { ajax } from "discourse/lib/ajax";

View File

@ -3,7 +3,6 @@ import { and, equal, not, or } from "@ember/object/computed";
import ActionSummary from "discourse/models/action-summary";
import Composer from "discourse/models/composer";
import I18n from "I18n";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import Site from "discourse/models/site";
import User from "discourse/models/user";

View File

@ -1,5 +1,4 @@
import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import { equal } from "@ember/object/computed";
import { getOwner } from "discourse-common/lib/get-owner";
import { warn } from "@ember/debug";

View File

@ -1,5 +1,4 @@
import ArrayProxy from "@ember/array/proxy";
import { Promise } from "rsvp";
import discourseComputed from "discourse-common/utils/decorators";
export default ArrayProxy.extend({

View File

@ -1,6 +1,5 @@
import categoryFromId from "discourse-common/utils/category-macro";
import I18n from "I18n";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import { ajax } from "discourse/lib/ajax";
import discourseComputed from "discourse-common/utils/decorators";

View File

@ -1,5 +1,4 @@
import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import { ajax } from "discourse/lib/ajax";
const StaticPage = EmberObject.extend();

View File

@ -1,5 +1,4 @@
import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import Session from "discourse/models/session";
import User from "discourse/models/user";

View File

@ -6,7 +6,6 @@ import Bookmark from "discourse/models/bookmark";
import EmberObject from "@ember/object";
import I18n from "I18n";
import PreloadStore from "discourse/lib/preload-store";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import Site from "discourse/models/site";
import User from "discourse/models/user";

View File

@ -1,6 +1,5 @@
import Badge from "discourse/models/badge";
import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import Topic from "discourse/models/topic";
import User from "discourse/models/user";
import { ajax } from "discourse/lib/ajax";

View File

@ -8,7 +8,6 @@ import {
} from "discourse/models/composer";
import RestModel from "discourse/models/rest";
import UserDraft from "discourse/models/user-draft";
import { Promise } from "rsvp";
export default RestModel.extend({
limit: 30,

View File

@ -1,5 +1,4 @@
import EmberObject from "@ember/object";
import { Promise } from "rsvp";
import UserAction from "discourse/models/user-action";
import { ajax } from "discourse/lib/ajax";
import { on } from "discourse-common/utils/decorators";

View File

@ -1,6 +1,5 @@
import discourseComputed, { on } from "discourse-common/utils/decorators";
import { A } from "@ember/array";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import UserAction from "discourse/models/user-action";
import { ajax } from "discourse/lib/ajax";

View File

@ -11,7 +11,6 @@ import Group from "discourse/models/group";
import I18n from "I18n";
import { NotificationLevels } from "discourse/lib/notification-levels";
import PreloadStore from "discourse/lib/preload-store";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import Singleton from "discourse/mixins/singleton";
import Site from "discourse/models/site";

View File

@ -1,4 +1,3 @@
import { Promise, all } from "rsvp";
import {
changeSort,
queryParams,
@ -66,7 +65,7 @@ export default (filterArg, params) => {
}
this._setupNavigation(category);
return all([
return Promise.all([
this._createSubcategoryList(category),
this._retrieveTopicList(category, transition, modelParams),
]);

View File

@ -1,6 +1,5 @@
import DiscourseRoute from "discourse/routes/discourse";
import I18n from "I18n";
import { Promise } from "rsvp";
import { SEARCH_PRIORITIES } from "discourse/lib/constants";
let _newCategoryColor = "0088CC",

View File

@ -1,7 +1,6 @@
import { action } from "@ember/object";
import { ajax } from "discourse/lib/ajax";
import DiscourseRoute from "discourse/routes/discourse";
import { Promise } from "rsvp";
export default DiscourseRoute.extend({
queryParams: {

View File

@ -2,7 +2,6 @@ import DiscourseRoute from "discourse/routes/discourse";
import I18n from "I18n";
import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
import { Promise } from "rsvp";
import { action } from "@ember/object";
export default DiscourseRoute.extend({

View File

@ -1,6 +1,5 @@
import Service from "@ember/service";
import { getOwner } from "@ember/application";
import { Promise } from "rsvp";
import { fileToImageData } from "discourse/lib/media-optimization-utils";
import { getAbsoluteURL, getURLWithCDN } from "discourse-common/lib/get-url";

View File

@ -1,5 +1,3 @@
import { Promise } from "rsvp";
import Service from "@ember/service";
import { ajax } from "discourse/lib/ajax";
import { bind, on } from "discourse-common/utils/decorators";

View File

@ -4,7 +4,6 @@ import { ajax } from "discourse/lib/ajax";
import { cancel, debounce, next, once, throttle } from "@ember/runloop";
import discourseLater from "discourse-common/lib/later";
import Session from "discourse/models/session";
import { Promise } from "rsvp";
import User from "discourse/models/user";
import userPresent, {
onPresenceChange,

View File

@ -1,6 +1,5 @@
import Service from "@ember/service";
import { set } from "@ember/object";
import { Promise } from "rsvp";
import RestModel from "discourse/models/rest";
import ResultSet from "discourse/models/result-set";
import { ajax } from "discourse/lib/ajax";

View File

@ -1,7 +1,6 @@
import { applyDecorators, createWidget } from "discourse/widgets/widget";
import { next } from "@ember/runloop";
import discourseLater from "discourse-common/lib/later";
import { Promise } from "rsvp";
import { formattedReminderTime } from "discourse/lib/bookmark";
import { h } from "virtual-dom";
import showModal from "discourse/lib/show-modal";

View File

@ -9,7 +9,6 @@ import DecoratorHelper from "discourse/widgets/decorator-helper";
import DiscourseURL from "discourse/lib/url";
import I18n from "I18n";
import PostCooked from "discourse/widgets/post-cooked";
import { Promise } from "rsvp";
import RawHtml from "discourse/widgets/raw-html";
import bootbox from "bootbox";
import { dateNode } from "discourse/helpers/node";

View File

@ -1,5 +1,4 @@
import I18n from "I18n";
import { Promise } from "rsvp";
import Session from "discourse/models/session";
import { createWidget } from "discourse/widgets/widget";
import { h } from "virtual-dom";

View File

@ -1,5 +1,4 @@
import I18n from "I18n";
import { Promise } from "rsvp";
import QuickAccessItem from "discourse/widgets/quick-access-item";
import QuickAccessPanel from "discourse/widgets/quick-access-panel";
import { createWidgetFrom } from "discourse/widgets/widget";

View File

@ -11,7 +11,6 @@ import { h } from "virtual-dom";
import { iconNode } from "discourse-common/lib/icon-library";
import { isiPad, translateModKey } from "discourse/lib/utilities";
import { popupAjaxError } from "discourse/lib/ajax-error";
import { Promise } from "rsvp";
import { search as searchCategoryTag } from "discourse/lib/category-tag-search";
import userSearch from "discourse/lib/user-search";
import { CANCELLED_STATUS } from "discourse/lib/autocomplete";

View File

@ -18,7 +18,6 @@ import {
} from "discourse/widgets/hooks";
import DecoratorHelper from "discourse/widgets/decorator-helper";
import I18n from "I18n";
import { Promise } from "rsvp";
import { deepMerge } from "discourse-common/lib/object";
import { get } from "@ember/object";
import { h } from "virtual-dom";

View File

@ -9,7 +9,6 @@ import {
import { click, fillIn, visit } from "@ember/test-helpers";
import Draft from "discourse/models/draft";
import I18n from "I18n";
import { Promise } from "rsvp";
import selectKit from "discourse/tests/helpers/select-kit-helper";
import sinon from "sinon";
import { test } from "qunit";

View File

@ -21,7 +21,6 @@ import {
import selectKit from "discourse/tests/helpers/select-kit-helper";
import I18n from "I18n";
import { test } from "qunit";
import { Promise } from "rsvp";
import sinon from "sinon";
acceptance("Composer", function (needs) {

View File

@ -11,7 +11,6 @@ import { authorizedExtensions } from "discourse/lib/uploads";
import { click, fillIn, settled, visit } from "@ember/test-helpers";
import I18n from "I18n";
import { skip, test } from "qunit";
import { Promise } from "rsvp";
import sinon from "sinon";
function pretender(server, helper) {

View File

@ -1,7 +1,6 @@
import Pretender from "pretender";
import User from "discourse/models/user";
import getURL from "discourse-common/lib/get-url";
import { Promise } from "rsvp";
export function parsePostData(query) {
const result = {};

View File

@ -5,7 +5,6 @@ import { count, exists, query } from "discourse/tests/helpers/qunit-helpers";
import { hbs } from "ember-cli-htmlbars";
import widgetHbs from "discourse/widgets/hbs-compiler";
import I18n from "I18n";
import { Promise } from "rsvp";
import { createWidget } from "discourse/widgets/widget";
import { next } from "@ember/runloop";
import { withPluginApi } from "discourse/lib/plugin-api";

View File

@ -1,6 +1,5 @@
import EmberObject from "@ember/object";
import { Placeholder } from "discourse/lib/posts-with-placeholders";
import { Promise } from "rsvp";
import Topic from "discourse/models/topic";
import User from "discourse/models/user";
import { discourseModule } from "discourse/tests/helpers/qunit-helpers";

View File

@ -1,6 +1,5 @@
import { module, test } from "qunit";
import PreloadStore from "discourse/lib/preload-store";
import { Promise } from "rsvp";
module("Unit | Utility | preload-store", function (hooks) {
hooks.beforeEach(function () {

View File

@ -1,6 +1,5 @@
import UppyMediaOptimization from "discourse/lib/uppy-media-optimization-plugin";
import { module, test } from "qunit";
import { Promise } from "rsvp";
class FakeUppy {
constructor() {

View File

@ -1,4 +1,3 @@
import { Promise } from "rsvp";
import {
avatarImg,
avatarUrl,

View File

@ -2,7 +2,6 @@ import { module, test } from "qunit";
import AppEvents from "discourse/services/app-events";
import ArrayProxy from "@ember/array/proxy";
import Post from "discourse/models/post";
import { Promise } from "rsvp";
import User from "discourse/models/user";
import createStore from "discourse/tests/helpers/create-store";
import pretender, { response } from "discourse/tests/helpers/create-pretender";

View File

@ -1,6 +1,5 @@
import discourseDebounce from "discourse-common/lib/debounce";
import I18n from "I18n";
import { Promise } from "rsvp";
let _cache = {};

View File

@ -9,7 +9,6 @@ import { isEmpty, isNone, isPresent } from "@ember/utils";
import Component from "@ember/component";
import I18n from "I18n";
import Mixin from "@ember/object/mixin";
import { Promise } from "rsvp";
import UtilsMixin from "select-kit/mixins/utils";
import { createPopper } from "@popperjs/core";
import deprecated from "discourse-common/lib/deprecated";

View File

@ -1,5 +1,4 @@
import Component from "@ember/component";
import { Promise } from "rsvp";
/*eslint no-bitwise:0 */
import getUrl from "discourse-common/lib/get-url";
import { htmlSafe } from "@ember/template";

View File

@ -4,7 +4,6 @@ import Component from "@ember/component";
import EmberObject from "@ember/object";
import I18n from "I18n";
import { INPUT_DELAY } from "discourse-common/config/environment";
import { Promise } from "rsvp";
import { cookAsync } from "discourse/lib/text";
import discourseDebounce from "discourse-common/lib/debounce";
import { isEmpty } from "@ember/utils";