Skip to content

Commit 1441e69

Browse files
committed
Use ember-concurrency v2 decorator syntax
1 parent 1367836 commit 1441e69

File tree

11 files changed

+40
-60
lines changed

11 files changed

+40
-60
lines changed

app/components/email-input.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default class EmailInput extends Component {
1212
@tracked isEditing = false;
1313
@tracked disableResend = false;
1414

15-
@task(function* () {
15+
@task *resendEmailTask() {
1616
try {
1717
yield this.args.user.resendVerificationEmail();
1818
this.disableResend = true;
@@ -23,16 +23,15 @@ export default class EmailInput extends Component {
2323
this.notifications.error('Unknown error in resending message');
2424
}
2525
}
26-
})
27-
resendEmailTask;
26+
}
2827

2928
@action
3029
editEmail() {
3130
this.value = this.args.user.email;
3231
this.isEditing = true;
3332
}
3433

35-
@task(function* () {
34+
@task *saveEmailTask() {
3635
let userEmail = this.value;
3736
let user = this.args.user;
3837

@@ -49,6 +48,5 @@ export default class EmailInput extends Component {
4948

5049
this.notifications.error(`Error in saving email: ${msg}`);
5150
}
52-
})
53-
saveEmailTask;
51+
}
5452
}

app/components/follow-button.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default class extends Component {
2929
}).drop())
3030
followStateTask;
3131

32-
@task(function* () {
32+
@task *toggleFollowTask() {
3333
let crate = this.args.crate;
3434

3535
try {
@@ -42,6 +42,5 @@ export default class extends Component {
4242
} crate. Please try again later!`,
4343
);
4444
}
45-
})
46-
toggleFollowTask;
45+
}
4746
}

app/components/pending-owner-invite-row.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default class PendingOwnerInviteRow extends Component {
1010
@tracked isAccepted = false;
1111
@tracked isDeclined = false;
1212

13-
@task(function* () {
13+
@task *acceptInvitationTask() {
1414
this.args.invite.set('accepted', true);
1515

1616
try {
@@ -23,10 +23,9 @@ export default class PendingOwnerInviteRow extends Component {
2323
this.notifications.error('Error in accepting invite');
2424
}
2525
}
26-
})
27-
acceptInvitationTask;
26+
}
2827

29-
@task(function* () {
28+
@task *declineInvitationTask() {
3029
this.args.invite.set('accepted', false);
3130

3231
try {
@@ -39,6 +38,5 @@ export default class PendingOwnerInviteRow extends Component {
3938
this.notifications.error('Error in declining invite');
4039
}
4140
}
42-
})
43-
declineInvitationTask;
41+
}
4442
}

app/components/settings/api-tokens.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export default class ApiTokens extends Component {
1919
this.newToken = this.store.createRecord('api-token');
2020
}
2121

22-
@task(function* () {
22+
@task *saveTokenTask() {
2323
let token = this.newToken;
2424

2525
try {
@@ -34,10 +34,9 @@ export default class ApiTokens extends Component {
3434

3535
this.notifications.error(msg);
3636
}
37-
})
38-
saveTokenTask;
37+
}
3938

40-
@task(function* (token) {
39+
@task *revokeTokenTask(token) {
4140
try {
4241
yield token.destroyRecord();
4342
this.args.tokens.removeObject(token);
@@ -49,6 +48,5 @@ export default class ApiTokens extends Component {
4948

5049
this.notifications.error(msg);
5150
}
52-
})
53-
revokeTokenTask;
51+
}
5452
}

app/controllers/crate/settings.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default class CrateSettingsController extends Controller {
99
crate = null;
1010
username = '';
1111

12-
@task(function* () {
12+
@task *addOwnerTask() {
1313
const username = this.username;
1414

1515
try {
@@ -22,10 +22,8 @@ export default class CrateSettingsController extends Controller {
2222
this.notifications.error('Error sending invite');
2323
}
2424
}
25-
})
26-
addOwnerTask;
27-
28-
@task(function* (owner) {
25+
}
26+
@task *removeOwnerTask(owner) {
2927
try {
3028
yield this.crate.removeOwner(owner.get('login'));
3129

@@ -45,6 +43,5 @@ export default class CrateSettingsController extends Controller {
4543

4644
this.notifications.error(message);
4745
}
48-
})
49-
removeOwnerTask;
46+
}
5047
}

app/controllers/crate/version.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export default class CrateVersionController extends Controller {
2525

2626
@alias('loadReadmeTask.last.value') readme;
2727

28-
@task(function* () {
28+
@task *loadReadmeTask() {
2929
let version = this.currentVersion;
3030

3131
let readme = version.loadReadmeTask.lastSuccessful
@@ -41,6 +41,5 @@ export default class CrateVersionController extends Controller {
4141
}
4242

4343
return readme;
44-
})
45-
loadReadmeTask;
44+
}
4645
}

app/controllers/dashboard.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,13 @@ export default class DashboardController extends Controller {
3737
return this.myFollowing.length > TO_SHOW;
3838
}
3939

40-
@task(function* () {
40+
@task *loadMoreTask() {
4141
let page = this.myFeed.length / 10 + 1;
4242

4343
let data = yield ajax(`/api/v1/me/updates?page=${page}`);
4444
let versions = data.versions.map(version => this.store.push(this.store.normalize('version', version)));
4545

4646
this.myFeed.pushObjects(versions);
4747
this.set('hasMore', data.meta.more);
48-
})
49-
loadMoreTask;
48+
}
5049
}

app/models/version.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,9 @@ export default class Version extends Model {
124124
}).keepLatest())
125125
loadReadmeTask;
126126

127-
@task(function* () {
127+
@task *loadDocsBuildsTask() {
128128
return yield ajax(`https://docs.rs/crate/${this.crateName}/${this.num}/builds.json`);
129-
})
130-
loadDocsBuildsTask;
129+
}
131130

132131
@computed('loadDocsBuildsTask.lastSuccessful.value')
133132
get hasDocsRsLink() {

app/routes/application.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@ export default class ApplicationRoute extends Route {
4545
return true;
4646
}
4747

48-
@task(function* () {
48+
@task *preloadPlaygroundCratesTask() {
4949
yield rawTimeout(1000);
5050
yield this.playground.loadCratesTask.perform();
51-
})
52-
preloadPlaygroundCratesTask;
51+
}
5352
}

app/services/progress.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { htmlSafe } from '@ember/template';
33
import { tracked } from '@glimmer/tracking';
44
import Ember from 'ember';
55

6-
import { didCancel, rawTimeout, task } from 'ember-concurrency';
6+
import { didCancel, dropTask, rawTimeout, task } from 'ember-concurrency';
77

88
const SPEED = 200;
99

@@ -24,7 +24,7 @@ export default class ProgressService extends Service {
2424
});
2525
}
2626

