Skip to content

Commit 0506d35

Browse files
authored
Merge pull request #71 from yapplabs/ember-3.28
Update to ember 3.28 and address deprecations
2 parents de991a9 + 4be7de2 commit 0506d35

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+666
-449
lines changed

.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# misc
1414
/coverage/
1515
!.*
16+
.*/
1617
.eslintcache
1718

1819
# ember-try

.eslintrc.js

+14-15
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,15 @@ module.exports = {
2424
// node files
2525
{
2626
files: [
27-
'.eslintrc.js',
28-
'.prettierrc.js',
29-
'.template-lintrc.js',
30-
'ember-cli-build.js',
31-
'index.js',
32-
'testem.js',
33-
'blueprints/*/index.js',
34-
'config/**/*.js',
35-
'tests/dummy/config/**/*.js',
36-
],
37-
excludedFiles: [
38-
'addon/**',
39-
'addon-test-support/**',
40-
'app/**',
41-
'tests/dummy/app/**',
27+
'./.eslintrc.js',
28+
'./.prettierrc.js',
29+
'./.template-lintrc.js',
30+
'./ember-cli-build.js',
31+
'./index.js',
32+
'./testem.js',
33+
'./blueprints/*/index.js',
34+
'./config/**/*.js',
35+
'./tests/dummy/config/**/*.js',
4236
],
4337
parserOptions: {
4438
sourceType: 'script',
@@ -50,5 +44,10 @@ module.exports = {
5044
plugins: ['node'],
5145
extends: ['plugin:node/recommended'],
5246
},
47+
{
48+
// Test files:
49+
files: ['tests/**/*-test.{js,ts}'],
50+
extends: ['plugin:qunit/recommended'],
51+
},
5352
],
5453
};

.npmignore

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
/.eslintrc.js
1616
/.git/
1717
/.gitignore
18+
/.prettierignore
19+
/.prettierrc.js
1820
/.template-lintrc.js
1921
/.travis.yml
2022
/.watchmanconfig
@@ -24,6 +26,7 @@
2426
/ember-cli-build.js
2527
/testem.js
2628
/tests/
29+
/yarn-error.log
2730
/yarn.lock
2831
.gitkeep
2932

.template-lintrc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'use strict';
22

33
module.exports = {
4-
extends: 'octane',
4+
extends: 'recommended',
55
};

CONTRIBUTING.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@
88

99
## Linting
1010

11-
* `npm run lint:hbs`
12-
* `npm run lint:js`
13-
* `npm run lint:js -- --fix`
11+
* `yarn lint`
12+
* `yarn lint:fix`
1413

1514
## Running tests
1615

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ This addon's current status is "opensource, but unpolished". It lacks tests, doc
77
Compatibility
88
------------------------------------------------------------------------------
99

10-
* Ember.js v3.16 or above
11-
* Ember CLI v2.13 or above
12-
* Node.js v10 or above
10+
* Ember.js v3.24 or above
11+
* Ember CLI v3.24 or above
12+
* Node.js v12 or above
1313

1414

1515
Installation

addon/components/nav-stack/component.js

-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import { run, scheduleOnce } from '@ember/runloop';
55
import { nextTick } from 'ember-nav-stack/utils/animation';
66
import BackSwipeRecognizer from 'ember-nav-stack/utils/back-swipe-recognizer';
77
import Hammer from 'hammerjs';
8-
// import { argument } from '@ember-decorators/argument';
9-
// import { Action, optional } from '@ember-decorators/argument/types';
108
import { Spring } from 'wobble';
119
import { getOwner } from '@ember/application';
1210
import { DEBUG } from '@glimmer/env';

addon/components/nav-stack/template.hbs

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
<div class="NavStack-header">
2323
{{#if this.parentItemHeaderComponent}}
2424
<div class="NavStack-headerContainer NavStack-parentItemHeaderContainer">
25-
{{component this.parentItemHeaderComponent class="NavStack-headerComponent"}}
25+
{{component this.parentItemHeaderComponent class="NavStack-headerComponent" back=@back}}
2626
</div>
2727
{{/if}}
2828
<div class="NavStack-headerContainer NavStack-currentHeaderContainer">
29-
{{component this.headerComponent class="NavStack-headerComponent"}}
29+
{{component this.headerComponent class="NavStack-headerComponent" back=@back}}
3030
</div>
3131
</div>
3232
{{#if this.hasFooter}}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
/* eslint-disable ember/no-new-mixins */
2-
import Mixin from '@ember/object/mixin';
3-
import { computed } from '@ember/object';
1+
import Route from '@ember/routing/route';
2+
import { action } from '@ember/object';
3+
import { inject as service } from '@ember/service';
44

55
export function getParentRoute(router, route) {
66
// eslint-disable-next-line ember/no-private-routing-service
@@ -17,40 +17,45 @@ export function getParentRoute(router, route) {
1717
}
1818
}
1919

20-
export default Mixin.create({
21-
templateName: 'stackable',
20+
export default class StackableRoute extends Route {
21+
@service router;
22+
templateName = 'stackable';
23+
2224
getRouteComponent(/* model */) {
2325
return `routable-components/${(
2426
this.routableTemplateName || this.routeName
2527
).replace(/\./g, '/')}`;
26-
},
28+
}
29+
2730
getHeaderComponent(model) {
2831
return `${this.getRouteComponent(model)}/header`;
29-
},
30-
layerIndex: computed('_router', 'newLayer', function () {
32+
}
33+
34+
get layerIndex() {
3135
let parentRoute = getParentRoute(this._router, this);
3236
let parentRouteLayerIndex = parentRoute.get('layerIndex');
3337
let currentLayerIndex = parentRouteLayerIndex || 0;
3438
if (this.newLayer === true) {
3539
return currentLayerIndex + 1;
3640
}
3741
return currentLayerIndex;
38-
}),
42+
}
43+
3944
setupController(controller, model) {
40-
this._super(controller, model);
45+
super.setupController(controller, model);
4146
controller.setProperties({
4247
layerIndex: this.layerIndex,
4348
routeComponent: this.getRouteComponent(model),
4449
headerComponent: this.getHeaderComponent(model),
4550
routeName: this.routeName,
4651
});
47-
},
52+
}
53+
4854
getParentRouteName() {
4955
return getParentRoute(this._router, this).routeName;
50-
},
51-
actions: {
52-
back() {
53-
this.transitionTo(this.getParentRouteName());
54-
},
55-
},
56-
});
56+
}
57+
58+
@action back() {
59+
this.router.transitionTo(this.getParentRouteName());
60+
}
61+
}

addon/services/nav-stacks.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { A } from '@ember/array';
22
import Service from '@ember/service';
3-
import { run, next } from '@ember/runloop';
3+
import { next, scheduleOnce } from '@ember/runloop';
44
import EmberObject from '@ember/object';
55
import { Promise as EmberPromise } from 'rsvp';
66
import { buildWaiter } from '@ember/test-waiters';
@@ -65,6 +65,10 @@ export default class NavStacks extends Service {
6565
return this._runningTransitions;
6666
}
6767

68+
isRunningTransitions() {
69+
return this._runningTransitions > 0;
70+
}
71+
6872
waitUntilTransitionIdle() {
6973
if (this._waitingPromise) {
7074
return this._waitingPromise;
@@ -89,7 +93,7 @@ export default class NavStacks extends Service {
8993
}
9094

9195
_schedule() {
92-
run.scheduleOnce('afterRender', this, this._process);
96+
scheduleOnce('afterRender', this, this._process);
9397
}
9498

9599
_process() {
@@ -109,7 +113,7 @@ export default class NavStacks extends Service {
109113
}
110114
set(this, 'stacks', EmberObject.create(newStacks));
111115
if (this.isInitialRender === true) {
112-
run.next(this, this._clearIsInitialRender);
116+
next(this, this._clearIsInitialRender);
113117
}
114118
this._listeners.invoke('stackItemsDidChange');
115119
this.didUpdate();

addon/utils/animation.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Thanks ember-css-transitions
22
// https://github.com/peec/ember-css-transitions/blob/master/addon/mixins/transition-mixin.js
33

4-
import { run } from '@ember/runloop';
4+
import { later, schedule } from '@ember/runloop';
55
import RSVP from 'rsvp';
66
import Ember from 'ember';
77

@@ -20,7 +20,7 @@ const TICK = 17;
2020
*/
2121
function rAF(cb) {
2222
if (Ember.testing || !window.requestAnimationFrame) {
23-
return run.later(cb, TICK);
23+
return later(cb, TICK);
2424
} else {
2525
return window.requestAnimationFrame(cb);
2626
}
@@ -33,7 +33,7 @@ function rAF(cb) {
3333
*/
3434
export function nextTick() {
3535
return new RSVP.Promise((resolve) => {
36-
run.schedule('afterRender', () => {
36+
schedule('afterRender', () => {
3737
rAF(() => {
3838
resolve();
3939
});

app/templates/stackable.hbs

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
{{to-nav-stack
2-
layer=layerIndex
3-
item=(component routeComponent model=model controller=this)
4-
header=(component headerComponent model=model controller=this)
5-
}}
1+
<ToNavStack
2+
@layer={{this.layerIndex}}
3+
@item={{component this.routeComponent model=this.model controller=this}}
4+
@header={{component this.headerComponent model=this.model controller=this}}
5+
/>
6+
67

78
{{outlet}}

config/ember-try.js

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
'use strict';
22

33
const getChannelURL = require('ember-source-channel-url');
4+
const { embroiderSafe, embroiderOptimized } = require('@embroider/test-setup');
45

56
module.exports = async function () {
67
return {
78
scenarios: [
89
{
9-
name: 'ember-lts-3.16',
10+
name: 'ember-lts-3.24',
1011
npm: {
1112
devDependencies: {
12-
'ember-source': '~3.16.0',
13+
'ember-source': '~3.24.3',
1314
},
1415
},
1516
},
1617
{
17-
name: 'ember-lts-3.20',
18+
name: 'ember-lts-3.28',
1819
npm: {
1920
devDependencies: {
20-
'ember-source': '~3.20.5',
21+
'ember-source': '~3.28.0',
2122
},
2223
},
2324
},
@@ -86,11 +87,16 @@ module.exports = async function () {
8687
}),
8788
},
8889
npm: {
90+
devDependencies: {
91+
'ember-source': '~3.28.0',
92+
},
8993
ember: {
9094
edition: 'classic',
9195
},
9296
},
9397
},
98+
embroiderSafe(),
99+
embroiderOptimized(),
94100
],
95101
};
96102
};

ember-cli-build.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,12 @@ module.exports = function (defaults) {
1414
behave. You most likely want to be modifying `./index.js` or app's build file
1515
*/
1616

17-
return app.toTree();
17+
const { maybeEmbroider } = require('@embroider/test-setup');
18+
return maybeEmbroider(app, {
19+
skipBabel: [
20+
{
21+
package: 'qunit',
22+
},
23+
],
24+
});
1825
};

package.json

+12-9
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717
},
1818
"scripts": {
1919
"build": "ember build --environment=production",
20-
"lint": "npm-run-all --aggregate-output --continue-on-error --parallel 'lint:!(fix)'",
20+
"lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"",
2121
"lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix",
22+
"lint:hbs": "ember-template-lint .",
2223
"lint:hbs:fix": "ember-template-lint . --fix",
2324
"lint:js": "eslint . --cache",
2425
"release": "release-it",
@@ -44,13 +45,14 @@
4445
},
4546
"devDependencies": {
4647
"@ember/optional-features": "^2.0.0",
47-
"@ember/test-helpers": "^2.4.0",
48+
"@ember/test-helpers": "^2.6.0",
4849
"@ember/test-waiters": "^3.0.2",
50+
"@embroider/test-setup": "^0.48.1",
4951
"@glimmer/component": "^1.1.2",
5052
"@glimmer/tracking": "^1.1.2",
5153
"babel-eslint": "^10.1.0",
5254
"broccoli-asset-rev": "^3.0.0",
53-
"ember-cli": "~3.24.0",
55+
"ember-cli": "~3.28.6",
5456
"ember-cli-dependency-checker": "^3.3.2",
5557
"ember-cli-deploy": "^2.0.0",
5658
"ember-cli-deploy-build": "^3.0.0",
@@ -67,17 +69,18 @@
6769
"ember-page-title": "^8.0.0",
6870
"ember-qunit": "^5.1.5",
6971
"ember-resolver": "^11.0.1",
70-
"ember-route-action-helper": "^2.0.8",
72+
"ember-set-helper": "^2.0.1",
7173
"ember-simulant-test-helpers": "^0.3.2",
72-
"ember-source": "~3.24.0",
74+
"ember-source": "~3.28.8",
7375
"ember-source-channel-url": "^3.0.0",
74-
"ember-template-lint": "^5.11.2",
76+
"ember-template-lint": "^5.13.0",
7577
"ember-try": "^3.0.0",
76-
"eslint": "^7.26.0",
78+
"eslint": "^7.32.0",
7779
"eslint-config-prettier": "^9.0.0",
78-
"eslint-plugin-ember": "^10.4.2",
80+
"eslint-plugin-ember": "^10.5.8",
7981
"eslint-plugin-node": "^11.1.0",
8082
"eslint-plugin-prettier": "^5.0.0",
83+
"eslint-plugin-qunit": "^6.2.0",
8184
"loader.js": "^4.7.0",
8285
"npm-run-all": "^4.1.5",
8386
"prettier": "^3.0.2",
@@ -88,7 +91,7 @@
8891
"sass": "^1.66.1"
8992
},
9093
"engines": {
91-
"node": ">= 14"
94+
"node": "12.* || 14.* || >= 16"
9295
},
9396
"publishConfig": {
9497
"registry": "https://registry.npmjs.org"

tests/dummy/app/components/clickable-pane/template.hbs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
<div class="ClickablePane" onclick={{action (mut this.clicked) true}}>
1+
{{!-- template-lint-disable no-invalid-interactive --}}
2+
<div class="ClickablePane" onclick={{set this 'clicked' true}}>
23
{{#if this.clicked}}
34
clicked
45
{{else}}

0 commit comments

Comments
 (0)