| 2 | import { service } from '@ember/service'; |
| 3 | |
| 4 | export default class IndexRoute extends Route { |
| 5 | /** @type {import('@ember/routing/router-service').default} */ |
| 6 | @service |
| 7 | router; |
| 8 | |
| 9 | @service store; |
| 10 | |
| 11 | async redirect() { |
| 12 | // redirect to first available project ember => ember-data => ember-cli |
| 13 | let foundProject = 'ember-cli'; |
| 14 | try { |
| 15 | await this.store.findRecord('project', 'ember', { |
| 16 | includes: 'project-version', |
| 17 | }); |
| 18 | foundProject = 'ember'; |
| 19 | } catch { |
| 20 | try { |
| 21 | await this.store.findRecord('project', 'ember-data', { |
| 22 | includes: 'project-version', |
| 23 | }); |
| 24 | foundProject = 'ember-data'; |
| 25 | } catch { |
| 26 | foundProject = 'ember-cli'; |
| 27 | } |
| 28 | } |
| 29 | |
| 30 | if (foundProject === 'ember-cli') { |
| 31 | return this.router.transitionTo('ember-cli'); |
| 32 | } |
| 33 | return this.router.transitionTo('project-version', foundProject, 'release'); |
| 34 | } |
| 35 | } |
nothing calls this directly
no outgoing calls
no test coverage detected