27-
@task(function* (promise) {
27+
@task *counterTask(promise) {
2828
this.updateTask.perform().catch(error => {
2929
if (!didCancel(error)) {
3030
// this task shouldn't be able to fail, but if it does we'll let Sentry know
@@ -33,10 +33,9 @@ export default class ProgressService extends Service {
3333
});
3434

3535
yield promise;
36-
})
37-
counterTask;
36+
}
3837

39-
@(task(function* () {
38+
@dropTask *updateTask() {
4039
if (Ember.testing) return;
4140

4241
let progress = 0;
@@ -69,6 +68,5 @@ export default class ProgressService extends Service {
6968
this._style = `transition: width ${SPEED}ms linear; width: 100%`;
7069
yield rawTimeout(SPEED);
7170
this._style = `transition: opacity ${SPEED * 2}ms linear; width: 100%; opacity: 0`;
72-
}).drop())
73-
updateTask;
71+
}
7472
}

app/services/session.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { alias } from '@ember/object/computed';
22
import Service, { inject as service } from '@ember/service';
33

4-
import { race, rawTimeout, task, waitForEvent } from 'ember-concurrency';
4+
import { dropTask, race, rawTimeout, task, waitForEvent } from 'ember-concurrency';
55
import window from 'ember-window-mock';
66

77
import ajax from '../utils/ajax';
@@ -46,7 +46,7 @@ export default class SessionService extends Service {
4646
* @see https://developer.github.com/v3/oauth/#redirect-users-to-request-github-access
4747
* @see `github-authorize` route
4848
*/
49-
@task(function* () {
49+
@task *loginTask() {
5050
let windowDimensions = [
5151
'width=1000',
5252
'height=450',
@@ -109,20 +109,18 @@ export default class SessionService extends Service {
109109
if (transition) {
110110
transition.retry();
111111
}
112-
})
113-
loginTask;
112+
}
114113

115-
@task(function* (window) {
114+
@task *windowCloseWatcherTask(window) {
116115
while (true) {
117116
if (window.closed) {
118117
return { closed: true };
119118
}
120119
yield rawTimeout(10);
121120
}
122-
})
123-
windowCloseWatcherTask;
121+
}
124122

125-
@task(function* () {
123+
@task *logoutTask() {
126124
yield ajax(`/api/private/session`, { method: 'DELETE' });
127125

128126
this.savedTransition = null;
@@ -132,10 +130,9 @@ export default class SessionService extends Service {
132130
this.sentry.setUser(null);
133131

134132
this.router.transitionTo('index');
135-
})
136-
logoutTask;
133+
}
137134

138-
@(task(function* () {
135+
@dropTask *loadUserTask() {
139136
if (!this.isLoggedIn) return {};
140137

141138
let response;
@@ -152,6 +149,5 @@ export default class SessionService extends Service {
152149
this.sentry.setUser({ id });
153150

154151
return { currentUser, ownedCrates };
155-
}).drop())
156-
loadUserTask;
152+
}
157153
}

0 commit comments

Comments
 (0)