Skip to content

Commit 4053f5f

Browse files
committed
Auto merge of #3263 - Turbo87:toolbox, r=locks
models/version: Use `@cached` decorator to expensive properties see https://github.com/pzuraq/tracked-toolbox#cached
2 parents e9a348a + f0ba88f commit 4053f5f

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

app/models/version.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { alias } from '@ember/object/computed';
44

55
import { task } from 'ember-concurrency';
66
import semverParse from 'semver/functions/parse';
7+
import { cached } from 'tracked-toolbox';
78

89
import ajax from '../utils/ajax';
910

@@ -37,13 +38,13 @@ export default class Version extends Model {
3738
return Date.now() - this.created_at.getTime() < EIGHT_DAYS;
3839
}
3940

40-
get isFirst() {
41+
@cached get isFirst() {
4142
let { versions } = this.crate;
4243
let oldestVersion = versions.sortBy('created_at')[0];
4344
return oldestVersion === this;
4445
}
4546

46-
get semver() {
47+
@cached get semver() {
4748
return semverParse(this.num);
4849
}
4950

@@ -56,7 +57,7 @@ export default class Version extends Model {
5657
return `${semver.major}.${semver.major === 0 ? semver.minor : 'x'}`;
5758
}
5859

59-
get isHighestOfReleaseTrack() {
60+
@cached get isHighestOfReleaseTrack() {
6061
if (this.isPrerelease) {
6162
return false;
6263
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@
4545
"fastboot-app-server": "3.0.0",
4646
"morgan": "1.10.0",
4747
"pretty-bytes": "5.5.0",
48-
"semver": "7.3.4"
48+
"semver": "7.3.4",
49+
"tracked-toolbox": "^1.2.1"
4950
},
5051
"devDependencies": {
5152
"@ember/optional-features": "2.0.0",

yarn.lock

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,7 +1436,7 @@
14361436
"@handlebars/parser" "^1.1.0"
14371437
simple-html-tokenizer "^0.5.10"
14381438

1439-
"@glimmer/tracking@1.0.3", "@glimmer/tracking@~1.0.3":
1439+
"@glimmer/tracking@1.0.3", "@glimmer/tracking@^1.0.0", "@glimmer/tracking@~1.0.3":
14401440
version "1.0.3"
14411441
resolved "https://registry.yarnpkg.com/@glimmer/tracking/-/tracking-1.0.3.tgz#8b9b42aff6c206edeaaea178a95acc1eff62e61e"
14421442
integrity sha512-21WR13vPdzt1IQ6JmPPAu4szjV9yKdmLHV3nD0MLDj6/EoYv1c2PqpFBBlp++6xW8OnyDa++cQ8OFoQDP+MRpA==
@@ -6029,6 +6029,16 @@ ember-auto-import@1.10.1, ember-auto-import@^1.10.1, ember-auto-import@^1.2.19:
60296029
walk-sync "^0.3.3"
60306030
webpack "^4.43.0"
60316031

6032+
ember-cache-primitive-polyfill@^1.0.0:
6033+
version "1.0.1"
6034+
resolved "https://registry.yarnpkg.com/ember-cache-primitive-polyfill/-/ember-cache-primitive-polyfill-1.0.1.tgz#a27075443bd87e5af286c1cd8a7df24e3b9f6715"
6035+
integrity sha512-hSPcvIKarA8wad2/b6jDd/eU+OtKmi6uP+iYQbzi5TQpjsqV6b4QdRqrLk7ClSRRKBAtdTuutx+m+X+WlEd2lw==
6036+
dependencies:
6037+
ember-cli-babel "^7.22.1"
6038+
ember-cli-version-checker "^5.1.1"
6039+
ember-compatibility-helpers "^1.2.1"
6040+
silent-error "^1.1.1"
6041+
60326042
ember-cli-app-version@4.0.0:
60336043
version "4.0.0"
60346044
resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-4.0.0.tgz#033057ec5fe4d3ecdf5ac5380d442e2dc9f7526a"
@@ -6042,7 +6052,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em
60426052
resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879"
60436053
integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==
60446054

6045-
ember-cli-babel@7.23.1, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.13.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3:
6055+
ember-cli-babel@7.23.1, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.1.3, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.13.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.17.2, ember-cli-babel@^7.18.0, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3:
60466056
version "7.23.1"
60476057
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.23.1.tgz#d1517228ede08a5d4b045c78a7429728e956b30b"
60486058
integrity sha512-qYggmt3hRs6QJ6cRkww3ahMpyP8IEV2KFrIRO/Z6hu9MkE/8Y28Xd5NjQl6fPV3oLoG0vwuHzhNe3Jr7Wec8zw==
@@ -14044,6 +14054,24 @@ tr46@^2.0.2:
1404414054
dependencies:
1404514055
punycode "^2.1.1"
1404614056

14057+
tracked-maps-and-sets@^2.0.0:
14058+
version "2.2.1"
14059+
resolved "https://registry.yarnpkg.com/tracked-maps-and-sets/-/tracked-maps-and-sets-2.2.1.tgz#323dd40540c561e8b0ffdec8bf129c68ec5025f9"
14060+
integrity sha512-XYrXh6L/GpGmVmG3KcN/qoDyi4FxHh8eZY/BA/RuoxynskV+GZSfwrX3R+5DR2CIkzkCx4zi4kkDRg1AMDfDhg==
14061+
dependencies:
14062+
"@glimmer/tracking" "^1.0.0"
14063+
ember-cli-babel "^7.17.2"
14064+
14065+
tracked-toolbox@^1.2.1:
14066+
version "1.2.1"
14067+
resolved "https://registry.yarnpkg.com/tracked-toolbox/-/tracked-toolbox-1.2.1.tgz#0750fbf76c80ff6ba7c583a7fd8cce4c60d9b846"
14068+
integrity sha512-SEAzpVDJNOf79IhztkUoYfwMA78pGs47k/35Dg23RCINdrnWNnXcCQAx6KOATsvyinqUJkzmTdNpwTgAbtSStg==
14069+
dependencies:
14070+
ember-cache-primitive-polyfill "^1.0.0"
14071+
ember-cli-babel "^7.21.0"
14072+
ember-cli-htmlbars "^4.2.0"
14073+
tracked-maps-and-sets "^2.0.0"
14074+
1404714075
tree-sync@^1.2.2:
1404814076
version "1.4.0"
1404914077
resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-1.4.0.tgz#314598d13abaf752547d9335b8f95d9a137100d6"

0 commit comments

Comments
 (0)